Blackbox prober exporter 允许通过 HTTP、HTTPS、DNS、TCP、ICMP 和 gRPC 对端点进行黑盒探测。
运行这个软件
使用二进制文件
从软件发布界面下载最合适的二进制文件:https://github.com/prometheus/blackbox_exporter/releases
然后:
./blackbox_exporter <flags>
使用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参数将返回该探测器的调试信息。
- TLS 和基本身份验证
Blackbox Exporter 支持 TLS 和基本身份验证。这样可以更好地控制各种 HTTP 端点。
要使用 TLS 和/或基本身份验证,您需要使用参数传递配置文件–web.config.file。该文件的格式 在 exporter-toolkit 存储库中进行了描述。
请注意,TLS 和基本身份验证设置会影响所有 HTTP 端点:/metrics 用于抓取,/probe 用于探测,以及 Web UI。
配置 Blackbox exporter
Blackbox exporter 通过配置文件和命令行标志进行配置(例如加载什么配置文件、监听什么端口以及日志记录格式和级别)。
Blackbox 导出器可以在运行时重新加载其配置文件。如果新配置格式不正确,则不会应用更改。SIGHUP 通过向 Blackbox 导出器进程发送 a 或向端点发送 HTTP POST 请求来触发配置重新加载 /-/reload
。
要查看所有可用的命令行标志,请运行 ./blackbox_exporter -h
.
要指定要加载的配置文件--config.file
,请使用标志。
此外,还提供示例配置。
http 当前支持HTTP
、HTTPS(通过探测器)
、DNS
、TCP 套接字
、ICMP
和 gRPC(参见权限部分)
。可以定义其他模块以满足您的需要。
每个探测的超时是从Prometheus 配置scrape_timeout中自动确定的,稍微减少以允许网络延迟。这可以通过Blackbox 导出器配置文件中的进一步限制。如果两者均未指定,则默认为 120 秒。timeout
Prometheus 配置
Blackbox exporter 实现了多目标导出器模式,因此我们建议阅读指南理解和使用多目标导出器模式 以获得有关配置的一般概念。
Blackbox exporter 需要将目标作为参数传递,这可以通过重新标记来完成。
示例配置:
scrape_configs:
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response.
static_configs:
- targets:
- http://prometheus.io # Target to probe with http.
- https://prometheus.io # Target to probe with https.
- http://example.com:8080 # Target to probe with http on port 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 # The blackbox exporter's real hostname:port.
HTTP 探测可以接受一个附加hostname参数,该参数将设置Host标头和 TLS SNI。这对于以下情况特别有用dns_sd_config
:
scrape_configs:
- job_name: blackbox_all
metrics_path: /probe
params:
module: [ http_2xx ] # Look for a HTTP 200 response.
dns_sd_configs:
- names:
- example.com
- prometheus.io
type: A
port: 443
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
replacement: https://$1/ # Make probe URL be like https://1.2.3.4:443/
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # The blackbox exporter's real hostname:port.
- source_labels: [__meta_dns_name]
target_label: __param_hostname # Make domain name become 'Host' header for probe requests
- source_labels: [__meta_dns_name]
target_label: vhost # and store it in 'vhost' label
权限
ICMP 探测需要提升的权限才能运行:
- Windows:需要管理员权限。
- Linux:需要拥有组的用户
net.ipv4.ping_group_range
,CAP_NET_RAW 能力
或root 用户
。 - 您的发行版可能
net.ipv4.ping_group_range
默认配置为/etc/sysctl.conf
或类似的。如果不是,您可以设置net.ipv4.ping_group_range = 0 2147483647
允许任何用户使用 ping 的能力。 - 或者,可以通过执行来设置功能
setcap cap_net_raw+ep blackbox_exporter
- BSD:需要 root 用户。
- OS X:不需要额外的权限。
最后编辑:Jeebiz 更新时间:2024-01-24 21:48