Zabbix添加网站监控,检测站点是否在线
Zabbix 添加网站监控的核心是让服务器定期访问目标站点,并根据返回状态码或响应内容判断其是否在线。
本文将手把手教你从零配置,使用 Zabbix 的 HTTP 代理或 Web 场景功能,实现对网站可用性的实时检测与告警。
一、监控前需要准备什么
开始操作前,请确认以下条件已满足:
- Zabbix Server 已安装并正常运行(版本 5.0 及以上均可,具体以官方文档为准)。
- 目标网站地址可被 Zabbix Server 访问,例如
https://www.example.com。 - 拥有 Zabbix 管理员账号,能够登录 Web 界面。
- 如需监控 HTTPS 站点,Zabbix Server 需具备访问外网或对应内网地址的能力。
关键点:Zabbix 检测网站是否在线,本质是模拟一次 HTTP 请求。
因此只要 Zabbix Server 能访问目标 URL,就可以实现监控。
二、创建主机并关联模板
登录 Zabbix Web 界面,依次进入 配置 → 主机 → 创建主机。
- 主机名称:填写易识别的名称,例如
Web-Site-Check。 - 群组:选择或新建一个群组,如
Websites。 - Agent 接口:不需要填写,因为使用 HTTP 代理监控。
保存后,为主机添加监控项。
虽然 Zabbix 自带的 Template App HTTP Service 模板可以监控 HTTP 服务,但它更适用于通用端口检测。
要精确检测站点是否在线,推荐手动创建监控项。
三、添加 HTTP 代理监控项
进入刚创建的主机,点击 监控项 → 创建监控项。
- 名称:
Website Status Check - 类型:选择
HTTP 代理 - 键值:
httpcheck.status(可自定义,但需唯一) - URL:填写完整地址,例如
https://www.example.com - 请求方法:
GET - 超时:
5s(根据网络情况调整) - 必需的状态码:
200
其他参数保持默认。
点击 添加。
注意:如果需要检查页面内容是否包含特定关键字,可以在 处理 选项卡中添加预处理步骤,例如 正则表达式 匹配 Welcome。
四、配置触发器实现告警
监控项只负责采集数据,要触发告警还需创建触发器。
进入 触发器 → 创建触发器。
- 名称:
Website is down - 严重性:选择
严重或灾难 - 表达式:点击
添加,选择刚才的监控项Website Status Check,设置条件为最后的值 <> 200。
这样,当 Zabbix 检测到 HTTP 状态码不是 200 时,就会触发告警。
补充:
如果希望检测到连续失败才告警,
可以在表达式中使用 count 函数,
例如 count(/Web-Site-Check/httpcheck.status,1m,200,ne)>=3,
表示 1 分钟内 3 次失败才告警。
五、验证监控是否生效
配置完成后,需要手动验证监控是否正常工作。
- 在 Zabbix 界面进入
监测→最新数据,筛选主机Web-Site-Check,查看Website Status Check的最新值。正常应显示200。 - 如果显示
0或空值,检查 Zabbix Server 是否能访问目标 URL,可在服务器上执行curl -I https://www.example.com测试。 - 模拟故障:临时修改监控项 URL 为错误地址,观察触发器是否产生告警。测试后记得改回。
结果验证:当站点正常时,最新数据为 200;
当站点无法访问时,触发器会生成告警事件,并可通过邮件、钉钉等方式通知。
六、常见问题与避坑指南
- 监控项一直显示 0:通常是 Zabbix Server 无法访问目标 URL,检查网络、DNS 或防火墙。
- HTTPS 证书报错:如果目标站点证书无效,HTTP 代理监控项可能失败。可在监控项中勾选
不验证 SSL 证书(仅测试环境建议)。 - 触发告警但实际站点正常:可能是必需状态码设置过于严格,例如站点返回 301 或 302 跳转。此时应调整必需状态码为
200,301,302,或使用跟随跳转选项。 - 告警频繁:适当增加超时时间或使用 count 函数抑制抖动。
避坑:不要直接使用 Zabbix 自带的 Template App HTTP Service 模板监控具体网站,因为它默认只检测端口,不检测 HTTP 状态码。
七、进阶:使用 Web 场景监控多步骤
如果需要监控登录、跳转等多步骤流程,可以使用 Web 场景。
进入 配置 → 主机 → Web 场景 → 创建 Web 场景,添加步骤并设置预期状态码。
Web 场景更适合复杂业务可用性检测。
总结:通过 Zabbix 添加网站监控,关键在于正确配置 HTTP 代理监控项和触发器。
按照本文步骤操作,即可快速实现站点在线检测,及时发现故障。
建议定期检查监控项状态,确保告警渠道畅通。