[LG CNS AM Inspire Camp] 26. Node Exporter부터 Grafana까지 시스템 모니터링 파이프라인 구축하기
1. 들어가며
어떤 시스템이든 안정적으로 운영되기 위해서는, 현재 CPU 사용률이 어떤지, 메모리는 얼마나 쓰는지, 디스크 공간은 얼마나 남았는지 같은
시스템 자원 상태를 실시간으로 확인할 수 있는 모니터링 체계가 필요하다.
이 글에서는 최종 프로젝트의 관제 시스템을 만들기 위해 필수요소인 대표적인 오픈소스 기반의 시스템 모니터링 툴체인 Node Exporter + Prometheus + Grafana를 중심으로 각각의 역할과 구성 방법을 정리해본다.
2. 구성요소 개요

2.1 Node Exporter
Node Exporter는 리눅스 서버의 시스템 정보를 수집해주는 lightweight exporter다. CPU, Memory, Disk, Network, Load Average, Uptime 등 노드 단위의 시스템 자원 상태를 수집하여 Prometheus가 수집할 수 있도록 제공한다.
2.2 Prometheus
Prometheus는 CNCF(Cloud Native Computing Foundation : 리눅스 재단 소속 비영리 단체)에서 관리하는 오픈소스 모니터링 도구다. Exporter로부터 주기적으로 메트릭을 pull 방식으로 수집하고, 내부 TSDB에 저장하며, 쿼리 언어인 PromQL을 통해 데이터를 조회할 수 있다. 물론 Node Exporter 말고 Spring Actuator의 메트릭도 수집 가능하다.
2.3 Grafana
Prometheus에 저장된 메트릭을 시각화하기 위해 사용하는 대시보드 도구다.
풍부한 시각화 컴포넌트와 커뮤니티 템플릿을 통해 데이터를 직관적이고 유의미하게 시각화할 수 있다.
이들을 통해 단순히 리소스만 보는 것이 아니라, 특정 시간대에 부하가 몰리는 패턴을 시각화하고, grafana의 Alert manager를 활용해서 알람 조건을 등록 후 자동으로 Slack, 이메일 등으로 통보. 나아가 장애 발생 시 빠르게 근본 원인을 파악할 수 있다.
3. 설치 및 설정 흐름
3.1 Node Exporter 설치
# 최신 릴리스 다운로드
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
cd node_exporter-1.7.0.linux-amd64
# 백그라운드 실행
./node_exporter &
Node Exporter는 기본적으로 9100 포트를 통해 메트릭을 제공한다.
브라우저에서 http://<서버IP>:9100/metrics로 접속하면 수집되는 메트릭을 확인할 수 있다.
3.2 Prometheus 설치 및 설정
# 설치
wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
tar xvfz prometheus-2.52.0.linux-amd64.tar.gz
cd prometheus-2.52.0.linux-amd64
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node-exporter'
static_configs:
- targets: ['localhost:9100']
#설정 마친 후 실행
./prometheus --config.file=prometheus.yml
웹 UI는 기본 포트 9090에서 실행되며, http://localhost:9090 으로 접속할 수 있다.
3.3 Grafana 설치 및 설정
Grafana는 다양한 방식으로 설치할 수 있지만, 가장 쉬운 방법은 Docker다.
docker run -d -p 3000:3000 grafana/grafana
접속: http://localhost:3000
기본 계정: admin / admin
Prometheus 데이터 소스 연결
- 좌측 사이드바 → "Connections" → "Add data source"
- Prometheus 선택
- URL에 http://<Prometheus-IP>:9090 입력 후 저장
이제 Prometheus에서 수집한 메트릭을 기반으로 대시보드를 구성할 수 있다.
4. 주요 메트릭 예시

Node Exporter는 아래와 같은 수치를 제공한다.
| 항목 | PromQL 예시 |
| CPU 사용률 | 100 - (avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) |
| 메모리 사용 | node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes |
| 디스크 사용 | node_filesystem_avail_bytes vs node_filesystem_size_bytes |
| Load 평균 | node_load1, node_load5, node_load15 |
5. 마무리
Node Exporter, Prometheus, Grafana는 복잡한 설정 없이도 서버 자원의 실시간 상태를 수집 → 저장 → 분석 → 시각화하는 전체 파이프라인을 구축할 수 있는 강력한 도구 조합이다. 이러한 체계는 단순한 시각화를 넘어서, 장애 예방, 성능 튜닝, 운영 안정성 확보라는 관점에서도 매우 중요하다.