Prometheus Node Exporter 설치 방법
본 포스팅은 Node Exporter 설치 방법에 대한 글입니다.
Prometheus Node Exporter
하드웨어와 UNIX 계열의 커널 관련 metrics를 수집하여 HTTP 엔드포인트로 내보내는 오픈소스 소프트웨어
설치 방법
- 압축 파일을 다운 받아 바이너리 파일로 실행
- 도커 이미지로 컨테이너 생성하여 실행
- 도커 컴포즈로 실행
바이너리 파일로 실행
- Prometheus Download 페이지 접속
https://prometheus.io/download/
- OS에 맞는 파일 - 우클릭 - 링크 주소 복사
- wget 명령어로 압축 파일 다운로드
wget https://github.com/prometheus/node_exporter/releases/download/vx.x.x/node_exporter-x.x.x.linux-amd64.tar.gz
- tar xzvf 명령어로 압축 파일 압축 해제
tar xzvf prometheus-x.xx.x.linux-amd64.tar.gz
- 압축 해제된 파일이 있는 경로로 이동 후 바이너리 파일 실행
$ ./node_exporter
컨테이너로 실행
$ docker run -d --name node-exporter \
--net="host" \
--pid="host" \
-v "/:/host:ro,rslave" \
quay.io/prometheus/node-exporter:latest \
--path.rootfs=/host
Node Exporter를 컨테이너로 실행할 경우, 몇 가지 옵션을 설정해줘야 Node Exporter 컨테이너 자체가 아닌 호스트를 모니터링 할 수 있습니다.
$ docker run -d --name node-exporter \
Docker를 사용하여 컨테이너를 ‘node-exporter’라는 이름으로 백그라운드(-d 옵션)에서 실행합니다.
--net="host" \
컨테이너가 호스트 네트워크를 사용하도록 설정합니다.
이렇게 하면 컨테이너는 호스트의 네트워크 스택을 그대로 사용할 수 있습니다.
--pid="host" \
호스트의 PID 네임스페이스를 공유하여 컨테이너 내부에서 호스트의 프로세스 ID를 볼 수 있습니다.
-v "/:/host:ro,rslave" \
호스트의 루트 디렉토리(“/”)를 컨테이너의 “/host” 디렉토리에 읽기 전용(ro)으로 마운트합니다.
‘rslave’ 옵션은 호스트에서 마운트 된 변경 사항이 컨테이너에 전파되도록 설정합니다.
quay.io/prometheus/node-exporter:latest \
컨테이너가 실행할 이미지와 이미지 버전을 명시합니다.
--path.rootfs=/host
Node Exporter에게 시스템의 루트 파일 시스템이 ‘/host’에 마운트되어 있다는 것을 알려주는 옵션입니다. 이 옵션을 통해 Node Exporter는 호스트 시스템의 메트릭을 수집할 수 있습니다.
도커 컴포즈로 실행
version: '3.8'
services:
node_exporter:
image: quay.io/prometheus/node-exporter:latest
container_name: node_exporter
command:
- '--path.rootfs=/host'
network_mode: host
pid: host
restart: unless-stopped
volumes:
- '/:/host:ro,rslave'
포트
Node Exporter는 기본적으로 9100 포트에서 실행됩니다.
수집된 metrics 확인
Node Exporter 실행 후 아래 URL 접속 시 metrics 정보를 확인할 수 있습니다.
Node Exporter가 설치된 IP주소:9100/metrics
Reference
- https://github.com/prometheus/node_exporter
- https://yoo11052.tistory.com/204