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는 복잡한 설정 없이도 서버 자원의 실시간 상태를 수집 → 저장 → 분석 → 시각화하는 전체 파이프라인을 구축할 수 있는 강력한 도구 조합이다. 이러한 체계는 단순한 시각화를 넘어서, 장애 예방, 성능 튜닝, 운영 안정성 확보라는 관점에서도 매우 중요하다.
'Experience > LG CNS AM Inspire Camp 1기' 카테고리의 다른 글
| [LG CNS AM Inspire Camp] 28. 미니프로젝트 1 - 과거의 오늘 날짜 Hot news를 보여드립니다. newspace (0) | 2025.05.15 |
|---|---|
| [LG CNS AM Inspire Camp] 27. MSA? 모놀리식 아키텍처와 비교해서 (0) | 2025.05.15 |
| [LG CNS AM Inspire Camp] 25. Spring Boot Actuator, 서비스 상태 모니터링 (1) | 2025.05.14 |
| [LG CNS AM Inspire Camp] 24. Spring Cloud Gateway로 API 게이트웨이 구축하기 (0) | 2025.05.14 |
| [LG CNS AM Inspire Camp] 23. Eureka로 해결하는 마이크로서비스 주소 관리의 복잡성 (0) | 2025.05.14 |