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超链接。

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