Project Icon

blackbox_exporter

开源多协议网络服务探测器

blackbox_exporter是一款开源的网络服务探测工具,支持HTTP、HTTPS、DNS、TCP、ICMP和gRPC等多种协议。它通过黑盒测试方式对端点进行探测,收集详细的性能指标,并与Prometheus监控系统集成。该工具支持TLS和基本认证,适用于各类IT环境的网络监控、故障诊断和性能评估。

Blackbox 导出器

CircleCI Docker Repository on Quay Docker Pulls

Blackbox 导出器允许通过 HTTP、HTTPS、DNS、TCP、ICMP 和 gRPC 对端点进行黑盒探测。

运行此软件

使用二进制文件

发布页面下载最适合的二进制文件

然后:

./blackbox_exporter <标志>

使用 Docker 镜像

注意:您可能需要在 Docker 配置中启用 IPv6

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

检查结果

访问 http://localhost:9115/probe?target=google.com&module=http_2xx 将返回针对 google.com 的 HTTP 探测指标。probe_success 指标表示探测是否成功。添加 debug=true 参数将返回该探测的调试信息。

有关导出器本身操作的指标可在 http://localhost:9115/metrics 端点获取。

TLS 和基本认证

Blackbox 导出器支持 TLS 和基本认证。这可以更好地控制各种 HTTP 端点。

要使用 TLS 和/或基本认证,您需要使用 --web.config.file 参数传递配置文件。文件格式在导出器工具包仓库中有描述。

请注意,TLS 和基本认证设置会影响所有 HTTP 端点:用于抓取的 /metrics,用于探测的 /probe,以及 Web UI。

构建软件

本地构建

make

使用 Docker 构建

在成功完成本地构建后:

docker build -t blackbox_exporter .

配置

Blackbox 导出器通过配置文件和命令行标志(如加载哪个配置文件、监听哪个端口以及日志格式和级别)进行配置。

Blackbox 导出器可以在运行时重新加载其配置文件。如果新配置格式不正确,更改将不会应用。 可以通过向 Blackbox 导出器进程发送 SIGHUP 信号或向 /-/reload 端点发送 HTTP POST 请求来触发配置重新加载。

要查看所有可用的命令行标志,请运行 ./blackbox_exporter -h

要指定要加载的配置文件,请使用 --config.file 标志。

此外,还提供了一个示例配置

目前支持 HTTP、HTTPS(通过 http 探测器)、DNS、TCP 套接字、ICMP 和 gRPC(请参阅权限部分)。 可以根据您的需求定义其他模块。

每个探测的超时时间自动从 Prometheus 配置中的 scrape_timeout 确定,稍微减少以允许网络延迟。 这可以通过 Blackbox 导出器配置文件中的 timeout 进一步限制。如果两者都未指定,默认为 120 秒。

Prometheus 配置

Blackbox 导出器实现了多目标导出器模式,因此我们建议阅读指南 了解和使用多目标导出器模式 以了解配置的一般思路。

Blackbox 导出器需要将目标作为参数传递,这可以通过重新标记来完成。

示例配置:

scrape_configs:
  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [http_2xx]  # 查找 HTTP 200 响应。
    static_configs:
      - targets:
        - http://prometheus.io    # 使用 http 探测的目标。
        - https://prometheus.io   # 使用 https 探测的目标。
        - http://example.com:8080 # 使用 http 在端口 8080 探测的目标。
    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 导出器的实际主机名:端口。
  - job_name: 'blackbox_exporter'  # 收集 blackbox 导出器的运行指标。
    static_configs:
      - targets: ['127.0.0.1:9115']

HTTP 探测可以接受一个额外的 hostname 参数,该参数将设置 Host 标头和 TLS SNI。这在使用 dns_sd_config 时特别有用:

scrape_configs:
  - job_name: blackbox_all
    metrics_path: /probe
    params:
      module: [ http_2xx ]  # 查找 HTTP 200 响应。
    dns_sd_configs:
      - names:
          - example.com
          - prometheus.io
        type: A
        port: 443
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
        replacement: https://$1/  # 使探测 URL 类似于 https://1.2.3.4:443/
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9115  # Blackbox 导出器的实际主机名:端口。
      - source_labels: [__meta_dns_name]
        target_label: __param_hostname  # 使域名成为探测请求的 'Host' 标头
      - source_labels: [__meta_dns_name]
        target_label: vhost  # 并将其存储在 'vhost' 标签中

权限

ICMP 探测需要提升权限才能运行:

  • Windows:需要管理员权限。
  • Linux:需要 net.ipv4.ping_group_range 组内的用户、具有 CAP_NET_RAW 能力的用户或 root 用户。
    • 您的发行版可能默认在 /etc/sysctl.conf 或类似文件中配置 net.ipv4.ping_group_range。如果没有,您可以设置 net.ipv4.ping_group_range = 0 2147483647 以允许任何用户使用 ping。
    • 或者,可以通过执行 setcap cap_net_raw+ep blackbox_exporter 来设置能力
  • BSD:需要 root 用户。
  • OS X:不需要额外权限。
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号