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 场景步骤
切换到 Steps 选项卡并为该场景定义步骤。点击 Add 按钮以添加单个步骤。
通用字段
对于下面描述的每个步骤,除步骤特定字段外,还需填写以下字段:
- 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 字段:
- 值为 {user} 的 name
- 值为 {password} 的 password
- 值为 Sign in 的 enter
- 在 Variables 部分中,添加一个新变量 {csrf_token},其值为 regex:([0-9a-z]{64})。 该变量将捕获已分配的 CSRF token 值,以便在步骤 4中重复使用。
- 填写通用字段。

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

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

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

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

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

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