2024. 3. 11. 08:32ㆍCloud Native
- 목차
프로메테우스는 그리스 로마 신화에 등장하는 티탄 신족입니다. 동생인 에피메테우스와 함께 최초로 인간을 창조한 남신이며 인간들에게 불을 전해준 신 입니다.
이름에는 의미가 있으며 의미는 먼저 보고 생각하는 사람이라는 의미 입니다. 즉, 예지능력이 있는 신 입니다.
헤파이스토스의 대장간에서 불을 홈쳐 인간들에게 전해준 것으로 인해 제우스는 프로메테우스를 카프카스의 바위산에 쇠사슬로 묶어놓고 매일 독수리에게 간을 쪼이는 벌을 받게 합니다. 프로메테우스는 불사신이기에 매일 간이 재생되는 고통을 받게됩니다.
클라우드 서비스중 하나인 프로메테우스는 오픈소스 모니터링 및 경고 기능을 제공하는 도구입니다.
인간에게 전달된 불이 지식과 문명 발달의 근간이 되었다고 여겨졌기에 마찬가지로 클라우드 네이티브 환경에서 모든 중요한 사항에 대한 지식을 전달하는 도구로서 프로메테우스라는 이름이 지어졌습니다.
프로메테우스는 Kubernetes가 관리하는 서버들의 주요 지표를 모니터링하고 이 정보를 전달받아 저장하며 AlertManager를 통해 이를 observing 하는 대상에게 경고 이벤트를 전달하는 역할을 수행합니다.
또한 프로메테우스는 PromQL이라는 쿼리 언어를 제공하기에 Grapana 등의 툴을 통해 저장된 데이터를 시각화해서 볼 수 있습니다.
+------------+
| Kubernetes |
+------------+
^
| discover targets
|
|
+-------------+ +------------+ +--------------+
| Pushgateway | | Prometheus |-----------------> | AlertManager | --> email
+-------------+ +------------+ alert +--------------+ slack
^ | | ^
| | | | +---------+
+--------------+ | +-------------------- | Grafana |
pull | PromQL +---------+
metrics | or Prometheus web UI
| API clients
+-------------+
| Node |
| (HDD/SSD) |
+-------------+
위 그림에서 프로메테우스는 쿠버네티스에 어떤 것들을 모니터링할지 요청 (discover targets)을 합니다.
프로메테우스는 각각의 서버에서 메트릭 데이터를 모니터링 서버로 전달하는 push 방식이 아니라, 프로메테우스에서 서버로 메트릭 데이터를 pull 해서 가져오는 방식으로 동작합니다. 이를 위해 Kubernetes의 kubelet을 사용해 모니터링 대상에 대한 IP 정보등을 획득하는 과정이 수행됩니다.
Kubernetes가 없는 환겨에서는, 모니터링할 대상에 exporter를 설치합니다. 이후 프로메테우스는 각 exporter들로부터 데이터를 pull 하게됩니다.
K8s가 설치된 환경에서는 K8s가 자동으로 새로운 어플리케이션에 exporter를 설치하고 인터렉션을 수행하게 됩니다.
이때 헬름 차트를 통해서 프로메테우스를 설치하게됩니다.
'Cloud Native' 카테고리의 다른 글
About Nginx (0) | 2024.10.17 |
---|---|
Kubernetes (K8s) (0) | 2024.01.08 |
Backpressure algorithm (0) | 2023.08.14 |
Fluent-bit (0) | 2023.08.14 |
REST client on vscode (0) | 2023.06.27 |