[Cloud Native Observability] Prometheus Configuration

IMKUNYOUNG·2024년 7월 30일
0

KCNA

목록 보기
46/56

이번 글에서는 Prometheus 서버를 설정하고, 노드 익스포터를 통해 메트릭을 노출하는 노드를 구성하는 방법에 대해 알아보겠습니다.

1. Prometheus 서버 설치 및 구성

Prometheus 서버를 설치한 후, 노드 익스포터를 통해 메트릭을 수집하려면 Prometheus 서버가 해당 노드를 스크래핑하도록 설정해야 합니다. 이는 풀 기반 모델을 따르기 때문에, Prometheus 서버는 명시적으로 스크랩할 노드를 구성해야 합니다.

이 구성은 /etc/prometheus/prometheus.yml 파일에 설정됩니다. 이 파일은 크게 두 가지 섹션으로 나뉩니다:

  • 전역 설정 (global section): 모든 설정 섹션의 기본값을 포함하고 있으며, 각 설정 섹션에서 이를 재정의할 수 있습니다.
  • 스크랩 설정 (scrap config section): 스크랩할 대상과 해당 대상에 대한 메트릭 수집 설정을 정의합니다.

2. 기본 설정

기본 설정의 스크랩 간격은 1분입니다. 이를 재정의하여 15초로 설정하려면 다음과 같이 구성할 수 있습니다:

global:
  scrape_interval: 1m

scrape_configs:
  - job_name: 'node'
    scrape_interval: 15s
    static_configs:
      - targets: ['<NODE_IP>:<NODE_PORT>']

3. 스크랩 설정 예시

새로운 작업을 생성하려면 스크랩 설정에서 작업을 생성하고, 스크랩 간격과 타임아웃을 지정해야 합니다. 예를 들어, 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'

4. Prometheus 서버 재시작

설정을 변경한 후에는 Prometheus 프로세스를 재시작해야 합니다. 이를 위해 다음 명령어를 사용할 수 있습니다:

systemctl restart prometheus

5. 설정 확인

Prometheus 서버를 재시작한 후, Prometheus 웹 UI에서 Targets 상태를 확인하여 설정된 모든 대상의 상태와 스크랩 상태를 확인할 수 있습니다. 기본 Prometheus 구성은 자동으로 구성되어 있으며, 추가로 구성한 노드가 성공적으로 스크랩되었는지 확인할 수 있습니다.

Prometheus 웹 UI에서 다음 경로로 이동하여 확인할 수 있습니다 (--web.enable-lifecycle 플래그 설정이 되어있을 때):

http://<PROMETHEUS_SERVER_IP>:9090/targets

여기서 각 대상의 상태를 확인할 수 있으며, 상태가 UP으로 표시되면 성공적으로 메트릭을 수집하고 있는 것입니다.

마치며

Prometheus 서버가 설치되고, 노드 익스포터를 통해 메트릭을 수집하는 노드를 성공적으로 구성하였습니다. 이를 통해 시스템 모니터링 및 경고 설정을 효율적으로 관리할 수 있습니다. 추가로 경고(alerting) 및 규칙 파일(rule files)을 설정하여 더욱 세부적인 모니터링 및 경고 설정을 구성할 수 있습니다.

0개의 댓글