BlackBox Exporter 顾名思义就是在应用程序的外部对其进行探测,
支持 HTTP、HTTPS、DNS、TCP、ICMP等方式对目标进行检测。
ICMP
cat prometheus.yml
global scrape_interval15s evaluation_interval15s scrape_configsjob_name"ICMP" metrics_path/probe params moduleicmp file_sd_configsrefresh_interval10s filestargets/blackbox-exporter-icmp.yml relabel_configssource_labels__address__ target_label__param_target source_labels__param_target target_labelinstance target_label__address__ replacementblackbox-exporter-service9115
cat targets/blackbox-exporter-icmp.yml
targets119.29.29.29 223.5.5.5
HTTP
cat prometheus.yml
global scrape_interval15s evaluation_interval15s scrape_configsjob_name"HTTP" metrics_path/probe params modulehttp_2xx file_sd_configsrefresh_interval10s filestargets/blackbox-exporter-http.yml relabel_configssource_labels__address__ target_label__param_target source_labels__param_target target_labelinstance target_label__address__ replacementblackbox-exporter-service9115
cat targets/blackbox-exporter-http.yml
targetshttps://www.baidu.com https://www.google.com
TCP
cat prometheus.yml
global scrape_interval15s evaluation_interval15s scrape_configsjob_name"TCP" metrics_path/probe params moduletcp file_sd_configsrefresh_interval10s filestargets/blackbox-exporter-tcp.yml relabel_configssource_labels__address__ target_label__param_target source_labels__param_target target_labelinstance target_label__address__ replacementblackbox-exporter-service9115
cat targets/blackbox-exporter-tcp.yml
targetsaliyun.com:443 huaweicloud.com:443
标签重改& 监控原理
将 [__address__] 输出到 __param_target,是为了 Prometheus 在BlackboxExporter采集时使用对应的域名
例如 Target 中设置的是 https://www.baidu.com 则 __address__ 为 https://www.baidu.com
Prometheus 采集时则使用 http://blackbox-exporter:9115/probe?module=http_2xx&target=https://www.baidu.com
由此可见,Prometheus 主动传递参数给 Blackbox 进行执行,并在 Blackbox 接口暴露出指标提供给 Prometheus 采集。
probe?module=http_2xx&target=https://www.google.com
http_2xx 为模块名称
https://www.google.com 为执行监控的目标
Grafana
Dashboard ID: 13659
Dashboard ID: 9965
需要额外安装饼图插件支持: grafana-cli plugins install grafana-piechart-panel
Trouble
报错: 通过 IPv6 连接不到目标
解决方案: 修改对应模块的IP协议为 IPv4
modules http_2xx proberhttp http preferred_ip_protocol"ip4" icmp probericmp icmp preferred_ip_protocol"ip4" tcp probertcp tcp preferred_ip_protocol"ip4"
Refer: https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md
Debug
probe?target=119.29.29.29&module=icmp&debug=true
通过传递 debug=true 参数可以进行 Probe 过程中的调试




