이번 글에서는 Prometheus 서버를 설정하고, 노드 익스포터를 통해 메트릭을 노출하는 노드를 구성하는 방법에 대해 알아보겠습니다.
Prometheus 서버를 설치한 후, 노드 익스포터를 통해 메트릭을 수집하려면 Prometheus 서버가 해당 노드를 스크래핑하도록 설정해야 합니다. 이는 풀 기반 모델을 따르기 때문에, Prometheus 서버는 명시적으로 스크랩할 노드를 구성해야 합니다.
이 구성은 /etc/prometheus/prometheus.yml
파일에 설정됩니다. 이 파일은 크게 두 가지 섹션으로 나뉩니다:
기본 설정의 스크랩 간격은 1분입니다. 이를 재정의하여 15초로 설정하려면 다음과 같이 구성할 수 있습니다:
global:
scrape_interval: 1m
scrape_configs:
- job_name: 'node'
scrape_interval: 15s
static_configs:
- targets: ['<NODE_IP>:<NODE_PORT>']
새로운 작업을 생성하려면 스크랩 설정에서 작업을 생성하고, 스크랩 간격과 타임아웃을 지정해야 합니다. 예를 들어, 30초 간격으로 설정하고 스크랩 타임아웃을 3초로 설정할 수 있습니다:
scrape_configs:
- job_name: 'nodes'
scrape_interval: 30s
scrape_timeout: 3s
static_configs:
- targets: ['<NODE_IP>:<NODE_PORT>']
metrics_path: '/custom_metrics_path'
scheme: 'https'
설정을 변경한 후에는 Prometheus 프로세스를 재시작해야 합니다. 이를 위해 다음 명령어를 사용할 수 있습니다:
systemctl restart prometheus
Prometheus 서버를 재시작한 후, Prometheus 웹 UI에서 Targets
상태를 확인하여 설정된 모든 대상의 상태와 스크랩 상태를 확인할 수 있습니다. 기본 Prometheus 구성은 자동으로 구성되어 있으며, 추가로 구성한 노드가 성공적으로 스크랩되었는지 확인할 수 있습니다.
Prometheus 웹 UI에서 다음 경로로 이동하여 확인할 수 있습니다 (--web.enable-lifecycle
플래그 설정이 되어있을 때):
http://<PROMETHEUS_SERVER_IP>:9090/targets
여기서 각 대상의 상태를 확인할 수 있으며, 상태가 UP
으로 표시되면 성공적으로 메트릭을 수집하고 있는 것입니다.
Prometheus 서버가 설치되고, 노드 익스포터를 통해 메트릭을 수집하는 노드를 성공적으로 구성하였습니다. 이를 통해 시스템 모니터링 및 경고 설정을 효율적으로 관리할 수 있습니다. 추가로 경고(alerting) 및 규칙 파일(rule files)을 설정하여 더욱 세부적인 모니터링 및 경고 설정을 구성할 수 있습니다.