Grafana 외부 서버의 데이터를 가져오기 - prometheus-nginx-exporter (stub_status) 강의이야기 | Posted on 2022. 2. 13. 19:35
이번에는 NGINX 의 stub_status 를 Grafana 에서 모니터링하는걸 해보겠습니다.
sudo apt install -y prometheus-nginx-exporter
sudo systemctl daemon-reload
sudo systemctl enable prometheus-nginx-exporter.service
sudo service prometheus-nginx-exporter restart
sudo service prometheus-nginx-exporter status
prometheus-nginx-exporter 를 설치합니다.
sudo vi /etc/nginx/conf.d/stub_status.conf
NGINX 의 stub_status 를 가져오기 위해서, NGINX 설정 파일을 하나 생성합니다.
server {
listen 8080;
location /stub_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
그리고 위의 내용을 입력합니다.
sudo service nginx restart
sudo service prometheus-nginx-exporter restart
입력이 완료돼면, NGINX 와 exporter 를 재시작해줍니다.
http://{Your NGINX Exporter IP}:9113/metrics
위의 주소로 접속해서 아래와 같은 화면이 나오면 성공입니다.
그러면 이제 Grafana 가 설치됀 Prometheus 설정 파일을 수정합니다.
sudo vi /etc/prometheus/prometheus.yml
맨 아래쪽에 prometheus-nginx-exporter 용 9113 포트 정보를 추가합니다.
- job_name: node
# If prometheus-node-exporter is installed, grab stats about the local
# machine by default.
static_configs:
- targets:
- 'localhost:9100'
# test server
- '{Your Node Exporter IP}:9100'
- '{Your NGINX Exporter IP}:9113'
relabel_configs:
- source_labels: ['__address__']
regex: 'localhost:91[0-9]+'
target_label: instance
replacement: 'Grafana'
- source_labels: ['__address__']
regex: '{Your}\.{NGINX}\.{Exporter}\.{IP}:91[0-9]+'
target_label: instance
replacement: 'Test'
여기서 Node Exporter IP와 NGINX Exporter IP 는 동일합니다.
만약에 다른 경우는 아래쪽에 source_labels 를 적절하게 추가하셔야합니다.
sudo service prometheus restart
Prometheus 서버 설정이 바뀌었으니, 서비스 재시작을 해줍니다.
http://{Your Master Prometheus IP}:9090/targets
타겟에서 정상적으로 데이터를 불러오는지 확인해봅니다.
정상적으로 추가돼었습니다.
Grafana 대시보드에 prometheus-nginx-exporter 용 대시보드를 추가합니다.
nginx-prometheus-exporter/README.md at master · nginxinc/nginx-prometheus-exporter · GitHub
위의 대시보드를 추가합니다.
https://raw.githubusercontent.com/nginxinc/nginx-prometheus-exporter/master/grafana/dashboard.json
위의 주소로 접속해서, 내용을 전부 복사하신후에, 아래의 이미지처럼 json 파일 내용을 입력 후 Load 합니다.
로드하시고 데이터 선택하시면, 아래와 같은 대시보드가 나오게 됍니다.
Instance 에 Grafana..
(Grafana 가 설치됀 prometheus 는 Grafana 로 설정돼어있습니다.)
localhost 가 없는 이유는, localhost 에는 9113 포트로 데이터를 입력받지 않기 때문입니다.
(localhost 는 node-exporter 만 입력받기 때문에, Linux 대시보드에서만 보이게 됍니다.)
또 다른 외부서버도 이렇게 추가하시면 이번에 추가한 서버와 새롭게 추가됀 서버 2개의 instance 가 선택 가능하게 됍니다.
무료버전 NGINX 자체가 모니터링툴이 많은 정보를 보여주지 않기 때문에, 위의 이미지에서 보이는 대시보드가 모든 정보입니다.
그래서 NGINX 의 경우는 access.log 파일을 가지고 대시보드를 만들게 됍니다.
이거는 다음글에서 확인하도록 하겠습니다.