Monitoring/Prometheus-Grafana

[Prometheus - Grafana] - 11 BlackBox-exporter URL모니터링 실습

돌문어우엉 2025. 4. 19. 15:41

Blackbox-exporter란?

Blackbox Exporter는 Prometheus에서 외부 시스템의 가용성과 응답성을 테스트(Probe) 하기 위한 오픈소스 Exporter입니다. 즉, 내부 메트릭을 보는 게 아니라, 외부에서 시스템을 ‘블랙박스’처럼 테스트해서 "잘 응답하는가?"를 확인하는 용도입니다.

내부 상태(CPU, 메모리 등)를 수집하는 Exporter들과 달리,
Blackbox Exporter는 HTTP, TCP, ICMP(Ping), DNS 요청을 외부에서 직접 보내보고 반응을 측정합니다.

 

 

Blackbox-exporter 설치

1)설정 파일 생성(Blackbox.yml)

modules:
  http_2xx:
    prober: http
    timeout: 5s
    http:
      valid_http_versions: [ "HTTP/1.1", "HTTP/2" ]
      valid_status_codes: []  # 모든 2xx 응답 허용
      method: GET
      fail_if_ssl: false
      fail_if_not_ssl: false
      preferred_ip_protocol: "ip4"

파일을 생성하여 다양한 URL을 모니터링할 수 있는 프로브를 설정합니다.

 

 

2)docker-compose 파일 생성

volumes의 blackbox.yml 실제 경로를 유의하여 생성합니다.

version: '3.8'

services:
  blackbox-exporter:
    image: prom/blackbox-exporter:latest
    container_name: blackbox-exporter
    ports:
      - "9115:9115"
    volumes:
      - ./blackbox.yml:/config/blackbox.yml
    command:
      - '--config.file=/config/blackbox.yml'
    restart: always

위와같이 생성하여 docker-compose up -d 을 통해 실행합니다.

 

Prometheus 연동

blackbox exporter는 다른 exporter와 다르게 prometheus 설정에 다른 양식을 가지고 있습니다.

또한 모니터링할 URL을 prometheus job에 직접 입력한다는 점이 있습니다. 

scrape_configs:
  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets:
          - <http://example.com>
          - <https://mywebsite.com>
          - <https://another-site.org>
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: blackbox-exporter:9115

 

 

Grafana 대시보드 시각화

먼저 그라파나에서 data source를 등록합니다.(이미 등록하였다면 상관X)
등록방법은 prometheus-grafana 연동 글을 참고해 주세요.

소스를 등록하였다면, 대시보드를 import합니다. 대시보드 ID는 다음과 같습니다.

ID 13659

 

완료된 화면