[AWS] Node Exporter 로 Node Metric 노출 실습

Hyunjun Kim·2025년 7월 7일

실습 - (AWS 환경)

목록 보기
36/61

Node Exporter 는 prometheus 그룹에서 만든 수직기다. prometheus 형식으로 적은 리소스로 다양한 metric을 뽑아내는 데 좋게 세팅되어 있다.

1.1 설치하기

다운로드 링크
버전 1.5.0

wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.5.0.linux-amd64.tar.gz
mv node_exporter-1.5.0.linux-amd64 node_exporter
cd node_exporter/
export NODE_EXPORTER_HOME=$(pwd)
echo $NODE_EXPORTER_HOME

1.2 실행
$NODE_EXPORTER_HOME 에서

./node_exporter

localhost에 9100 으로 리슨하고 있다~
TLS 는 설정이 안 되어 있고.

  • $IP:9100 으로 접속해서 확인

  • $IP:9100/metrics 에서 메트릭 확인

프로메테우스 형식의 매트릭이 잘 나오는 것을 확인할 수 있다.

node-expoter 도 go로 만들어진 것이라

go_* 관련 매트릭 있고
node_* 이 호스트 머신에 대한 매트릭들인데
노드 별로 CPU Second를 다 수집하고 있고,

node_disk_write_time_seconds_total
node_disk_read_bytes_total{device="xvda"} 5.67404544e+08
디스크 write 시간 들도 디바이스 별로 라벨로 구분해서 남기고 있다.
node_filesystem_avail_bytes : 디스크가 얼마나 사용 가능한지~ 등등 수집하는 매트릭이 상당히 많다.

이렇게 실행 중이라면 다른 작업을 못하니까
systemctl로 등록을 해놓자.



1.3 systemctl 로 등록

sudo vi /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=$YOUR_USER
Group=$YOUR_USER
Type=simple
ExecStart=$YOUR_NODE_EXPORTER_HOME/node_exporter

[Install]
WantedBy=multi-user.target
  • $YOUR_NODE_EXPORTER_HOME 을 자신의 경로에 맞게 수정한다.
  • $YOUR_USER 도 자신이 사용할 유저에 맞게 수정한다. $YOUR_NODE_EXPORTER_HOME 에 대한 소유권한 ( chown )이 $YOUR_USER에게 있어야 한다.

등록

sudo systemctl daemon-reload
sudo systemctl enable node_exporter.service

systemctl로 시작

sudo systemctl start node_exporter.service
ps -ef | grep node_exporter

다시 웹으로 돌아가서
9100 포트에서 수집이 잘 되고 있는지 새로고침해서 확인을 해주자.

잘 되는 중.



이제 프로메테우스가 Node_netstat ~~ 이런 정보들을
:9090 포트, 에서 수집할 수 있게 해줘야 한다.

그러면 Prometheus 서버가 이걸 알게 해야한다.
그러기 위해서는 Prometheus/Prometheus.yml 을 수정해야 함.

1.4 Prometheus 에서 Node Exporter Scrap 하기

$PROMETHEUS_HOME 에서 prometheus.yml 의 scrap_configs 하위에 다음 내용 추가해 주자.

# scrape_configs:
- job_name: "node"
static_configs:
- targets: ["localhost:9100"]

이미 metrics 라는 path로 prometheus 정보를 노출하고 있고, 기본 경로 metrics 에서 찾는다고 했으니까, 이렇게 수정하면 다 된 것.

sudo systemctl stop prometheus.service
sudo systemctl start prometheus.service

sudo systemctl reload prometheus.service
reload 없어서 안 됨

ps -ef | grep prometheus

프로메테우스가 잘 돌고 있고
변경된 설정을 적용이 되었는지 확인을 하러 가보자


프로메테우스 콜렉터에 와서 새로고침을 한 다음에

node_ 를 입력하면

node 관련 정보들이 나온다.

테스트로
node_ 로 시작하는 것 잡아서 확인해보자.

node_boot_time_seconds

아까 설정한 9100 포트에서node_boot_time_seconds 가 수집된 것임을 알 수 있다.

profile
Data Analytics Engineer 가 되

0개의 댓글