安装方法
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.23.0/blackbox_exporter-0.23.0.linux-amd64.tar.gz
#解压
tar zxvf blackbox_exporter-0.23.0.linux-amd64.tar.gz
#重命名
mv blackbox_exporter-0.23.0.linux-amd64 /usr/local/blackbox_exporter
#配置开机自启动
vim /usr/lib/systemd/system/blackbox_exporter.service
#copy以下脚本
[Unit]
Description=blackbox_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/blackbox_exporter/blackbox_exporter --config.file /usr/local/blackbox_exporter/blackbox.yml --web.listen-address ":9115"
Restart=on-failure
[Install]
WantedBy=multi-user.target
#重新加载
systemctl daemon-reload
#设置Prometheus服务开机自启
systemctl enable blackbox_exporter
#启动Prometheus
systemctl start blackbox_exporter
#查看服务状态
systemctl status blackbox_exporter
Prometheus配置
- job_name: server_healthcheck
metrics_path: /probe #固定不变即可
params:
module: [http_heartbeat] #blackbox_exporter的配置文件中的module 下面会写
static_configs:
- targets:
- https://XXXXX/healthcheck
labels:
instance: XXXXX #按照自己实际填写
relabel_configs:
- source_labels: [__address__] #固定不变即可
target_label: __param_target #固定不变即可
- source_labels: [__param_target] #固定不变即可
target_label: instance #固定不变即可
- target_label: __address__ #固定不变即可
replacement: 10.101.27.63:9115 #根据自己blackbox_exporter部署的位置及端口进行配置
blackbox_exporter配置
modules:
http_heartbeat:
prober: http #指定使用 HTTP 探测器来进行探测
http:
valid_status_codes: [200] #定义了有效的 HTTP 状态码为 200。这意味着只有当目标 URL 返回状态码为 200 时,探测才被认为是成功的。
preferred_ip_protocol: "ipv4" #表明优先使用 IPv4 协议进行连接
ip_protocol_fallback: false #表示如果首选的 IP 协议不可用,不进行回退尝试
tls_config:
insecure_skip_verify: true 表示跳过 TLS/SSL 证书验证,这个非常重要如果是https一定要配置证书或者配置跳过,我这里选择跳过
重启blackbox_exporter和Prometheus
systemctl restart blackbox_exporter
systemctl restart prometheus
前往prometheus验证
使用 PromQL 查询来查看探测结果的具体指标
probe_http_status_code{job="写自己的job名称",instance="https://探测的地址/healthcheck"}