一.Zabbix Trigger (触发器)概述 触发器用于定义item的报警阈值 触发器是“评估”由项目采集的数据并表示当前系统状况的逻辑表达式。 当监控项用于采集系统的数据时,始终遵循这些数据是非常不切合实际的,因为这些数据始终在等待一个令人担忧或者值得关注的状态。然而这个“评估”数据的工作可以留给触发器表达式。 触发器表达式允许定义一个什么状况的数据是“可接受”的阈值。因此,如果接收的数据超过了可接受的状态,则触发器会被触发 - 或将状态更改为 PROBLEM 。 一个触发器可以拥有下面几种状态: 值 描述 OK 这是一个正常的触发器状态,在旧版本的 Zabbix 中称为 FALSE。 PROBLEM 通常意味着触发了某些事情。例如,处理器的负载较高。在旧版本的 Zabbix 中称为 TRUE。 每当 Zabbix server 接收到作为表达式一部分的新值时,都会重新计算触发器状态(表达式)。 如果在表达式中使用基于时间的函数(nodata(), date(), dayofmonth(), dayofweek(), time(), now()),触发器就会由 Zabbix timer 进程每 30 秒重新计算一次。如果在表达式中同时使用基于时间和非基于时间的函数,当接收到一 个新值和每隔 30 秒都会重新计算触发器的状态。 你可以构建不同复杂程度的触发器表达式。 二.触发器对象 可以应用给主机,也可应用给模板 图示 三.触发器表达式 1.模板:KSY:函数=VALUE {:.()} server: 可是host,也可是模板template,key: item(包括自定义的key) 2.函数:
函数: last() max() min() avg() count() delta() diff()3.常用模板 Template App HTTP Service Template OS Linux Template App MySQL Template OS Linux观察其中触发器的报警级别,描述,表达式。 四.触发器示例 1.CPU负载超过2 帮助
{192.168.152.130:system.cpu.load[all,avg1].last(0)}>3 {192.168.152.130:system.cpu.load[all,avg5].last(0)}>3 {192.168.152.130:system.cpu.load[all,avg15].last(0)}>3 {nginx host template:system.cpu.load[all,avg1].last(0)}>{$HIGLOAD} 说明:表示主机192.168.152.130上所有cpu过去1分的平均负载的最后一次取值大于3时将触发状态转换last函数,last(0)表示最后一次取值2.图示 1)监控项 2)配置触发器 3.图形监测 4.事件过程 网络流量超50K 帮助
表达式 {www.tianyun.com:net.if.in[eth0,bytes].last(0)}>50K {www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K ping -s 60000 被监控的主机图示 配置触发器
图形监测 触发报警
事件过程 登录用户超出3名
帮助 user login number gt 3 {Template OS Linux:system.users.num.last()}>3图示
配置触发器
图形监测 触发报警 FTP is down 帮助 {Template App FTP Service:net.tcp.service[ftp].max(#3)}=0 说明:模板Template App FTP Service,监控项net.tcp.service[ftp]最后三次取值的最大值 = 0 图示 图形 过程 关于zabbix的残留
新建项时,无法创建。在后台数据库中删除即可。 解决方法
cat .mysql_history desc items; select name,key_ from items where key_ like "%system.users.num%"; delete from items where name='Number of logged in users'; delete from items where name='Login user number'; select name,key_ from items where key_ like "%system.users.num%";