본문 바로가기

Mornitoring/Grafana

Grafana Mornitoring - 2. Node Exporter, Prometheus, Grafana 세팅

Node Exporter의 최신 Release는 여기에서 확인하실 수 있습니다.

 

위의 링크를 참조하여 모든 서버에 아래 버전을 수정해서 설치해주시면 됩니다.

#!/bin/bash
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
tar -xvf node_exporter-0.18.1.linux-amd64.tar.gz
sudo mv node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin/
sudo cat > node_exporter.service <<-EOF
[Unit]
Description=Node Exporter
After=network.target

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

[Install]

WantedBy=multi-user.target
EOF

sudo cp node_exporter.service /etc/systemd/system/node_exporter.service
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl status node_exporter
sudo systemctl enable node_exporter

sudo rm -rf node_exporter-0.18.1.linux-amd64.tar.gz

 

이제 Prometheus를 설치해보겠습니다. 최신 버전은 여기서 확인하실 수 있습니다.

#!/bin/bash
wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz
tar -xvf prometheus-2.16.0.linux-amd64.tar.gz
rm -rf prometheus-2.16.0.linux-amd64.tar.gz
mv prometheus-2.16.0.linux-amd64 prometheus
nohup ./prometheus/prometheus --web.enable-lifecycle --config.file ./prometheus/prometheus.yml > prometheus.log 2>&1 &

 

yaml을 따로 수정하지 않았다면 Localhost에 관해서만 매트릭이 수집되고 있는 상태입니다.

프로메테우스에 접속해서 Target을 통해 yaml에 정의한 서버들이 제대로 수집되고 있는지 확인할 수 있습니다.

 

 

여기서 --web.enable-lifecycle 옵션은 나중에 프로메테우스에 수집하고자 하는 메트릭을 추가할 때,

중지하지 않고 Reload 하기 위한 옵션입니다.

나중에 yaml을 수정한 후에는 아래 명령어를 통해 수집하고자 하는 metric들을 중지 없이 추가할 수 있습니다.

curl -s -XPOST localhost:9090/-/reload

 

마지막으로 Grafana를 설치하겠습니다. 최신 버전은 여기에서 확인할 수 있습니다.

#!/bin/bash
wget https://dl.grafana.com/oss/release/grafana-6.6.1-1.x86_64.rpm
sudo yum -y localinstall grafana-6.6.1-1.x86_64.rpm
sudo service grafana-server start

 

그라파나로 접속하고, 최초 로그인은 admin/admin 입니다.

이후 아래와 같이 비밀번호를 변경해서 사용하시면 됩니다.

 

 

 

이제 Grafana와 Prometheus를 연동하도록 하겠습니다.

DataSource를 Prometheus로 골라주시고, 저는 한 서버에 Prometheus와 Grafana를 설치 했기 때문에 로컬로 호출하도록 하겠습니다.

 

 

메트릭을 수집할 서버를 조금 다듬어 보도록 하겠습니다.

yml파일을 아래와 같이 수정해주세요

수집하고자 하는 job name은 Grafana 대시보드에 뜰 서버 이름이며, IP:9100를 적어주시면 됩니다.

 

 

리로드가 정상적으로 수행됐다면 아래 처럼 중단없이 잘 바뀌어 수집되고 있는 것을 확인할 수 있습니다.

만약 오토스케일링이 되는 서버들도 모니터링하기를 원하신다면

위와 같이 yml 파일을 수정하고 reload api call을 하게 끔 자동화시키면 해결할 수 있습니다.

 

 

이제 마지막으로 대시보드를 구성해보겠습니다

아래 번호를 입력하면 오픈소스 특성 상 다른 유저분들이 꾸며놓은 대시보드를 import하여 사용할 수 있습니다.

 

 

다음 게시글에서는 ECS에서 컨테이너들에 대한 메트릭 수집에 대해 알아보도록 하겠습니다.