Zabbix 5.0 LTS URL 健康监测

更多细节详情看【zabbix官方文档

需求

Zabbix 的URL健康监测功能允许你检测 Web 地址是否可用、正常工作以及响应速度。这对于监控网站的可用性和性能非常有用。例如,你可以监控公司网站、API 端点或其他关键服务的 URL。

一、配置 Web 监测

步骤:配置 -- 主机 -- Web监测 -- 创建Web场景 -- 场景 -- 步骤 -- 添加

二、配置触发器

步骤:配置 -- 主机 -- 选择主机 -- 触发器 -- 创建触发器 -- 添加

触发器示例

表达式语法:
{<server>:<key>.<function>(<parameter>)}<operator><constant>

示例 1 www.zabbix.com 的处理器负载过高

{www.zabbix.com:system.cpu.load[all,avg1].last()}>5

'www.zabbix.com:system.cpu.load[all,avg1]' 给出了被监控参数的简短名称。
它指定了服务器是"www.zabbix.com",监控项的键值是"system.cpu.load[all,avg1]"。
通过使用函数"last()"获取最新的值。最后,">5"意味着当www.zabbix.com最新获取的处理器负载值大于5时触发器就会处于异常状态。

示例 2 www.zabbix.com 已超载

{www.zabbix.com:system.cpu.load[all,avg1].last()}>5 or
{www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2 

当前处理器负载大于5或者最近10分钟内最小值大于2,表达式为true。

示例 3 /etc/passwd文件被修改

使用函数diff:

{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff()}=1

当文件/etc/passwd的checksum值与最近的值不同时,表达式为true。

类似的,表达式可以用于监控重要文件的修改, 如/etc/passwd, /etc/inetd.conf, /kernel等

示例 4 有人正在从互联网上下载一个大文件

使用min函数:

{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K

在过去5分钟内,eth0上接收字节数大于100kb时,表达式为true。

示例 5 SMTP服务群集的两个节点都停止。 注意在一个表达式中使用两个不同的主机:

{smtp1.zabbix.com:net.tcp.service[smtp].last()}=0 and {smtp2.zabbix.com:net.tcp.service[smtp].last()}=0

当SMTP服务器smtp1.zabbix.com和smtp2.zabbix.com都停止,表达式为true

示例 6 Zabbix agent需要升级

使用str()函数:

{zabbix.zabbix.com:agent.version.str("beta8")}=1

如果Zabbix agent版本是beta8(可能是1.0beta8),则表达式为真。

示例 7 服务器无法访问

{zabbix.zabbix.com:icmpping.count(30m,0)}>5

当主机"zabbix.zabbix.com"在30分钟内超过5次不可达,则表达式为真。

示例 8 3分钟内没有心跳检查

使用nodata()函数:

{zabbix.zabbix.com:tick.nodata(3m)}=1

要使用这个触发器,'tick'必须定义成一个Zabbix[:manual/config/items/itemtypes/trapper|trapper]]监控项。主机应该使用zabbix_sender定期发送这个监控项的数据。

如果在180秒内没有接收到数据,则触发值变为异常状态。

注释'nodata'可以在任何类型的监控项中使用。

示例 9 夜间的CPU负载

使用time()函数:

{zabbix:system.cpu.load[all,avg1].min(5m)}>2 and {zabbix:system.cpu.load[all,avg1].time()}>000000 and {zabbix:system.cpu.load[all,avg1].time()}<060000

仅在夜间(00:00-06:00),触发器状态变可以变为真。

示例 10 检查客户端本地时间是否与Zabbix服务器时间同步

使用fuzzytime()函数:

{MySQL_DB:system.localtime.fuzzytime(10)}=0

当MySQL_DB服务器的本地时间与Zabbix server之间的时间相差超过10秒,触发器将变为异常状态。