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

介绍

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

本指南适用对象

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

先决条件

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

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

配置 WebDriver

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

假定 Docker 已经配置完成。本指南不涉及 Docker 的配置。
安装说明请参见 在 Ubuntu 上安装 Docker Engine

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

  • docker run --name browser - 运行一个名为 "browser" 的新 Docker 容器;
  • -p 4444:4444 - 将主机上的 4444 端口映射到容器上的 4444 端口(这是 Selenium Server 用于接收命令的端口);
  • -p 7900:7900 - 将主机上的 7900 端口映射到容器上的 7900 端口(这是 Virtual Network Computing (VNC) 服务器使用的端口,允许您远程查看浏览器 GUI;需要 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 文档

配置 Zabbix 服务器

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

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

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

vi /etc/zabbix/zabbix_server.conf

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

### Option: WebDriverURL
#   WebDriver interface HTTP[S] URL. For example http://localhost:4444 used with Selenium WebDriver standalone server.
#
# 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. 点击例如 之前配置的} 宏值旁边的 Change,并设置一个错误的域名(例如,/git.zabbix.com/projects/ZBX/repos/zabbix/browse)。

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

5. 片刻之后,Zabbix 将检测到问题“Failed to get JSON of the requested website”,因为它将无法连接到指定的网站。 该问题将显示在 Monitoring → Problems 中。

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

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

另请参见

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