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

介绍

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

本指南适用对象

本指南专为Zabbix新用户设计,包含了使用浏览器监控项启用网站基础监控所需的最少步骤。
如果您需要深度定制选项或更高级的配置,请参阅Browser items页面或Zabbix手册中的Configuration章节。

前提条件

在继续本指南之前,您需要根据您的操作系统说明安装download and install Zabbix server和Zabbix前端。

本指南基于以下设置:

  • Zabbix版本:7.0(从软件包安装)
  • 操作系统发行版:Ubuntu
  • 操作系统版本:22.04(Jammy)
  • Zabbix组件:Server、Frontend、Agent
  • 数据库:MySQL
  • Web服务器:Apache

配置WebDriver

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

假设 Docker 已配置完成。本指南不涉及 Docker 的配置。 安装说明请参阅 Install Docker Engine on Ubuntu

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

  • docker run --name browser - 运行一个名为 "browser" 的新 Docker 容器;
  • -p 4444:4444 - 将本地 主机 机器的 4444 端口映射到容器的 4444 端口(这是 Selenium Server 用于接收命令的端口);
  • -p 7900:7900 - 将本地 主机 机器的 7900 端口映射到容器的 7900 端口(这是虚拟网络计算(VNC)服务器使用的端口,允许您远程查看浏览器 GUI;需要 VNC 客户端);
  • --shm-size="2g" - 为容器分配 2GB 的共享 memory(这对 Chrome 正常 run 非常重要,因为它可能需要大量共享 memory 以避免崩溃);
  • -d - 以分离模式运行容器,即容器将在后台 run;
  • selenium/standalone-chrome:latest - 指定要使用的 Docker 镜像;本例中使用的是 Selenium Server with Chrome 的最新 version。
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 server 配置文件。

vi /etc/zabbix/zabbix_server.conf

2. 在 Zabbix server 配置文件中找到并设置 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 server。

systemctl restart zabbix-server

配置Zabbix前端

1。登录到 Zabbix 前端。

2。Zabbix Web 界面中的 Create a host

  • 主机名 字段中,输入 一个主机 名称(例如,“git.zabbix.com”)。
  • 模板 字段中,键入或选择 "Website by Browser" 模板。有关此模板的更多信息,请参见 Website by Browser
  • 主机 群组 字段中,键入或选择 一个主机 群组(例如,一个新的 主机组 "网站")。

  • 选项卡中,切换到 继承的和 主机宏,查找以下宏,并点击宏值旁边的 更改 来 update:
    • {$WEBSITE.DOMAIN} - 域名(例如,git.zabbix.com/projects/ZBX/repos/zabbix/browse)
    • {$WEBSITE.GET.DATA.INTERVAL} - 监控项 数据 update 间隔(例如,15m)

3。单击 添加 按钮以 create 主机。此 主机 将表示您要监控的网站。

查看收集的指标

恭喜!此时,Zabbix 已经在监控您指定的网站。

要查看已收集的指标,请导航到 Monitoring → Hosts 菜单部分,并点击 主机 旁边的 仪表盘

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

设置问题告警

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

1. 导航至 User settings → Profile,切换到 Media 标签页,然后 添加用户

2. 请参考 Receiving a problem notification 的指南进行操作。

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

测试配置

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

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

2. 切换到 选项卡,并选择 继承和主机宏

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

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

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

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

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

另请参阅

  • Creating an item - 如何开始监控其他指标。
  • Problem escalations - 如何为多步骤告警场景使用 create (例如,首先发送消息给系统管理员,然后,如果问题在 45 分钟内未解决,则发送消息给数据中心经理)。
  • Browser items - 如何配置浏览器 监控项。
  • 模板 Website by Browser - 关于 Website by Browser 模板的附加信息。