当前位置:   article > 正文

使用Prometheus + Blackbox-exporter快速监控一个网站性能和SSL过期时间

使用Prometheus + Blackbox-exporter快速监控一个网站性能和SSL过期时间

环境介绍

本文实验环境

  • 操作系统: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

  • 1
  • 2
  • 3

为了方便后续维护管理,我们注册一个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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

这里重载一下服务,然后启动服务就可以了,同时设置一下自启动。

systemctl daemon-reload
systemctl start blackbox-exporter.service 
systemctl status blackbox-exporter.service 
netstat -tlunap |grep 9115
systemctl enable blackbox-exporter
  • 1
  • 2
  • 3
  • 4
  • 5

配置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":"主数据中心"
        }
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

编辑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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

重启或重载Prometheus
如果你的Prometheus配置了热加载配置文件,你需要执行以下命令:

curl -X POST http://10.20.30.40:9090/-/reload
  • 1

否则你需要执行(前提是你已经注册过了prometheus.service)

systemctl restart prometheus
  • 1

查看job上线

通过Prometheus 9090端口的WEBUI查看。

监控面板

方便起见,这里可以导入Grafana社区的面板。
模板来源于Grafana官网:https://grafana.com/grafana/dashboards/
在这里插入图片描述
我导入了ID为13659的模板。
https://grafana.com/grafana/dashboards/13659-blackbox-exporter-http-prober/

效果图如下:
在这里插入图片描述
有什么问题欢迎留言讨论。

参考文献

  1. https://cloud.tencent.com/developer/article/1600165
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/599652
推荐阅读
相关标签
  

闽ICP备14008679号