2 实际场景
概述
本节逐步展示了一个实际应用示例,说明如何使用 Web 监控功能。
我们将使用 Zabbix 的 Web 监控功能来监控 Zabbix 前端。目标是确定其是否可用、是否提供正确的内容以及响应速度如何。为了实现这一目标,需要完成多个步骤,包括检查首页的可用性、使用用户名和密码登录、验证 login 是否成功、退出登录,并确认退出状态。
场景
添加新的Web场景
前往 数据收集 → 主机,选择 一个主机 并点击该 主机 所在行中的 Web。
然后点击 创建Web场景。

在新建的场景表单中,填写以下字段:
- 名称 - 前端检查
- 更新间隔 - 1m
- 尝试次数 - 1
- Agent - Zabbix
在 变量 部分中,添加两个变量:{password} 和 {user}。
输入您现有的Zabbix用户凭据作为值。
出于安全考虑,建议create一个具有最小权限的独立用户,专门用于监控目的。
可选地,切换到 标签 选项卡并添加Web场景标签。
配置完成后,此Web场景将自动向主机添加一个Zabbix trapper 监控项。
您可以使用Web场景标签快速识别相关的监控项和触发器,或搜索已收集的数据。
例如,本教程适用的标签为 component: web-scenario 和/或 target: frontend。
配置Web场景步骤
切换到步骤选项卡,并为场景定义步骤。点击添加按钮以添加单个步骤。
通用字段
以下每个步骤中,除了步骤特定字段外,请填写以下字段:
- URL - Zabbix 前端的 URL
- Timeout - 15 秒
- Required status codes - 200
Web场景步骤1
检查首页是否响应正确,返回 HTTP 响应码 200 并包含文本 "Zabbix SIA"。
- 在 名称 字段中,输入 首页。
- 在 必需的 string 字段中,输入 Zabbix SIA。
- 填写 通用字段。
完成步骤配置后,点击 添加 按钮。

Web场景步骤2
使用在场景级别定义的宏(变量){user} 和 {password} 登录到 Zabbix 前端。
- 在 名称(Name) 字段中输入 Login。
- 在 提交字段(Post fields) 部分,添加三个提交字段:
- name,值为 {user}
- password,值为 {password}
- enter,值为 Sign in
- 在 变量(Variables) 部分,添加一个新变量 {csrf_token},其值为 regex:([0-9a-z]{64})。 该变量将捕获分配的 CSRF 令牌的值,以在 步骤 4 中重复使用。
- 填写 通用字段(common fields)。

请注意,Zabbix 前端在登录时使用 JavaScript 重定向,因此必须首先发生 login,并且只能在后续步骤中检查已登录的功能。 此外,login 步骤必须使用指向 index.php 文件的完整 URL。
Web场景步骤3
登录后,通过检查仅在登录状态下可见的string来验证是否登录成功,例如 Administration。
- 在 Name 字段中,输入 Login check。
- 在 Required string 字段中,输入 Administration。
- 填写通用字段。

Web场景步骤4
前端的可访问性和login验证完成后,添加一个logout步骤 - 否则Zabbix数据库中将堆积大量打开的会话记录。
- 在名称(Name)字段中,输入Logout。
- 在Post字段(Post fields)部分,添加两个Post字段:
- reconnect,值为1
- _csrf_token,值为{csrf_token}。
- 填写通用字段。
此步骤使用了在步骤 2中获取的变量{csrf_token}。

Web场景步骤5
要确认登出,请检查用户名 string。
- 在名称字段中,输入 Logout check。
- 在必需的 string 字段中,输入 用户名。
- 填写通用字段。

步骤的完整配置
一个完整的 Web 场景步骤配置应如下所示:

检查结果
保存已完成的Web监控场景。
该场景将被添加到 主机。要查看Web场景信息,请转至 监控 → 主机,在列表中找到 主机,然后单击最后一列中的Web超链接。

单击场景名称以查看更详细的统计信息:
