프로메테우스 가이드북은 A to Z Metnros (Udemy) — Prometheus | The Complete Hands-On for Monitoring & Alerting를 듣고 작성한 가이드북입니다.
가이드북의 전체 목차 및 인덱싱은 프로메테우스 가이드북 — 소개 페이지를 참고해주세요.
개요
프로메테우스의 모니터링 기능을 제공받고 싶은 어플리케이션은 코드 레벨에서 직접 매트릭을 전송하거나 수집할 수 있도록 설정할 수 있을 것입니다.
하지만 시스템 레벨의 커널(kernel)의 매트릭은 어떻게 이를 수집할 수 있을까요?
그 해답은 exporter에 있습니다.
Exporter이란?
An exporter is a software of number of libraries and servers that help in exporting existing metrics from third-party systems (like Linuxs/Windows OS) in the same format as of Prometheus metrics
Useful for cases where it is not feasible to instrument a given system with Prometheus metrics directly.
(e.g. HAProxy or Linux System stats)
[그림]
Linux System ←→ Exporter → Prometheus Server
Linux System ←→ Exporter : Gather data from target
Exporter ←→ Prometheus Server : Transform into correct format
Node Exporter
Node Exporter는 Unix(**NIX) 계열의 운영체제(OS) 및 하드웨어(HW) 매트릭을 위해서 사용합니다.
커널 및 머신 수준의 매트릭을 노출합니다.
CPU, MEM, Disk Storage, Disk I/O, Network Bandwidth와 같은 매트릭을 제공합니다.
플러그 가능한 매트릭 수집기와 동시에 Golang으로 작성되어 있습니다.
The Node Exporter is a Prometheus exporter for hardware and OS metrics exposed by Unix[**NIX]
It exposes kernel-level and machine-level metrics on Unix Systems, such as Linux.
When in action, it provides metrics such as CPU, memory, disk space, disk I/O, and network bandwidth.
It is written in Go with pluggable metric collectors.
이런 Node Exporter를 다운로드 받아 실행하면 수집이 시작됩니다. 예를 들어, UbuntuOS에서 Node Exporter를 실행하면 localhost:9100에 Node Exporter가 가동됩니다.
이후 localhost:9100/metrics에서 수집 가능한 매트릭 명단을 확인할 수 있습니다.
Node Exporter를 추가하기
작성한 Node Exporter에 대해서 Prometheus Server가 매트릭 수집을 할 수 있도록 Configuration File을 수정 해야 합니다.
scrap_configs 항목에 아래와 같이 새로운 job을 추가하면 됩니다.
scrap_configs:
# other options
# ...
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
WMI(Windows Management Instrumentation) Exporter
Windows 기반의 시스템을 위한 Exporter가 별도로 존재합니다.
promtheus-community/windows_exporter 를 설치 & 실행하고 지정된 포트(e.g. 9144)에 접속하면 작동 상태를 확인할 수 있습니다.
이후, localhost:9144/metrics에서 수집가능한 매트릭을 모두 볼 수 있습니다.
수집된 매트릭에 대해서 Configuration File을 Node Exporter와 같이 변경하면, 작업이 완료됩니다.