SaevOps
[ Docker ] Grafana Nginx_exporter를 이용한 모니터링 본문
Docker를 이용한 Nginx_Expoter 설치 및 프로메테우스 적용 방법
Nginx conf 파일에 다음과 같은 부분을 추가
# vi /etc/nginx/conf.d/default.conf
location /metrics {
stub_status on;
access_log off;
allow all;
}
nginx exporter 설치
docker run -p 9113:9113 nginx/nginx-prometheus-exporter:0.4.2 -nginx.scrape-uri=http://본인아이피/metrics -web.telemetry-path=/metrics
Nginx를 재시작 해준 후 curl로 메트릭스 url로 접속하여 정보 확인
[root@docker conf.d]# curl localhost/metrics
Active connections: 3
server accepts handled requests
14 14 63
Reading: 0 Writing: 1 Waiting: 2
실제 홈페이지로 접속한 모습
프로메테우스 설정 파일에 Target 추가
- job_name: 'nginx-prometheus-test'
scrape_interval: 1m
metrics_path: '/metrics'
static_configs:
- targets: ['146.56.146.124:9113']
프로메테우스에 Targets에 추가된 모습 확인
그라파나에서 대시보드 추가
코드 복사 후 붙여 넣기
gurumee-book-prometheus/dashboard.json at master · gurumee92/gurumee-book-prometheus (github.com)
Nginx 적용 완료된 모습 확인
트러블슈팅
간혹 그라파나에 데이터 소스를 추가하려다가
expect { or n, but found <, error found in #1 byte of ...|<!DOCTYPE h|..., bigger context ...|<!DOCTYPE html> <title>NGINX Exporter</title> |...
라고 에러가 뜨는 사람이 있을 것이다. 필자는 이거 때문에 3일 동안 헤맸다..
익스포터마다 그라파나의 데이터 소스에 넣어줘야 한다고 생각했지만,
그라파나는 익스포터마다 데이터 소스가 필요한 게 아니라, 프로메테우스가 타깃을 다 잡고 있기 때문에
프로메테우스 데이터 소스( default : 9090 ) 이외에는 필요가 없다. ( 데이터 소스는 하나면 충분하다 )
또, No data라고 에러가 뜬다면 import 할 때 데이터 소스 이름을 꼭 확인하길 바란다.
그라파나에 프로메테우스 데이터 소스를 추가하는 방법이 궁금하다면 다음 포스트를 참고하면 된다.
[CentOS7] Prometheus + (Node Exporter) + Grafana + Docker 연동 (tistory.com)

맨땅에 헤딩하는 느낌이지만, 실력은 빠르게 늘고 있는 것 같다.
얼른 metrics와 exporter를 변경하여 내가 원하는 정보만 쏙쏙 빼와서 표시하는 일도 해봐야겠다.
그게 이 그라파나와 프로메테우스의 모니터링의 최종 과제일 것 같다.
'클라우드 > Docker' 카테고리의 다른 글
[Docker] Prometheus + (Node Exporter) + Grafana (0) | 2022.06.22 |
---|---|
[Docker] Nginx (0) | 2022.06.02 |
[Docker] 기본 명령어 (2) | 2022.03.31 |