본문 바로가기

리눅스

[WIP] 우분투에서 Prometheus Node Exporter를 설치하고 실행하는 방법

728x90

우분투에서 Prometheus Node Exporter를 설치하고 실행하는 방법

Prometheus Node Exporter는 서버의 CPU, 메모리, 디스크, 네트워크 등 시스템 메트릭을 수집하여 Prometheus가 스크랩할 수 있도록 제공하는 에이전트입니다.

  • 기본 포트: 9100
  • 메트릭 확인: http://:9100/metrics

1. 버전 및 변수 설정

버전 관리를 위해 변수로 정의합니다.

export VERSION=1.8.1
export OS=linux
export ARCH=amd64

2. 전용 사용자 생성

보안을 위해 별도의 시스템 계정으로 실행합니다.

useradd -r -m -s /usr/sbin/nologin node_exporter

3. Node Exporter 다운로드 및 설치

최신 버전을 다운로드하고 설치합니다.

node_exporter_download

cd /usr/local/src

# sudo wget -q https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz
sudo wget -q https://github.com/prometheus/node_exporter/releases/download/v${VERSION}/node_exporter-${VERSION}.${OS}-${ARCH}.tar.gz

sudo tar xfz node_exporter-${VERSION}.${OS}-${ARCH}.tar.gz

sudo cp node_exporter-${VERSION}.${OS}-${ARCH}/node_exporter /usr/local/bin/

sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

4. systemd 서비스 등록

sudo tee /etc/systemd/system/node_exporter.service > /dev/null << 'EOF'
[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

# 보안 옵션 (권장)
NoNewPrivileges=true
ProtectSystem=full
ProtectHome=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

5. 서비스 등록 및 실행

sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter

실행 상태 확인

sudo systemctl status node_exporter

포트 확인

ss -tulnp | grep 9100

또는

netstat -tulnp | grep 9100

6. 메트릭 확인

curl http://localhost:9100/metrics

브라우저 접속

http://localhost:9100/metrics

7. 방화벽 설정 (필요한 경우)

Node Exporter가 실행되는 포트를 외부에서 접근할 수 있도록 방화벽을 설정해야 할 수도 있습니다.

sudo ufw allow 9100/tcp
sudo ufw reload

8. 실행 옵션 추가

Node Exporter는 다양한 collector 옵션을 지원합니다.

 

특정 collector 비활성화

ExecStart=/usr/local/bin/node_exporter \
  --collector.systemd \
  --no-collector.hwmon

주요 옵션

  • --collector.systemd : systemd 메트릭 수집
  • --collector.processes : 프로세스 정보 수집
  • --no-collector. : 특정 collector 비활성화9

9. Prometheus 설정

Prometheus에서 수집하도록 설정

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['<node-ip>:9100']

 

참고URL

- https://prometheus.io/download/

- https://github.com/prometheus/node_exporter

 

728x90