-
[Prometheus 개념] Jobs, Instances, Group에 대해 알아보기데이터 엔지니어링/Prometheus 2022. 12. 21. 20:21반응형
목차
- Prometheus에서 묶음 모니터링은 어떻게 관리할까?
- job이란?
- Instance이란?
- Group이란?
- Yml파일 구성 예시
- 실습해 보기
Prometheus에서 묶음 모니터링은 어떻게 관리할까?
3개의 web 서버를 모니터링한다고 가정해 보자 그런데 한 서버만 정재 해서 모니터링 값을 보고 싶을 때도 있을 것이고 묶음으로 전체 서버의 값을 보고 싶을 때도 있을 것이다 이럴 땐 어떻게 해야 할까? 이런 문제를 해결하기 위해 Prometheus에서는 Job과 Instance를 사용한다. 아래 그림으로 예를 들어 보면 이해하기 쉽다.
Job이란?
Job은 Instance들의 집합이라고 이해하면 쉽다. 내가 한 묶음으로 보고 싶은 Web server를 모두 모아서 Job으로 구성하면 된다. 위에 보는 것처럼 Metrics안에 Job lable을 넣어서 조회하면 내가 구성한 Job의 목록의 값들을 모두 사용하여 값을 반환해 준다.
Instance이란?
인스턴스는 Single Unit이나 Process를 이야기한다. Job은 한 묶음이라고 했는데 Job안에 하나하나의 구성원이라고 생각하면 쉽다. 위에 보는 것처럼 Instance를 lable조건을 주어서 값을 반환할 수 있다. Instance는 {host}:{Port} 단위로 구성되어 한 서버에 Port를 바꿔서 설정해도 되며 Port는 같고 서버를 다르게 하여 구성하여도 된다.
Group 이란?
Group은 어려 개의 내용을 한꺼번에 보기 힘들어서 일부만 묶어서 사용하는 것을 의미한다. 레이블도 group이라는 키워드로 조건을 붙여서 조회가 가능ㅎgroup="production”
Yml파일 구성 예시
# prometheus.yml <...> scrape_configs: - job_name: 'node' # Job 이름 scrape_interval: 5s # Scape 주기 설정 static_configs: - targets: ['10.1.1.1:3001'] # Instance 1 labels: group: 'production' # group 1 - targets: ['10.1.1.2:3002', '10.1.1.3:3002'] # Instance 2, 3 labels: group: 'develop' # group 2
실습해 보기
이전에 포스팅에서 했던 것처럼 node_exporter를 3개 설치해서 추가해 보도록 하겠습니다. node_exporter를 설치하는 방법은 이곳을 참고해주시고 아래는 Prometheus.yml 파일 예시입니다.
global: scrape_interval: 15s evaluation_interval: 15s # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 rule_files: # - "first_rules.yml" # - "second_rules.yml" scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "node" static_configs: - targets: ["172.30.3.170:9100", "172.30.3.176:9100"] labels: group: "production" - targets: ["172.30.3.177:9100"] labels: group: "develop"
Prometheus 실행하기
./prometheus --config.file=prometheus.yml
홈페이지 들어가 보면 아래와 같이 Node가 Job단위로 묶인 것을 확인할 수 있음. Instance는 172.30.3.170:9100, 172.30.3.176:9100, 172.30.3.177:9100으로 구성된 것을 볼 수 있음
Instance 모두 확인하기
Metric에 up이라는 명령어를 치면 지금 떠있는 Instance를 볼 수 있다.
up
Job단위로 조회하기
Metrics에 Lable조건을 주면 해당 내용을 요약해서 볼 수 있다.
up{job="node"}
Group 단위로 조회하기
Group 단위로도 조회가 가능하다
up{job="node", group="production"}
참고 문헌
https://prometheus.io/docs/concepts/jobs_instances/
https://prometheus.io/docs/prometheus/latest/getting_started/
반응형'데이터 엔지니어링 > Prometheus' 카테고리의 다른 글