如何使用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_exporterblackbox.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

类似文章