2 真实场景

概览

本节通过一个逐步的现实示例,展示如何使用网络监控。

将使用Zabbix网络监控来监控Zabbix前端。目标是确定其是否可用,是否提供正确的内容,以及其工作速度。为了实现这一目标,需要几个步骤,包括检查第一页的可用性,使用用户名和密码登录,验证登录成功,登出,以及确认登出。

场景

添加新的Web场景

前往 数据收集 → 主机,选择一个主机,然后在该主机的行中点击 Web。 接着点击 创建Web场景

在新的场景表单中,填写以下字段:

  • 名称 - 前端检查
  • 更新间隔 - 1分钟
  • 尝试次数 - 1次
  • Agent - Zabbix

变量 部分,添加两个变量:{password}{user}。 输入您现有的Zabbix用户凭据作为值。

出于安全考虑,建议创建一个具有最小权限的独立用户,专门用于监控目的。

可选地,切换到 标签 选项卡并添加Web场景标签。

配置完成后,此Web场景将自动向主机添加一个Zabbix trapper监控项。 您可以使用Web场景标签快速识别相关监控项和触发器,或在收集的数据中进行搜索。 例如,适用于本教程的标签是 component: web-scenario 和/或 target: frontend

配置 Web 场景步骤

切换到 Steps 标签页,并为场景定义步骤。点击 Add 按钮以添加单个步骤。

    ###### 常用字段

对于下面描述的每个步骤,除了特定步骤的字段外,还需填写以下字段:

  • URL - Zabbix 前端的URL
  • 超时时间 - 15s
  • 所需状态码 - 200

网页情景步骤 1

检查首页是否正确响应,返回HTTP响应码200,并包含文本“Zabbix SIA”。

  • 名称字段中,输入First page
  • 所需字符串字段中,输入Zabbix SIA
  • 填写通用字段

配置步骤完成后,点击添加按钮。

网页场景步骤 2

使用在场景级别定义的宏(变量){user}{password} 登录到 Zabbix 前端。

  • 名称 字段中,输入 登录
  • POST 字段 部分,添加三个 POST 字段:
    • name,值为 {user}
    • password,值为 {password}
    • enter,值为 Sign in
  • 变量 部分,添加一个新变量 {csrf_token},值为 regex:([0-9a-z]{64})。 此变量将捕获分配的 CSRF 令牌的值,以便在 步骤 4 中重用。
  • 填写 通用字段

请注意,Zabbix 前端在登录时使用 JavaScript 重定向,因此登录必须首先发生,而登录后的功能只能在后续步骤中检查。此外,登录步骤必须使用指向 index.php 文件的完整 URL。

    ###### Web场景步骤3

登录后,通过检查仅在登录状态下可见的字符串来验证成功 - 例如,Administration

  • 名称字段中,输入Login check
  • 所需字符串字段中,输入Administration
  • 填写通用字段

    ###### Web场景步骤4

在验证了前端的可访问性和登录之后,添加一个登出步骤 - 否则Zabbix数据库将充斥着大量未关闭的会话记录。

  • 名称字段中,输入Logout
  • Post字段部分,添加两个Post字段:
    • reconnect,值为1
    • _csrf_token,值为{csrf_token}
  • 填写通用字段

此步骤使用在步骤2中获取的变量{csrf_token}

    ###### 网页场景步骤 5

为了确认登出,检查 Username 字符串是否存在。

  • Name 字段中,输入 First page
  • Required string 字段中,输入 Username
  • 填写 common fields

完整的步骤配置

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

检查结果

保存完成的网页监控场景。

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

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