Prometheus监控之Blackbox Exporter(二)
blackbox_exporter介绍
blackbox_exporter 是 Prometheus 官方提供的一个 exporter, 可以监控 HTTP、HTTPS,、 DNS、 TCP 、 ICMP 等目标实例, 从而实现对被监控节点进行监控和数据采集。
HTTP/HTPPS: URL/API 可用性检测
TCP: 端口监听检测
ICMP: 主机存活检测
DNS: 域名解析
安装部署blackbox_exporter
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
使用systemd管理blackbox_exporter
cat /etc/systemd/system/blackbox_exporter.service [Unit] Description=Prometheus Blackbox Exporter After=network.target [Service] Type=simple User=prometheus Group=prometheus ExecStart=/usr/local/blackbox_exporter/blackbox_exporter \ --config.file=/usr/ocal/blackbox_exporter/blackbox.yml \ --web.listen-address=:9115 Restart=on-failure [Install] WantedBy=multi-user.target # 启动 systemctl daemon-reload systemctl start blackbox_exporter systemctl enable blackbox_exporter
Consul Manager安装
使用Consul管理Blackbox站点监控
部署说明文档:https://github.com/starsliao/TenSunS/tree/main
部署完以后登陆
配置Blackbox_Exporter
- 在Web页面点击
Blackbox 站点监控/Blackbox 配置
,点击复制配置
。 - 编辑blackbox_exporter的
blackbox.yml
,清空已有的配置,把复制的内容粘贴进去,重启blackbox_exporter。
- 在Web页面点击
Blackbox 站点监控/Prometheus 配置
,点击复制配置
。 - 编辑Prometheus的
prometheus.yml
,把复制的内容追加到最后,reload或重启Prometheus。
- 在Web页面点击
Blackbox 站点监控/告警规则
,点击复制配置
。 - 编辑Prometheus的
rules.yml
,把复制的内容追加到最后,reload或重启Prometheus。
- 在Prometheus的Web页面中,点击Status-Targets,能看到新增的Job即表示数据同步到Prometheus。
- 支持Grafana 8,基于blackbox_exporter 0.19.0设计
- 采用图表+曲线图方式展示TCP,ICMP,HTTPS的服务状态,各阶段请求延时,HTTPS证书信息等
- 优化展示效果,支持监控目标的分组、分类级联展示,多服务同时对比展示。
- 导入ID:9965
- 详细URL:https://grafana.com/grafana/dashboards/9965
导入要监控的域名和端口
告警配置
- name: Domain rules: - alert: 监控项异常 expr: probe_success == 0 for: 10s # 告警持续时间,超过这个时间才会发送给alertmanager labels: severity: 严重告警 annotations: #summary: "{{ $labels.env }}_{{ $labels.name }}({{ $labels.project }}):{{ $labels.instance }} 异常" summary: "{{ $labels.project }}{{ $labels.env }}_{{ $labels.name }}:{{ $labels.instance }} 异常" description: "已经10秒无法连接,请前往服务器查看。"