方式一:关联到现有主机
登录Zabbix → 配置 → 主机 (示意图)
点击需要添加Web监控的主机名称
切换到 "Web场景" 标签页
方式二:创建独立主机(专用于Web监控)
配置 → 主机 → 创建主机主机名称:Website_Monitor
可见名称:公司官网监控
群组:Websites
在主机配置页面点击 "创建Web场景"
基础配置
名称:官网首页可用性检查
更新间隔:60s
尝试次数:2
超时:15s
名称:加载首页
URL:https://www.example.com
POST/GET:GET
步骤2:登录检查(示例)
点击 "添加" 添加第二个步骤名称:用户登录
URL:https://www.example.com/login
方法:POST
POST变量:
username: {监控用户}
password: {监控密码}
必需字符串:登录成功
HTTP认证
认证:HTTP
用户:testuser
密码:********
SSL证书验证
在Web场景页面切换到 "触发器" 标签
点击 "创建触发器"
示例1:网站不可用
名称:官网首页不可访问
表达式:{Website_Monitor:web.test.fail[官网首页可用性检查].last()}=1
严重性:灾难
示例2:响应时间过长
名称:官网响应时间过长
表达式:{Website_Monitor:web.test.time[官网首页可用性检查,加载首页].last()}>3
严重性:警告
自动生成的监控项包括:
web.test.fail[场景名称] - 场景失败数web.test.time[场景名称,步骤名称] - 步骤响应时间web.test.rspcode[场景名称,步骤名称] - HTTP响应码web.test.error[场景名称,步骤名称] - 错误信息查看路径:监控 → 最新数据 → 筛选对应主机
在步骤URL中使用变量:
URL:https://www.example.com/search?q={SEARCH_TERM}
在场景级别定义变量:
名称:SEARCH_TERM
值:zabbix
变量名:SESSION_ID
表达式:name="sessionid" value="([A-Za-z0-9]+)"
输出格式:\1
在后续步骤中使用:{SESSION_ID}
点击 "Headers" 标签添加:
名称:User-Agent
值:Zabbix Web Monitor
监控 → 最新数据 → 选择主机
web.test.time[...] - 响应时间web.test.rspcode[...] - 状态码
问题:Web场景一直失败
/var/log/zabbix/zabbix_server.log问题:响应时间数据缺失
<zabbix_export>
<version>5.0</version>
<templates>
<template>
<template>Template Web Site Monitoring</template>
<name>Template Web Site Monitoring</name>
<description>Website availability and performance monitoring</description>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<items>
<!-- 监控项定义 -->
</items>
<triggers>
<!-- 触发器定义 -->
</triggers>
</template>
</templates>
</zabbix_export>
#!/bin/bash
# 批量添加Web监控
for site in $(cat websites.txt); do
zabbix_api.sh --add-web-scenario \
--host "$site-monitor" \
--url "https://$site" \
--interval 60
done
注意事项:
监控生产网站时使用专用测试账户 避免过频繁的监控请求(防止被屏蔽) 定期审查监控项有效性 SSL证书变更时更新验证设置此教程覆盖了Zabbix Web监控的主要配置场景,根据实际需求调整参数即可满足大多数监控需求。