Prometheus blackbox
应用场景:探测网站存活、端口存活、证书有效期、DNS、业务存活等。支持 HTTP, HTTPS, DNS, TCP, ICMP, gRPC协议来对目标节点进行监控。
例如: 1、 监控网站状态码为 200 判断 业务是否正常
2、 监控数据库端口 3306 判断数据库存活
3、 通过 ICMP 判断 主机网络是否正常
官网:https://github.com/prometheus/blackbox_exporter
下载二进制安装包
通过网盘分享的文件:blackbox_exporter-0.25.0.linux-amd64.tar.gz
链接: https://pan.baidu.com/s/1bKMA57mrVhbw_QIwgu3gSQ?pwd=cs6r 提取码: cs6r
解压
tar xf blackbox_exporter-0.27.0.linux-amd64.tar.gz -C /usr/local/
创建用户并配置权限
sudo groupadd --system blackbox_exporter
sudo useradd -s /sbin/nologin --system -g blackbox_exporter blackbox_exporter
sudo mkdir -p /var/log/blackbox_exporter
sudo chown blackbox_exporter:blackbox_exporter /usr/local/blackbox_exporter-0.25.0.linux-amd64/
sudo chown -R blackbox_exporter:blackbox_exporter /var/log/blackbox_exporter
配置开机自启动
cat /etc/systemd/system/blackbox-exporter.service
[Unit]
Description=Blackbox Exporter
Documentation=https://github.com/prometheus/blackbox_exporter
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=blackbox_exporter
Group=blackbox_exporter
# 确保 blackbox_exporter 二进制文件路径正确
ExecStart=/usr/local/blackbox_exporter-0.25.0.linux-amd64/blackbox_exporter \
--config.file=/usr/local/blackbox_exporter-0.25.0.linux-amd64/blackbox.yml \
--web.listen-address=0.0.0.0:9115
Restart=always
RestartSec=5
# 限制资源使用
LimitNOFILE=65536
LimitNPROC=65536
# 安全加固
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ReadWritePaths=/var/log/blackbox_exporter
ProtectHome=true
ProtectKernelTunables=true
ProtectControlGroups=true
ProtectKernelModules=true
ProtectClock=true
PrivateDevices=true
MemoryDenyWriteExecute=true
RestrictNamespaces=true
RestrictRealtime=true
LockPersonality=true
SystemCallFilter=@system-service
SystemCallErrorNumber=EPERM
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start blackbox-exporter
sudo systemctl status blackbox-exporter
sudo systemctl enable blackbox-exporter
访问测试
http://10.0.0.235:9115/
配置 target 域名进行测试
http://10.0.0.235:9115/probe?target=www.greytracks.com&module=http_2xx
http://10.0.0.235:9115/probe?target=www.baidu.com&module=http_2xx

案例 1 blackbox 监控 网站业务存活
vim /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml
# 指定作业的名称,生成环境中,通常是指一类业务的分组配置。
- job_name: 'oldboyedu-blackbox-exporter-http'
# 修改访问路径,若不修改,默认值为"/metrics"
metrics_path: /probe
# 配置URL的相关参数
params:
# 此处表示使用的是blackbox的http模块,从而判断相应的返回状态码是否为200
module: [http_2xx]
# 静态配置,需要手动指定监控目标
static_configs:
# 需要监控的目标
- targets:
# 支持https协议
- https://www.greytracks.com/
# 支持http协议
- http://10.0.0.235:9090
# 支持http协议和自定义端口
- http://10.0.0.235:3000
# 对目标节点进行重新打标签配置 下面的配置不要动,只改 replacement的地址
relabel_configs:
# 指定源标签,此处的"__address__"表示内置的标签,存储的是被监控目标的IP地址
- source_labels: [__address__]
# 指定目标标签,其实就是在"Endpoint"中加了一个target字段(用于指定监控目标),
target_label: __param_target
# 指定需要执行的动作,默认值为"replace",常用的动作有: replace, keep, and drop。
# 但官方支持十几种动作: https://prometheus.io/docs/prometheus/2.45/configuration/configuration/
# 将"__address__"传递给target字段。
action: replace
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
# 指定要替换的值,此处我指定为blackbox exporter的主机地址 !!!!
replacement: 10.0.0.235:9115
检测配置有否有误
./promtool check config prometheus.yml
热加载
curl -X POST http://10.0.0.235:9090/-/reload
验证webUI 是否配置生效
http://10.0.0.235:9090/targets?search=
导入grafana的模板ID
7587
13659


成功监控!!!
案例 2 blackbox 监控 端口存活
vim /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml
- job_name: 'greytracks-blackox-exporter-tcp'
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets:
- 10.0.0.41:80
- 10.0.0.250:22
- 10.0.0.235:22
- 10.0.0.235:9090
- https://greytracks.com:443
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.0.0.235:9115
检测配置有否有误
./promtool check config prometheus.yml
热加载
curl -X POST http://10.0.0.235:9090/-/reload
验证webUI 是否配置生效
http://10.0.0.235:9090/targets?search=
到 grafana 查看监控确认
