真实场景

概述

本节通过一个循序渐进的实际示例,介绍如何使用 web 监控。

将使用 Zabbix web 监控来监控 Zabbix 前端。 目标是确定它是否可用、是否提供正确的内容,以及运行速度如何。 为实现这一目标,需要执行多个步骤,包括检查第一页是否可访问、使用用户名和密码登录、验证登录是否成功、注销,以及确认已成功注销。

场景

添加新的 web 场景
  1. 转到 Data collection > Hosts
  2. 选择一个主机,然后点击该主机所在行中的 Web
  3. 点击 Create web scenario

  1. 在新的场景表单中,打开 Scenario 选项卡,填写以下字段:

    • Name: Frontend check.
    • Update interval: 1m.
    • Attempts: 1.
    • Agent: Zabbix.
      Variables 部分,添加以下名称-值对:
    • {user}: 你现有的 Zabbix 用户凭据;
    • {password}: 你现有的 Zabbix 用户凭据。

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

可选地,切换到 Tags 选项卡并添加 web 场景标签。 你可以使用 web 场景标签快速识别相关的监控项和触发器,或搜索已收集的数据。 例如,本教程适合使用的标签为 component: web-scenario 和/或 target: frontend

配置 web 场景步骤

切换到 Steps 选项卡并为该场景定义步骤。
配置每个步骤后,点击 Add 按钮。

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

所有步骤的通用字段

除了每个步骤特有的字段外,还需为下文描述的每个步骤填写以下通用字段:

  • URL: Zabbix 前端的 URL(http://<server_ip_or_name>/zabbix/index.php(适用于 Apache)或 http://<server_ip_or_name>/index.php(适用于 Nginx))。对于 Web 场景的步骤 3,请使用下文所述的不同 URL。
  • Timeout: 15s。
  • Required status codes: 200。
Web 场景步骤 1

检查第一页是否正确响应,返回 HTTP 状态码 200,并包含文本 Zabbix SIA
填写以下字段:

Web 场景步骤 2

使用 Scenario 选项卡中定义的宏(变量){user}{password} 登录 Zabbix 前端。
填写以下字段:

  • Name: Login.
  • Post fields 部分,添加以下名称-值对:
    • name: {user};
    • password: {password};
    • enter: Sign in.
  • 所有步骤的通用字段

选中 Follow redirects 复选框。

Web 场景步骤 3

登录后,通过检查仅在登录后可见的字符串来验证是否成功,例如 Administration
填写以下字段:

Web 场景步骤 4

在验证了前端的可访问性和登录后,添加一个注销步骤 - 否则 Zabbix 数据库会因大量未关闭的会话记录而变得杂乱。
填写以下字段:

  • Name: Logout.
  • Post fields 部分,添加以下名称-值对:
    • reconnect: 1;
    • _csrf_token: {csrf_token}
  • 所有步骤的通用字段

选中 Follow redirects 复选框。

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

Web 场景步骤 5

要确认注销,请检查 Username 字符串。
填写以下字段:

步骤的完整配置

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

检查结果

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

创建 web 场景后,会自动添加新的 web 监控项 用于监控。

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

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