Node Exporter로 리눅스 호스트 메트릭 모니터링

1 개요[ | ]

MONITORING LINUX HOST METRICS WITH THE NODE EXPORTER
NODE EXPORTER로 리눅스 호스트 메트릭 모니터링

Prometheus Node Exporter는 하드웨어 및 커널 관련 메트릭을 다양하게 노출합니다.

이 가이드에서는 다음을 수행합니다:

  • localhost에서 Node Exporter를 시작합니다.
  • localhost에서 Prometheus 인스턴스를 시작하고 실행 중인 Node Exporter에서 메트릭을 수집하도록 구성합니다.

Note

Prometheus Node Exporter는 *nix 시스템을 위한 것이지만, Windows 시스템에서는 유사한 목적으로 Windows Exporter를 사용할 수 있습니다.

2 Node Exporter 설치 및 구동하기[ | ]

Prometheus Node Exporter는 tarball을 통해 설치할 수 있는 단일 정적 바이너리입니다. Prometheus 다운로드 페이지에서 Node Exporter를 다운로드한 후, 압축을 풀고 실행하면 됩니다:

# NOTE: 위에서 언급한 "downloads" 페이지의 URL로 대체하십시오.
# <VERSION>, <OS>, <ARCH>는 자리표시자입니다.
wget https://github.com/prometheus/node_exporter/releases/download/v<VERSION>/node_exporter-<VERSION>.<OS>-<ARCH>.tar.gz
tar xvfz node_exporter-*.*-amd64.tar.gz
cd node_exporter-*.*-amd64
./node_exporter

Node Exporter가 실행 중이며 포트 9100에서 메트릭을 노출하고 있음을 나타내는 출력이 표시될 것입니다:

INFO[0000] Starting node_exporter (version=0.16.0, branch=HEAD, revision=d42bd70f4363dced6b77d8fc311ea57b63387e4f)  source="node_exporter.go:82"
INFO[0000] Build context (go=go1.9.6, user=root@a67a9bc13a69, date=20180515-15:53:28)  source="node_exporter.go:83"
INFO[0000] Enabled collectors:                           source="node_exporter.go:90"
INFO[0000]  - boottime                                   source="node_exporter.go:97"
...
INFO[0000] Listening on :9100                            source="node_exporter.go:111"

3 Node Exporter 메트릭[ | ]

Node Exporter가 설치되고 실행 중인 상태에서, /metrics 엔드포인트에 cURL을 실행하여 메트릭이 내보내지고 있는지 확인할 수 있습니다:

curl http://localhost:9100/metrics

다음과 같은 출력이 보여야 합니다:

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 3.8996e-05
go_gc_duration_seconds{quantile="0.25"} 4.5926e-05
go_gc_duration_seconds{quantile="0.5"} 5.846e-05
# etc.

성공! Node Exporter가 이제 Prometheus가 스크래이핑할 수 있는 메트릭을 노출하고 있습니다. 출력의 아래쪽에 있는 다양한 시스템 메트릭(node_ 접두어 붙음)을 포함하여, 해당 메트릭(도움말 및 타입 정보 포함)을 보려면 다음을 실행하세요.

curl http://localhost:9100/metrics | grep "node_"

4 Prometheus 인스턴스 설정하기[ | ]

Prometheus 인스턴스가 Node Exporter 메트릭에 접근하려면 올바르게 설정되어야 합니다. 다음 prometheus.yml 예제 설정 파일은 Prometheus 인스턴스가 localhost:9100을 통해 Node Exporter에서 얼마나 자주 스크래입해야 하는지 알려줍니다:

global:
  scrape_interval: 15s

scrape_configs:
- job_name: node
  static_configs:
  - targets: ['localhost:9100']

Prometheus를 설치하려면, 사용 중인 플랫폼에 맞는 최신 릴리스를 다운로드하고 압축을 푸십시오:

wget https://github.com/prometheus/prometheus/releases/download/v*/prometheus-*.*-amd64.tar.gz
tar xvf prometheus-*.*-amd64.tar.gz
cd prometheus-*.*

Prometheus를 설치한 후, 위에서 생성한 Prometheus 설정을 가리키도록 --config.file 플래그를 사용하여 시작할 수 있습니다:

./prometheus --config.file=./prometheus.yml

5 Prometheus expression 브라우저를 통해 Node Exporter 메트릭 탐색하기[ | ]

Prometheus가 실행 중인 Node Exporter 인스턴스로부터 메트릭을 스크래이핑하고 있기 때문에, Prometheus UI (표현 브라우저라고도 함)를 사용하여 이러한 메트릭을 탐색할 수 있습니다. 브라우저에서 localhost:9090/graph로 이동하고 페이지 상단의 메인 표현식 바를 사용하여 표현식을 입력하십시오. 표현식 바는 다음과 같습니다:

Prometheus-expression-bar.png

Node Exporter에 특정한 메트릭은 node_로 시작하며, node_cpu_seconds_totalnode_exporter_build_info와 같은 메트릭을 포함합니다.

아래 링크를 클릭하여 몇 가지 예제 메트릭을 확인하십시오:

메트릭 의미
rate(node_cpu_seconds_total{mode="system"}[1m]) 지난 1분 동안 시스템 모드에서 초당 평균 CPU 사용시간 (초 단위)
node_filesystem_avail_bytes 비루트 사용자에게 사용가능한 파일시스템 공간 (바이트 단위)
rate(node_network_receive_bytes_total[1m]) 지난 1분 동안 초당 평균 수신 네트워크 트래픽 (바이트 단위)

6 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}