如何使用Blackbox Exporter和Grafana监控网站性能?
热爱用于服务器性能监控的Grafana吗?那你也会喜欢用于网站监控的Blackbox Exporter!
在本教程中,你将学习如何在CentOS/RHEL上安装Blackbox Exporter,并了解如何与Prometheus和Grafana一起使用它来监控网站性能和uptime。
什么是Blackbox Exporter?
Blackbox Exporter是由Prometheus使用的用于探测HTTPS、HTTP、TCP、DNS和ICMP等端点的工具。在定义了端点之后,Blackbox exporter会生成数百个度量指标,可以使用Grafana进行可视化。测量响应时间是Blackbox exporter的最重要功能。
Blackbox Exporter是一种自托管的解决方案。如果你正在寻找类似的,但作为SaaS或云端的解决方案,那你可以尝试Grafana worldPing。
先决条件
必须预先安装Prometheus和Grafana。请按照本文章进行操作install Prometheus and Grafana。
安装Blackbox Exporter
让我先向你展示如何安装Blackbox exporter。
步骤1:下载Blackbox Exporter
前往official page下载最新的Linux AMD Blackbox exporter安装包。我正在下载blackbox_exporter-0.16.0.linux-amd64.tar.gz
文件。
- 将下载的文件传输到服务器上
- 解压缩安装包中的文件。
[centos@yaoweibin ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
检查Blackbox exporter内的所有文件。
[centos@yaoweibin ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[centos@yaoweibin blackbox_exporter-0.16.0.linux-amd64]$ ls -l
total 16672
-rwxr-xr-x. 1 centos centos 17050332 Nov 11 2019 blackbox_exporter
-rw-r--r--. 1 centos centos 629 Nov 11 2019 blackbox.yml
-rw-r--r--. 1 centos centos 11357 Nov 11 2019 LICENSE
-rw-r--r--. 1 centos centos 94 Nov 11 2019 NOTICE
这里有两个重要的文件blackbox_exporter
和blackbox.yml
。
- blackbox_exporter:这是运行该服务的可执行文件。
- blackbox.yml:一个包含所有backbox exporter配置的YAML文件,其中你可以定义所有要探测的端点和要运行的模块。
下面的命令将给出你可以与Blackbox exporter一起使用的所有标志。
[centos@yaoweibin blackbox_exporter-0.16.0.linux-amd64]$ ./blackbox_exporter -h
usage: blackbox_exporter []
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--config.file="blackbox.yml"
Blackbox exporter configuration file.
--web.listen-address=":9115"
The address to listen on for HTTP requests.
--timeout-offset=0.5 Offset to subtract from timeout in seconds.
--config.check If true validate the config file and then exit.
--history.limit=100 The maximum amount of items to keep in the history.
--web.external-url=
The URL under which Blackbox exporter is externally reachable (for example, if Blackbox exporter is served via a
reverse proxy). Used for generating relative and absolute links back to Blackbox exporter itself. If the URL has a
path portion, it will be used to prefix all HTTP endpoints served by Blackbox exporter. If omitted, relevant URL
components will be derived automatically.
--web.route-prefix=
Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url.
--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]
--log.format=logfmt Output format of log messages. One of: [logfmt, json]
--version Show application version.
步骤2:为Blackbox创建用户
这是可选的。
你可以创建一个新用户来运行Blackbox,也可以使用现有的Prometheus用户来运行它。
提供权限并将所有文件的所有权分配给新用户。
[centos@yaoweibin ~]$ sudo useradd -rs /bin/false blackbox
[centos@yaoweibin ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[centos@yaoweibin ~]$ sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64
步骤 3:配置 Blackbox 服务
现在是时候将 Blackbox Exporter 配置为 systemd 服务了。创建一个名为 blackbox.service
的文件,将下面提到的行放入文件中并保存。
[centos@yaoweibin ~]$ sudo gedit /etc/systemd/system/blackbox.service
[Unit]
Description=Blackbox Exporter 服务
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=blackbox
Group=blackbox
ExecStart=/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox_exporter --config.file==/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox.yml
[Install]
WantedBy=multi-user.target
不要忘记将路径更改为实际的提取路径。
步骤 4:启动 Blackbox Exporter
运行以下命令将 Blackbox exporter 作为服务启动。
[centos@yaoweibin ~]$ sudo systemctl daemon-reload
[centos@yaoweibin ~]$ sudo systemctl start blackbox.service
[centos@yaoweibin ~]$ sudo systemctl status blackbox.service
● blackbox.service - Blackbox Exporter 服务
Loaded: loaded (/etc/systemd/system/blackbox.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-06-13 17:28:40 EDT; 1s ago
Main PID: 30427 (blackbox_export)
Tasks: 5
CGroup: /system.slice/blackbox.service
└─30427 /usr/local/bin/blackbox_exporter --config.file=/etc/blackbox.yml
Jun 13 17:28:40 yaoweibin.linuxvmimages.com systemd[1]: Started Blackbox Exporter 服务.
Jun 13 17:28:40 yaoweibin.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:212 msg="Starting b...b9a9)"
Jun 13 17:28:40 yaoweibin.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:213 msg="Build cont...SSING)
Jun 13 17:28:40 yaoweibin.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:225 msg="Loaded config file"
Jun 13 17:28:40 yaoweibin.linuxvmimages.com blackbox_exporter[30
太棒了!
Blackbox exporter 已成功启动。在 http://localhost:9115/ 上可以找到运行的 Blackbox Exporter。
将 Blackbox 与 Prometheus 集成
让我们将 Blackbox Exporter 与 Prometheus 集成,以开始抓取指标。
- 在 prometheus.yml 文件中添加一个名为 blackbox 的作业,并使用以下配置。我将监视 https://www.telegraph.co.uk 的性能。
[centos@yaoweibin ~]$ sudo gedit /etc/prometheus/prometheus.yml
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # 寻找 HTTP 200 响应。
static_configs:
- targets:
- https://www.telegraph.co.uk
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # blackbox exporter 的真实主机名:端口。
- 重新启动 Prometheus。
[centos@yaoweibin ~]$ sudo systemctl restart prometheus.service
- 当你再次检查 http://localhost:9090/targets 上的目标时,你会发现一个正在运行的 blackbox 作业,其中包含我定义的端点。
- 点击 Graph 并运行查询 – probe_http_duration_seconds.
- 将根据 Prometheus 监视的数据创建可视化效果。
现在是在 Grafana 上可视化 Blackbox 作业的时候了。
有很多方法可以开始,但其中最快的方法之一是使用现成的仪表板 – Prometheus Blackbox Exporter。
- 转到Grafana仪表板,点击+符号,然后点击导入。
- 在通过grafana.com导入中,填入仪表板id 7587,然后点击加载。
- 然后选择Prometheus数据源,然后点击导入。
- 将导入Prometheus Blackbox Exporter仪表板。
- 您将能够可视化全球探测持续时间、状态、HTTP持续时间、平均探测持续时间、平均DNS查找、SSL到期等指标。
- 这些都是仪表板上的独立面板。让我详细介绍一下HTTP持续时间面板。该面板显示了连接、处理、解析、tls和传输请求所花费的时间。
仪表板上有很多选项可以供您调整。您可以更改要显示的可视化的时间范围。您还可以更改数据刷新的时间间隔;在这里,仪表板每5秒钟获得新数据。
- 当您点击HTTP持续时间的下箭头时,您将获得如下所示的选项。点击编辑。
- 在可视化面板下方,您将得到一个查询编辑器。当前在下面的快照中显示的查询正在被可视化-probe_http_duration_seconds。
- 有数百个查询可以轻松可视化并根据需求添加到您的仪表板中。
- 您还有很多选项可以更改可视化类型。仪表板上以文本格式显示了平均探测持续时间。从右侧的可视化面板中,点击Guage选项查看平均探测持续时间。
- 这就是可视化将如何更改。
结论
上述内容只是为了让您了解使用Prometheus Blackbox和Grafana监控网站有多么简单。有很多选项,我强烈建议您进行尝试以体验它。如果您对学习Grafana感兴趣,请查看他的online course。