[Node Exporter] #3.Docker기반 Node Exporter 설치 및 설정 가이드
Grafana/Prometheus Architecture
- 아래 그림에서 Exporters 에 해당하는 부분에 해당함
- Node Exporter는 하드웨어의 상태와 커널 관련 메트릭을 수집하는 메트릭 수집기로 Linux, macOS, Windows 다양한 운영 체제에서 작동한다.
테스트 수행한 환경
- 인터넷가능한 환경, Rocky Linux 8.6, Docker가 구성된 환경
1. Node Exporter docker-compose 구동을 위한 스크립트 준비
전체파일 구성
tree
├── create.sh
├── delete.sh
├── docker-compose.yml
├── log.sh
├── start.sh
└── stop.sh
1) docker-compose.yml 샘플
주요설정 설명
--collector.filesystem.ignored-mount-points : 수집하지 않을 filesystem 정의의
vi docker-compose.yml
version: '3.7'
# monitor-net이름으로 이미 구성한 경우에는 networks부분은 주석처리
networks:
monitor-net:
driver: bridge
services:
nodeexporter:
#image: prom/node-exporter:v0.18.1
image: prom/node-exporter:latest
container_name: nodeexporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.rootfs=/rootfs'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
# restart: unless-stopped
ports:
- 9100:9100
networks:
- monitor-net
2) 기타 docker 컨테이너 생성,삭제,구동,중지,로그조회 등 스크립트 작성
cat > create.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml up -d
docker-compose -f docker-compose.yml logs -f
EOF
cat > delete.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml down -v
EOF
cat > start.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml start
EOF
cat > stop.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml stop
EOF
cat > log.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml logs -f
EOF
chmod +x *.sh
2. Node Exporter 정상구동여부 확인, 대시보드 확인
### 구동하기
./create.sh
### 도커컨테이너 정상구동여부 확인
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5411920f44bd prom/node-exporter:latest "/bin/node_exporte..." 11 minutes ago Up 11 minutes 0.0.0.0:9100->9100/tcp nodeexporter
### 도커컨테이너 로그 조회
./logs.sh
ts=2023-04-16T12:01:15.952Z caller=node_exporter.go:180 level=info msg="Starting node_exporter" version="(version=1.5.0, branch=HEAD, revision=1b48970ffcf5630534fb00bb0687d73c66d1c959)"
생략...
ts=2023-04-16T12:01:15.955Z caller=tls_config.go:232 level=info msg="Listening on" address=[::]:9100
ts=2023-04-16T12:01:15.955Z caller=tls_config.go:235 level=info msg="TLS is disabled." http2=false address=[::]:9100
3. Node Exporter 메트릭 데이터 조회
curl http://아이피:9100/metrics
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 1.5022e-05
go_gc_duration_seconds{quantile="0.25"} 2.7251e-05
go_gc_duration_seconds{quantile="0.5"} 3.4583e-05
go_gc_duration_seconds{quantile="0.75"} 4.9426e-05
go_gc_duration_seconds{quantile="1"} 0.000238435
go_gc_duration_seconds_sum 0.008046264
go_gc_duration_seconds_count 191
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 8
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.19.3"} 1
이하 생략..
4. Grafana 대시보드에서 조회
- Grafana사이트에서 다운받은 Node Exporter Full
대시보드로 조회한 화면
댓글남기기