ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

④.触发器

2022-08-15 13:34:03  阅读:180  来源: 互联网

标签:load 触发器 last zabbix com cpu


触发器的定义: 当监控项的值发生变化后,对应的值不符合预期,则应该通过触发器来通知管理员介入或执行相应的操作。

1.触发器的严重性

zabbix支持下列触发器的严重程度:

严重性 定义 颜色
未分类 未知严重性 灰色
信息 提示 浅蓝色
警告 警告 黄色
一般严重 一般问题 橙色
严重 发生重要的事情 浅红色
灾难 灾难,财务损失等 红色
  • 通过不同的颜色代表不同的严重程度
  • 报警音频,不一样的音频代表不同的严重程度
  • 用户媒介,不同的用户媒介(通知渠道) 代表不同的严重程度。例如一般报警email 高严重性sms报警
  • 通过触发器执行对应的条件动作

2.触发器表达式函数

函数名称 作用
avg() 监控项的平均值:
=>avg(#5) -> 最新5个值的平均值
=> avg(1h) -> 最近一小时的平均值
=>avg(1h,1d) -> 一天前的一小时内的平均值
min() 监控项的最小值:
示例:cpu使用率最近5分钟的最小值大于5 system.cpu.load.min(5m)>5
示例:cpu最近5次最小的值大于2 system.cpu.load.min(#5)>2
max() 监控项的最大值:
=>max(#5) ->最新5个值的最大值
=>max(1h)->最近一小时的最大值
last() 注意last的 #num 参数和在其它函数中的作用不一样,例如:返回值 3,7,2,6,9
last() 通常等同于last(#1)
last(#5) 第五个最新值
last(#2)将返回值为7
last(#5)返回值为9
diff() 比对上一次文件的内容
nodata() 监控一段时间内是否返回数据:时间不少于30秒,因为timer处理器每30s调用一次
返回1 - 指定评估期没有接收数据
返回0 - 其它

官方示例:
示例一:

触发器名称:Processor load is too high on www.zabbix.com
{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5
触发器说明:
www.zabbix.com:host名称
system.cpu.load[all,avg1]:item值,一分内cpu平均负载值
last(0):最新值
>5:最新值大于5
如上所示,www.zabbix.com这个主机的监控项,最新的CPU负载值如果大于5,那么表达式会返回true,这样一来触发器状态就改变为“problem”了。

示例二:

触发器名称:www.zabbix.com is overloaded
{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5|{www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2 
当前cpu负载大于5或者最近10分内的cpu负载大于2,那么表达式将会返回true.

示例三:

触发器名称:/etc/passwd has been changed 使用函数 diff():
{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff(0)}>0 
/etc/passwd最新的checksum与上一次获取到的checksum不同,表达式将会返回true. 我们可以使用同样的方法监控系统重要的配置文件,例如/etc/passwd,/etc/inetd.conf等等。这些zabbix一般都会自带,没带的你自己加上吧。

示例四:

触发器名称:Someone is downloading a large file from the Internet 使用函数 min:
{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K 
当前主机网卡eth0最后5分钟内接收到的流量超过100KB那么触发器表达式将会返回true

示例五:

触发器名称:Both nodes of clustered SMTP server are down
{smtp1.zabbix.com:net.tcp.service[smtp].last(0)}=0 & {smtp2.zabbix.com:net.tcp.service[smtp].last(0)}=0 
当smtp1.zabbix.com和smtp2.zabbix.com两台主机上的SMTP服务器都离线,表达式将会返回true.

示例六:

触发器名称:Zabbix agent needs to be upgraded 使用函数str():
{zabbix.zabbix.com:agent.version.str("beta8")}=1 
如果当前zabbix agent版本包含beta8(假设当前版本为1.0beta8),这个表达式会返回true.

示例七:

触发器名称:Server is unreachable
{zabbix.zabbix.com:icmpping.count(30m,0)}>5 
如上表达式表示最近30分钟zabbix.zabbix.com这个主机超过5次不可到达。

示例八:

触发器名称:No heartbeats within last 3 minutes 使用函数 nodata():
{zabbix.zabbix.com:tick.nodata(3m)}=1 
tick为Zabbix trapper类型,首先我们要定义一个类型为Zabbix trapper,key为tick的item。我们使用zabbix_sender定期发送数据给tick,如果在3分钟内还未收到zabbix_sender发送来的数据,那么表达式返回一个true,与此同时触发器的值变为“PROBLEM”。

示例九:

触发器名称:CPU activity at night time 使用函数 time():
{zabbix:system.cpu.load[all,avg1].min(5m)}>2 & {zabbix:system.cpu.load[all,avg1].time(0)}>000000 & {zabbix:system.cpu.load[all,avg1].time(0)}<060000 
只有在凌晨0点到6点整,最近5分钟内cpu负载大于2,表达式返回true,触发器的状态变更为“problem”

示例十:

触发器名称:Check if client local time is in sync with Zabbix server time 使用函数 fuzzytime():
{MySQL_DB:system.localtime.fuzzytime(10)}=0 
主机MySQL_DB当前服务器时间如果与zabbix server之间的时间相差10秒以上,表达式返回true,触发器状态改变为“problem”

示例十一:

触发器名称:Comparing average load today with average load of the same time yesterday (使用 time_shift 时间偏移量参数).
{server:system.cpu.load.avg(1h)} / {server:system.cpu.load.avg(1h,1d)}>2 
This expression will fire if the average load of the last hour tops the average load of the same hour yesterday more than two times.
最新一小时的平均负载峰值超过昨天同时段指标两次进行报警

3.特性之Hysteresis(迟滞,滞后):

简单的说触发器状态转变为problem需要一个条件,从problem转变回来还需要一个条件才行。一般触发器只需要不满足触发器为problem条件即可恢复。明白了么?不明白就看例子吧。 有时候触发器需要使用不同的条件来表示不同的状态,举个官网很有趣的例子:机房温度正常稳定为15-20°,当温度超过20°,触发器值为problem,当前情况下,只有温度处在这个温度之间触发器值才会为FALSE。(慢慢理解,这个表达式有点绕) 为了达到这个效果,我们需要使用如下触发器表达式:

示例1:

触发器名称:Temperature in server room is too high
({TRIGGER.VALUE}=0&{server:temp.last(0)}>20) | ({TRIGGER.VALUE}=1&{server:temp.last(0)}<15) 
注意:宏变量 {TRIGGER.VALUE}将会返回当前触发器的值

实例2:

触发器名称:Free disk space is too low Problem: 最近5分钟内剩余磁盘空间小于10GB。 Recovery: 最近10分钟内磁盘空间大于40GB
({TRIGGER.VALUE}=0&{server:vfs.fs.size[/,free].max(5m)}<10G) | ({TRIGGER.VALUE}=1&{server:vfs.fs.size[/,free].min(10m)}

自定义触发器场景

2.1 配置单条件触发器

  • 自定义单条件触发器: 设置内存低于30% 进行告警,点击对应主机 -> 触发器


    设定一个触发表达式 设定一个恢复表达式 两个表达式的条件不同 可以滞后恢复 勾选可以手动关闭 可以在面板直接关闭

标签:load,触发器,last,zabbix,com,cpu
来源: https://www.cnblogs.com/yangtao416/p/16587429.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有