帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  Blackbox Exporter 端口监控与网络探测实现

Blackbox Exporter 端口监控与网络探测实现

2024-12-12 17:10:25 700

欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。


Blackbox Exporter 是 Prometheus 官方提供的一种黑盒监控解决方案,能够通过 HTTP、HTTPS、DNS、TCP 和 ICMP 等方式对网络进行探测。与传统的白盒监控不同,黑盒监控更侧重于从外部用户的视角来测试服务的可用性及性能,通常以故障为导向,快速发现服务的中断或异常。相比之下,白盒监控更强调主动发现潜在问题,通过监控内部系统指标预测故障。

一个完善的监控体系需要结合两者:从白盒角度洞察潜在问题,从黑盒角度快速定位已发生的故障。

 

实际应用

下面以部署和配置 Blackbox Exporter 为例,演示如何实现端口监控和网络探测。

 

1. 部署 Blackbox Exporter

方法一:Docker 运行

你可以直接使用官方提供的 Docker 镜像来快速部署:

docker pull prom/blackbox-exporter

 

docker run --rm -d -p 9115:9115 --name blackbox_exporter \\

  -v $(pwd):/config prom/blackbox-exporter:master \\

  --config.file=/config/blackbox.yml

 

方法二:Docker Compose 部署

利用 docker-compose.yml 配置文件,可以更方便地管理服务。示例如下:

version: '2'services:

  blackbox_exporter:

    image: prom/blackbox-exporter

    container_name: blackbox_exporter

    restart: always

    networks:

      - nets

    volumes:

      - ./blackbox_exporter/blackbox.yml:/etc/blackbox_exporter/config.yml

    ports:

      - 9115:9115networks:

  nets:

    external: false

 

将上述内容保存为 docker-compose.yml,并运行以下命令启动:

docker-compose up -d

 

2. Blackbox Exporter 配置

配置文件 blackbox.yml 定义了探测的模块和具体方式。以下是一些常用的探测模块配置示例:

modules:

  http_2xx:

    prober: http

    timeout: 20s

    http:

      preferred_ip_protocol: "ip4"  # 使用 IPv4

 

  http_post_2xx_query:

    prober: http

    timeout: 20s

    http:

      preferred_ip_protocol: "ip4"

      method: POST

      headers:

        Content-Type: application/json

      body: '{"key":"value"}'  # 示例请求体

 

  tcp_connect:

    prober: tcp

    timeout: 5s

 

  pop3s_banner:

    prober: tcp

    tcp:

      query_response:

        - expect: "^+OK"

      tls: true

 

  icmp:

    prober: icmp

    timeout: 20s

 

将该文件放在 Docker 容器挂载的路径(如 ./blackbox_exporter/blackbox.yml)下,重启服务即可生效。

 

3. Prometheus 配置 Blackbox Exporter

在 Prometheus 的 prometheus.yml 中添加 Blackbox Exporter 的探测任务:

scrape_configs:

  - job_name: 'port_status'

    metrics_path: /probe

    params:

      module: [tcp_connect]  # 使用 TCP 探测

    static_configs:

      - targets:

          - '192.168.10.1:22'  # SSH 服务

          - '192.168.10.2:80'  # HTTP 服务

    relabel_configs:

      - source_labels: [__address__]

        target_label: __param_target

      - source_labels: [__param_target]

        target_label: instance

      - target_label: __address__

        replacement: 127.0.0.1:9115  # Blackbox Exporter 的地址

 

重新加载 Prometheus 配置:

curl -X POST http://<Prometheus地址>:9090/-/reload

 

4. Grafana 配置

模板导入

Grafana 提供丰富的监控模板,你可以直接导入模板 9965(Blackbox Exporter 模板):

前往 Grafana 仪表盘,点击 导入(Import)。

输入模板编号 9965,并选择对应的 Prometheus 数据源。

应用后即可看到探测数据的可视化展示。

 

常见插件问题

如需安装插件,可以通过以下命令验证:

grafana-cli plugins ls

如果是 Docker 容器部署 Grafana,需要重启容器使插件生效:

docker restart grafana


蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: