본문 바로가기
기타

프로메테우스&그라파나로 업타임 체크

by 앗사비 2024. 10. 23.
728x90

1

사전 조건 : https://myinbox.tistory.com/258

 

프로메테우스&그라파나 설치

A PC (감시해야 하는 대상) * 수집기 설치docker run -d --name node-exporter \ --net="host" \ --pid="host" \ -v "/:/host:ro,rslave" \ quay.io/prometheus/node-exporter:latest \ --path.rootfs=/hostB PC (모니터링 도구 설치) * Node Exporter

myinbox.tistory.com

 

 

2

현재 작업 디렉토리의 /prometheus 경로에 blackbox.yml 작성

modules:
  http_2xx:
    prober: http
    http:
      preferred_ip_protocol: "ip4"


https://github.com/prometheus/blackbox_exporter/blob/master/blackbox.yml 에서 참고

 

 

3
Blackbox Exporter 설치

https://hub.docker.com/r/prom/blackbox-exporter/

docker run -d \
  -p 9115:9115 \
  --name blackbox_exporter \
  -v $(pwd)/prometheus:/config \
  quay.io/prometheus/blackbox-exporter:latest --config.file=/config/blackbox.yml



3
prometheus.yml 에 아래 항목 추가

  # uptime
  - job_name: 'blackbox'
    metrics_path: /probe
    tls_config:
      insecure_skip_verify: true # 오류 발생시 사용 
    params:
      module: [http_2xx]
    static_configs:
      - targets:
        - https://www.naver.com
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.10.41:9115 # Blackbox Exporter 주소



4
docker restart prometheus 
http://192.168.10.41:9090/targets 에서 상태 확인

그라파나 대시보드로 보고 싶으면 : https://grafana.com/grafana/dashboards/13659-blackbox-exporter-http-prober/

 

5

이제 오류 발생시 알림을 받아보자

프로메테우스나 그라파나에서 알림 셋팅 가능한데 여기서는 그라파나로 해본다

수신은 MS 팀즈로 해본다

우선 Contect points 에서 채널 추가로 MS Teams를 추가한다

미리 웹훅 셋팅을 해야 하는데 아래 게시물 참고바람

https://uptimerobot.com/blog/ms-teams-update

Power Automate > 템플릿 > webhook 검색 > Post to a channel when a webhook request is received 선택

 

6

Alert rules 에서 새 룰 추가

1번 항목 이름 채우고

2번 A항목에서 메트릭은 probe_http_status_code, 인스턴스는 특정 사이트 지정 선택 후 Run queries 하면 결과가 200으로 떨어진다

B, C 항목은 필요없으니 지우고

Add expression 에서 Math 선택해서 $A != 200 입력 후 Set as alert condition 클릭

프리뷰에서 문제 있는지 확인해본다

사이트가 잘 동작하면 결과가 Normal 일거고 ($A != 200 조건을 만족하지 않으므로)

사이트에 문제 있으면 (200 상태 아니면) Firing 일 것이다 (Firing 되야 알림 발송)

이제 Contect point 에서 아까 추가한 팀즈 고르고 저장한다

 

 

---

 

참고

https://github.com/prometheus/blackbox_exporter

https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/expression-queries/

https://velog.io/@sangtae365/Grafana-Alert-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0

728x90