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 部分,添加三个 post 字段:
    • name,值为 {user}
    • password,值为 {password}
    • enter,值为 Sign in
  • 填写 common fields
  • 选中 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}
  • 填写 common fields
  • 选中 Follow redirects 复选框。

此步骤使用在 Web 场景步骤 3 中获取的变量 {csrf_token}

Web场景步骤5

要确认登出,请检查用户名 string。

  • 名称字段中,输入 Logout check
  • 必需的 string 字段中,输入 用户名
  • 填写通用字段

步骤的完整配置

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

检查结果

保存已完成的Web监控场景。

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

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