使用blackbox-exporter快速监控一个网站性能和SSL过期时间
- 环境介绍
- 什么是blackbox-exporter
- 下载blackbox-exporter
- 安装blackbox-exporter
- 配置Prometheus服务端
- 查看job上线
- 监控面板
- 参考文献
环境介绍
本文实验环境
- 操作系统:Centos 7.9
- Prometheus版本:2.28.0
- Blackbox-exporter版本:0.25.0
什么是blackbox-exporter
Blackbox Exporter是Prometheus社区提供的官方黑盒监控解决方案。它允许用户通过HTTP、HTTPS、DNS、TCP以及ICMP的方式对网络进行探测。
黑盒监控是以用户的身份测试服务的外部可见性,常见的黑盒监控包括HTTP探针、TCP探针等用于检测站点或者服务的可访问性,以及访问效率等。黑盒监控相较于白盒监控最大的不同在于黑盒监控是以故障为导向,当故障发生时,黑盒监控能快速发现故障,而白盒监控则侧重于主动发现或者预测潜在的问题。
运行Blackbox Exporter时,需要用户提供探针的配置信息,这些配置信息可能是一些自定义的HTTP头信息,也可能是探测时需要的一些TSL配置,也可能是探针本身的验证行为。在Blackbox Exporter每一个探针配置称为一个module,并且以YAML配置文件的形式提供给Blackbox Exporter。
下载blackbox-exporter
首先下载适合我们操作系统的软件包,可以通过Prometheus的官网获取,连接如下:
https://www.prometheus.io/docs/instrumenting/exporters/
安装blackbox-exporter
我下载了blackbox_exporter-0.25.0.linux-amd64.tar.gz
并上传到了服务器中解压到了/opt/blackbox-exporter
中,这里最好规范一些,做一下重命名
mkdir blackbox-exporter
tar -zxvf blackbox_exporter-0.25.0.linux-amd64.tar.gz -C /opt
为了方便后续维护管理,我们注册一个blackbox-exporter service文件 使用systemd托管。
这里请根据你的实际情况做一下修改。
vi /usr/lib/systemd/system/blackbox-exporter.service
[Unit]
Description=Prometheus Blackbox Exporter
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/blackbox-exporter/blackbox_exporter \
--config.file=/opt/blackbox-exporter/blackbox.yml \
--web.listen-address=10.20.30.40:9115
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
这里重载一下服务,然后启动服务就可以了,同时设置一下自启动。
systemctl daemon-reload
systemctl start blackbox-exporter.service
systemctl status blackbox-exporter.service
netstat -tlunap |grep 9115
systemctl enable blackbox-exporter
配置Prometheus服务端
关于Prometheus的安装这里不再展开。
创建一个blackbox-exporter.json
的文件(这个文件主要用于Prometheus基于文件的服务发现),我的json文件统一放到了/opt/prometheus_2.28.0/json/
。这里需要根据你的实际情况做一下替换。
内容参考如下,修改实际的网站或ip地址,也可自定义label
。
cd /opt/prometheus_2.28.0/json/
cat blackbox-exporter.json
[
{
"targets": ["www.baidu.cn"],
"labels": {
"job": "blackbox-exporter",
"hostname": "WebServer-01",
"group": "WWW",
"env":"主数据中心"
}
}
]
编辑prometheus.yml
,在适当位置添加如下,内容仅供参考
file_sd_configs
这个地方需要指定上边json
文件的位置。
- job_name: 'blackbox-exporter'
metrics_path: /probe
params:
module: [http_2xx]
file_sd_configs:
- refresh_interval: 60s
files:
- /opt/prometheus_2.28.0/json/blackbox-exporter.json
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.20.30.40:9115
重启或重载Prometheus
如果你的Prometheus配置了热加载配置文件,你需要执行以下命令:
curl -X POST http://10.20.30.40:9090/-/reload
否则你需要执行(前提是你已经注册过了prometheus.service)
systemctl restart prometheus
查看job上线
通过Prometheus 9090端口的WEBUI查看。
监控面板
方便起见,这里可以导入Grafana社区的面板。
模板来源于Grafana官网:https://grafana.com/grafana/dashboards/
我导入了ID为13659的模板。
https://grafana.com/grafana/dashboards/13659-blackbox-exporter-http-prober/
效果图如下:
有什么问题欢迎留言讨论。
参考文献
- https://cloud.tencent.com/developer/article/1600165