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

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