반응형
1. Prometheus 란?
- 오픈소스 기반의 모니터링 시스템
- 주로 Kubernetes의 메인 모니터링 시스템으로 사용된다.
2. 기본 구조
- Metric 수집 구조
3. 기본 동작과정 설명
- Service Discovery 의 정보를 Retrieval에게 전달 (모니터링 대상의 기동중인 서비스 목록, IP)
- Retrieval이 모니터링 대상을 Service Discovery에게 전달받아, 타겟에 접근하여 메트릭을 수집합니다.
- exporters는 모니터링 대상에 설치되며, 본인Metric 을 수집하고 Retrieval이 수집해 갈 수 있도록 엔드포인트 제공
- exporter가 /metrics 라는 HTTP 엔드포인트를 본인쪽에서 제공하고, 서버(Retrieval)가 GET요청을 모니터링 대상의 엔드포인트로 날려 정보를 가져오는(Pull) 형식
- Retrieval가 수집한 타겟의 Metric 들을 TSDB가 저장 후에 시각화 합니다.
- 데이터를 저장하는 방법은 Local, Remote 두 가지 방법이 존재함
- 보통은 Local방식으로 저장하며, Google사의 Level DB를 사용합니다.
- 데이터를 저장하는 방법은 Local, Remote 두 가지 방법이 존재함
- 시각화한 데이터들을 보여주기 위해, Prometheus 내부 HTTP Server가 별도의 HTTP REST API를 제공 합니다.
4. 용어 및 모듈 설명
- Service Discovery
- 현재 모니터링 대상의 서비스 목록 및 IP주소를 가지고 있는 서비스(address, service, node정보 등)
- 기존의 오픈소스 모니터링들은 대부분 Push방식으로, 대상이 새로 추가될 경우 IP정보가 없어 모니터링 대상에저 제외되는 문제를 해결하기 위해 나온 서비스 -> 뭔소릴까?..
- Exporter
- 모니터링 대상 타겟에서 작동하는 Agent
- 타겟 시스템의 Metric을 읽어서 프로메테우스 서버가 Pulling 할 수 있도록 해준다.
- 요청이 있을 때, 리턴하기 때문에 정확한 값이라고 할 수 없습니다.
- Retrieval이 30초마다 Pulling 할 경우, 그 당시의 메트릭만 기록합니다.
- Retrieval
- 모니터링 대상 타겟으로부터 메트릭을 수집하는 모듈(컴포넌트)
- Service Discovery System으로부터 모니터링 타겟의 목록을 받아서, 주기적으로 메트릭을 수집
5. Metric 데이터 형식
6. 리눅스에 설치하기
링크 :
반응형