Blackbox Exporter Docker 安装配置,并与 Prometheus 集成

1. 创建配置文件目录

bash
mkdir -p ~/docker/blackbox/config
cd ~/docker/blackbox

2. 创建 Blackbox Exporter 配置文件 config/blackbox.yml

yaml
modules:
  http_2xx:  # HTTP 可用性检测(响应 2xx/3xx 状态码)
    prober: http
    http:
      valid_http_versions: ["HTTP/1.1", "HTTP/2"]
      method: GET
      preferred_ip_protocol: "ip4"
      tls_config:
        insecure_skip_verify: true  # 忽略证书验证(可选)

  tcp_connect:  # TCP 端口连通性检测
    prober: tcp

  icmp:  # ICMP Ping 检测
    prober: icmp
    timeout: 5s
    icmp:
      preferred_ip_protocol: "ip4"

3. 启动 Blackbox Exporter 容器

bash
docker run -d \
  --name blackbox_exporter \
  -p 9115:9115 \
  -v ~/docker/blackbox/config:/config \
  prom/blackbox-exporter:latest \
  --config.file=/config/blackbox.yml
  • 验证访问:浏览器打开 http://服务器IP:9115 或执行 curl http://localhost:9115/metrics


4. 配置 Prometheus 抓取规则

修改 Prometheus 的 prometheus.yml,添加以下配置:

yaml
scrape_configs:
  - job_name: "blackbox"
    metrics_path: /probe
    params:
      module: [http_2xx]  # 使用配置文件中的模块名
    static_configs:
      - targets:
          - https://example.com     # 要监控的目标 URL
          - https://google.com
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: blackbox_exporter:9115  # Blackbox 容器地址(同网络下用容器名)

  # 可选:监控 Blackbox Exporter 自身状态
  - job_name: "blackbox-exporter"
    static_configs:
      - targets: ["blackbox_exporter:9115"]

5. 重启 Prometheus 容器

确保 Prometheus 与 Blackbox Exporter 在 同一 Docker 网络 中:

bash
# 创建共享网络(如果尚未创建)
docker network create monitor-net

# 将 Blackbox 加入网络
docker network connect monitor-net blackbox_exporter

# 重启 Prometheus(假设已存在)
docker restart prometheus

6. 验证数据

  1. 访问 Prometheus Web UI(http://服务器IP:9090)

  2. 执行查询:

    promql
    probe_success{job="blackbox"}
    • 结果 1 表示探测成功,0 表示失败。


完整 Docker Compose 示例(可选)

创建 docker-compose.yml

yaml
version: '3'
services:
  prometheus:
    image: prom/prometheus:latest
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    networks:
      - monitor-net

  blackbox_exporter:
    image: prom/blackbox-exporter:latest
    ports:
      - "9115:9115"
    volumes:
      - ./config/blackbox.yml:/config/blackbox.yml
    command:
      - --config.file=/config/blackbox.yml
    networks:
      - monitor-net

networks:
  monitor-net:
    driver: bridge

常见问题排查

  1. Prometheus 无法访问 Blackbox

    • 确保两者在同一 Docker 网络,使用 docker network inspect monitor-net 检查。

  2. 探测失败

    • 检查 blackbox.yml 中的模块配置(如 http_2xx 是否匹配目标)。

    • 查看 Blackbox 日志:docker logs blackbox_exporter

  3. Relabel 配置错误

    • 确认 relabel_configs 中的 replacement 指向正确的 Blackbox 地址。


通过以上步骤,Blackbox Exporter 会通过 HTTP/HTTPS、TCP、ICMP 探测目标,并将结果反馈给 Prometheus。

Blackbox Exporter 模版

https://grafana.com/grafana/dashboards/13659-blackbox-exporter-http-prober/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值