본문 바로가기
[AWS-FRF]/Prometheus

[Prometheus] Node Exporter의 역할!! (@2025년 최신)

by METAVERSE STORY 2025. 10. 3.
반응형

 

 

 


1. Prometheus와 Node Exporter의 관계 (2025년 기준)

Prometheus는 오픈소스 모니터링 및 알림 시스템으로, 메트릭 데이터를 수집·저장·조회하는 역할을 합니다. 하지만 Prometheus 자체는 서버나 운영체제의 리소스를 직접 들여다보지 못하기 때문에, 실제 하드웨어와 OS 메트릭을 노출하는 Node Exporter가 함께 설치되는 경우가 많습니다. Node Exporter는 Linux/Unix 기반 서버의 시스템 자원 지표를 HTTP /metrics 엔드포인트를 통해 노출하여 Prometheus가 스크랩할 수 있도록 해줍니다.

2025년 현재 Prometheus와 Node Exporter 조합은 가장 널리 쓰이는 서버 모니터링 스택이며, 클라우드 환경과 온프레미스 환경 모두에서 사용됩니다.


2. Node Exporter의 역할

2.1 Node Exporter 정의

  • Node Exporter는 Linux/Unix 서버의 하드웨어 및 커널 메트릭 수집기입니다.
  • 서버 내부 상태를 Prometheus가 이해할 수 있는 시계열 데이터로 변환해 제공합니다.
  • 기본 포트는 9100이며, 브라우저나 curl 명령어로 /metrics 엔드포인트를 확인할 수 있습니다.

2.2 Node Exporter가 제공하는 주요 기능

  • CPU, 메모리, 디스크, 네트워크, 시스템 상태 등 다양한 리소스 모니터링
  • Prometheus에 실시간으로 데이터 제공
  • Grafana 대시보드와 연동하여 시각화 및 알람 설정 가능

3. 수집되는 주요 메트릭 종류

3.1 CPU 메트릭

  • 전체 CPU 사용률
  • 코어별 사용률
  • user/system/idle 시간
  • context switching 및 인터럽트 횟수

3.2 메모리 메트릭

  • 총 메모리 크기
  • 사용 중 메모리
  • free 메모리
  • 캐시/버퍼 메모리
  • swap 사용량

3.3 디스크 관련 메트릭

  • 파일시스템 사용량
  • 디스크 I/O (읽기·쓰기 속도)
  • 디스크 사용 가능한 공간

3.4 네트워크 메트릭

  • 네트워크 인터페이스별 송신/수신 패킷 수
  • 전송 에러 및 드롭 패킷 수
  • 대역폭 사용률

3.5 시스템 상태 메트릭

  • Load average (1분, 5분, 15분)
  • 서버 uptime
  • 부팅 시간
  • 프로세스 수

4. 왜 Prometheus에는 Node Exporter가 필요한가?

4.1 Prometheus의 한계

  • Prometheus는 자체 동작 상태만 모니터링할 수 있습니다.
  • OS 수준의 지표는 수집하지 못합니다.

4.2 Node Exporter의 필요성

  • 서버 리소스를 Prometheus에 전달해주는 눈과 귀 역할을 합니다.
  • 알람 설정 예시: CPU 사용률이 90%를 초과하면 경고 발생.
  • 인프라 운영팀이 서버 이상 징후를 사전에 감지할 수 있도록 돕습니다.

5. Node Exporter 설치 방법 (2025 최신 가이드)

5.1 최신 릴리스 확인

  • 2025년 2월 기준 Node Exporter 최신 버전은 v1.9.0입니다.
  • GitHub Releases 페이지에서 최신 버전을 다운로드하는 것이 가장 안전합니다.

5.2 설치 과정

5.2.1 다운로드 및 설치

VER="1.9.0"
ARCH="linux-amd64"
wget https://github.com/prometheus/node_exporter/releases/download/v${VER}/node_exporter-${VER}.${ARCH}.tar.gz
tar xzf node_exporter-${VER}.${ARCH}.tar.gz
sudo cp node_exporter-${VER}.${ARCH}/node_exporter /usr/local/bin/

5.2.2 전용 사용자 생성

sudo useradd --no-create-home --shell /usr/sbin/nologin node_exporter
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

5.2.3 systemd 서비스 등록 (/etc/systemd/system/node_exporter.service)

[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
Restart=on-failure

[Install]
WantedBy=multi-user.target

5.2.4 서비스 실행 및 확인

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

6. Prometheus와의 연동

6.1 Prometheus 설정 파일(prometheus.yml)에 타겟 등록

scrape_configs:
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['server1.example.com:9100', 'server2.example.com:9100']

6.2 방화벽 설정

  • 기본 포트는 9100
  • Prometheus 서버가 접근할 수 있도록 방화벽 규칙을 허용해야 합니다.

6.3 Grafana 대시보드와 연동

  • Grafana에서 "Node Exporter Full" 같은 오픈 대시보드를 불러오면 CPU, 메모리, 네트워크 현황을 시각적으로 모니터링할 수 있습니다.

7. 운영 시 주의사항

7.1 버전 관리

  • 항상 최신 릴리스를 확인하고, 보안 취약점 패치를 적용해야 합니다.

7.2 Collector 옵션 조정

  • 불필요한 메트릭은 --no-collector 옵션으로 비활성화하면 성능을 개선할 수 있습니다.

7.3 컨테이너 환경 주의

  • Docker나 Kubernetes 환경에서는 /proc과 /sys를 마운트해야 올바른 지표 수집이 가능합니다.

7.4 알람 규칙 설정

  • Prometheus Alertmanager와 연동하여 CPU 과부하, 메모리 부족, 디스크 사용률 임계치 초과 시 알림을 받을 수 있습니다.

8. 결론

  • Prometheus는 강력한 시계열 데이터베이스이지만 서버 자원 상태를 직접 수집하지는 못합니다.
  • Node Exporter는 Prometheus 환경에서 서버 리소스 모니터링의 핵심 요소입니다.
  • 2025년 최신 버전은 v1.9.0, systemd를 통한 서비스 등록과 Prometheus 타겟 설정이 권장됩니다.
  • Grafana 대시보드를 활용하면 운영 효율성과 가시성을 크게 높일 수 있습니다.

👉 즉, Prometheus는 두뇌, Node Exporter는 감각기관이라 할 수 있습니다.

 

 

반응형

'[AWS-FRF] > Prometheus' 카테고리의 다른 글

[참고] Grafana Prometheus 를 사용한 서버 시각화!!  (2) 2025.10.03

댓글