8 使用浏览器监控项监控网站

介绍

本页将引导您完成使用浏览器监控项开始对网站进行基本监控所需的步骤。

本指南适用对象

本指南面向新的 Zabbix 用户,包含启用使用浏览器监控项对网站进行基本监控所需的最少步骤。 如果您需要深入的自定义选项或更高级的配置,请参阅 浏览器监控项 页面或 Zabbix 手册中的 配置 部分。

先决条件

在继续本指南之前,您需要根据适用于您的操作系统的说明,下载并安装 Zabbix 服务器和 Zabbix 前端。

根据您的环境,本指南中的某些步骤可能会略有不同。
本指南基于运行 Ubuntu 的环境。

配置 WebDriver

浏览器监控项需要一个自动化框架(Selenium Server 或纯 WebDriver,例如 ChromeDriver)作为 Web 测试端点,用于控制浏览器并与之交互,执行诸如点击按钮或输入文本之类的测试命令。 本指南将以在 Docker 容器中运行带有 Chrome 的 Selenium Server 为例。

假定 Docker 已经配置完成。本指南不涵盖 Docker 的配置。 有关安装说明,请参见 Install Docker Engine on Ubuntu

1. 使用以下选项在 Docker 容器中启动带有 Chrome 的 Selenium Server:

  • docker run --name browser - 运行一个名为“browser”的新 Docker 容器;
  • -p 4444:4444 - 将主机上的 4444 端口映射到容器中的 4444 端口(这是 Selenium Server 用于接收命令的端口);
  • -p 7900:7900 - 将主机上的 7900 端口映射到容器中的 7900 端口(这是虚拟网络计算(VNC)服务器使用的端口,允许你远程查看浏览器图形界面;需要 VNC 客户端);
  • --shm-size="2g" - 为容器分配 2GB 共享内存(这对 Chrome 正常运行非常重要,因为它可能需要大量共享内存以避免崩溃);
  • -d - 以分离模式运行容器,这意味着它将在后台运行;
  • selenium/standalone-chrome:latest - 指定要使用的 Docker 镜像;在本例中,为最新版本的 Selenium Server with Chrome
docker run --name browser \
-p 4444:4444 \
-p 7900:7900 \
--shm-size="2g" \
-d selenium/standalone-chrome:latest

2. 确保 browser Docker 容器正在运行且可访问。

  • 获取容器的 IP 地址(本例中为 192.0.2.1):
ip addr

# 1: lo: <LOOPBACK,UP,LOWER_UP>
#    ...
# 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ...
#    inet 192.0.2.1/16 brd 192.0.255.255 scope global docker0
#    ...
  • 使用 Ncat 测试与容器的连接:
nc -zv 192.0.2.1 4444

# Connection to 192.0.2.1 4444 port [tcp/*] succeeded!
  • 使用 curl 从 Selenium Server 获取网页内容:
curl -L 192.0.2.1:4444

# <!DOCTYPE html>
# <html lang="en">
# 
# <head>
#   <meta charset="utf-8"/>
#   <link href="favicon.svg" rel="icon" type="image/svg">
#   <meta content="width=device-width, initial-scale=1" name="viewport"/>
#   <link href="logo192.png" rel="apple-touch-icon"/>
#   <link href="manifest.json" rel="manifest"/>
#   <title>Selenium Grid</title>
# </head>
# 
# <body>
# ...

如需故障排查,请参阅 Docker documentation.

配置 Zabbix 服务器

浏览器监控项由 browser poller Zabbix 进程执行和处理,需要通过调整服务器配置参数 StartBrowserPollers 来启用这些进程。 此外,WebDriverURL 参数应指定前面已配置的 Web 测试端点。

默认情况下,StartBrowserPollers 参数设置为 1,因此您只需指定 Web 测试端点。

1. 打开 Zabbix 服务器配置文件。

vi /etc/zabbix/zabbix_server.conf

2. 在 Zabbix 服务器配置文件中找到并设置 WebDriverURL 参数:

### Option: WebDriverURL
#   WebDriver 接口 HTTP[S] URL。例如,与 Selenium WebDriver 独立服务器一起使用的 http://localhost:4444。
#
# Mandatory: no
# Default:
# WebDriverURL=

WebDriverURL=192.0.2.1:4444

3. 重启 Zabbix 服务器。

systemctl restart zabbix-server

配置 Zabbix 前端

1. 登录 Zabbix 前端。

2. 在 Zabbix Web 界面中创建主机

  • Host name 字段中,输入主机名称(例如 "git.zabbix.com")。
  • Templates 字段中,输入或选择 "Website by Browser" 模板。有关此模板的更多信息,请参见 Website by Browser
  • Host groups 字段中,输入或选择一个主机组(例如,新建主机组 "Websites")。

  • Macros 选项卡中,切换到 Inherited and host macros,找到以下宏并点击宏值旁边的 Change 进行更新:
    • {$WEBSITE.DOMAIN} - 域名(例如,git.zabbix.com/projects/ZBX/repos/zabbix/browse)
    • {$WEBSITE.GET.DATA.INTERVAL} - 监控项数据更新间隔(例如,15m)

3. 点击 Add 按钮以创建主机。该主机将表示您要监控的网站。

查看已收集的指标

恭喜!到这一步,Zabbix 已经开始监控您指定的网站。

要查看已收集的指标,请导航到 监控 → 主机 菜单部分,然后点击该主机旁边的 仪表板

此操作会将您带到主机仪表板(在模板级别配置),其中包含从该网站收集的最重要指标。

设置问题告警

Zabbix 可以通过多种方式在您的基础架构出现问题时通知您。 本指南提供了发送电子邮件告警的基本配置步骤。

1. 导航到 用户设置 → 个人资料,切换到 介质 选项卡并添加您的电子邮件

2. 按照接收问题通知指南进行操作。

下次当 Zabbix 检测到问题时,您应该会通过电子邮件收到告警。

测试您的配置

要测试您的配置,我们可以通过在 Zabbix 前端中更新主机配置来模拟一个真实问题。

1. 在 Zabbix 中打开您的网站主机配置。

2. 切换到 Macros 选项卡,并选择 Inherited and host macros

3. 点击例如先前已配置的 {$WEBSITE.DOMAIN} 宏值旁边的 Change,并设置一个错误的域名(例如,/git.zabbix.com/projects/ZBX/repos/zabbix/browse)。

4. 点击 Update 以更新主机配置。

5. 稍等片刻,Zabbix 将检测到“无法获取所请求网站的 JSON”这一问题,因为它将无法连接到指定的网站。
该问题将显示在 监控 → 问题 中。

如果已配置告警,您还将收到问题通知。

6. 将宏值改回之前的值,以解决该问题并继续监控网站。

另请参阅

  • 创建监控项 - 如何开始监控其他指标。
  • 问题升级 - 如何创建多步骤告警场景 (例如,先向系统管理员发送消息,然后如果问题在 45 分钟内未解决,再向数据中心经理发送消息)。
  • Browser 监控项 - 如何配置 Browser 监控项。
  • 模板 Website by Browser - 关于 Website by Browser 模板的更多信息。