2 真实场景
概述
本节通过一个循序渐进的真实示例来说明如何使用 Web 监控。
将使用 Zabbix Web 监控来监控 Zabbix 前端。目标是确定其是否可用、是否提供正确的内容,以及其运行速度如何。为实现这一目标,需要执行多个步骤,包括检查第一页的可用性、使用用户名和密码登录、验证登录是否成功、退出登录,以及确认已成功退出。
场景
添加新的 web 场景
转到 数据采集 → 主机,选择一个主机,然后点击该主机所在行中的 Web。
接着点击 创建 web 场景。

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

Web 场景步骤 2
使用在场景级别定义的宏(变量) {user} 和 {password} 登录 Zabbix 前端。
- 在 Name 字段中,输入 Login。
- 在 Post fields 部分,添加三个 post 字段:
- name,值为 {user}
- password,值为 {password}
- enter,值为 Sign in
- 填写通用字段。
- 选中 Follow redirects 复选框。

请注意,Zabbix 前端在登录时使用 JavaScript 重定向,因此必须先完成登录,登录后功能只能在后续步骤中进行检查。此外,登录步骤必须使用指向 index.php 文件的完整 URL。
Web 场景步骤 3
登录后,通过检查仅在登录后可见的字符串来验证是否成功,例如 Administration。
- 在 Name 字段中,输入 Login check。
- 在 URL 字段中,输入用户登录后被重定向到的 URL(例如,http://127.0.0.1/zabbix.php?action=dashboard.view)。
- 在 Required string 字段中,输入 Administration。
- 在 Variables 部分,添加名称-值对
{csrf_token}:regex:([0-9a-z]{64})。 该变量将捕获已分配的 CSRF token 的值,以便在 web 场景步骤 4 中复用。 - 填写通用字段。

Web 场景步骤 4
在验证了前端的可访问性和登录后,添加一个注销步骤 - 否则 Zabbix 数据库会因大量未关闭的会话记录而变得杂乱。
- 在 Name 字段中,输入 Logout。
- 在 Post fields 部分,添加两个 post field:
- reconnect,值为 1
- _csrf_token,值为 {csrf_token}。
- 填写通用字段。
- 选中 Follow redirects 复选框。
此步骤使用在Web 场景步骤 3中获取的变量 {csrf_token}

Web 场景步骤 5
为确认已注销,请检查 Username 字符串。
- 在 Name 字段中,输入 Logout check。
- 在 Required string 字段中,输入 Username。
- 填写通用字段。

步骤的完整配置
web 场景步骤的完整配置应如下所示:

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

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