设为首页 收藏本站
查看: 1593|回复: 0

[经验分享] Zabbix监控(二):添加触发器Triggers

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-21 15:08:20 | 显示全部楼层 |阅读模式
1、新建触发器Triggers:

wKiom1RsMQyyS3vGAAZcd02oUu8019.jpg

    说明:上图中显示的触发器是在Template中创建的,触发值是不能在此直接修改的,必须在template中修改。
wKiom1RsMTuDFXMUAAPSZNJxT5c735.jpg

    点击ADD添加触发器表达式Expression:
wKioL1RsMbPjnF50AAWHbXimdHM886.jpg

    点击Select选择已存在监控项Items:
wKiom1RsMX7CUr6HAALeMSS3rgU406.jpg
    说明:Expression中选择对应的item、触发方式及触发值,Severity是告警级别,根据trigger的严重性来选择。

2、触发器的表达式Expression
1
{:.()}



    例如:{hv01:vfs.file.exists[file].last()}=0
    function就是指last()部分,这里表示最近一次的值,为0时表示文件存在,不为0表示文件不存在。


3、触发器函数参数function parameter
(1)abschange
· 参数: 直接忽略后边的参数
· 支持值类型:float,int, str,text,log
· 描述: 返回最近获取到的值与之前的值的差值的绝对值。对于字符串类型,0表示值相等,1表示值不同。
(2)avg
· 参数: 秒或#num
· 支持值类型:float,int
· 描述: 返回指定时间间隔的平均值。时间间隔可以通过第一个参数通过秒数设置或收集的值的数目(需要前边加上#,比如#5表示最近5次的值) 。
如果有第二个,则表示时间漂移(time shift),例如像查询一天之前的一小时的平均值,对应的函数是avg(3600,86400),时间漂移是Zabbix1.8.2加入进来的。
(3)change
· 参数: 直接忽略掉后边的参数
· 支持值类型:float,int, str,text,log
· 描述: 返回最近获取到的值与之前的值的差值. 对于字符串类型,0表示值相等,1表示值不同
(4)count
· 参数: 秒或#num
· 支持值类型:float,int, str,text,log
· 描述: 返回指定时间间隔内的数值统计。时间间隔可以通过第一个参数通过秒数设置或收集的值数目(需要值前边加上#)。
本函数可以支持第二个参数作为样本(pattern)数据,第三个参数作为操作(operator)参数,第四个参数作为时间漂移(timeshift)参数。
对于样本,整数(iteeger)监控项实用精确匹配,浮点型(float)监控项允许偏差0.0000001
   支持的操作(operators)类型:
        eq:相等
        ne:不相等
        gt:大于
        ge:大于等于
        lt: 小于
        le: 小于等于
        like: 内容匹配
   对于整数和浮点型监控项目支持eq(默认),ne,gt,ge,lt,le;对于string、text、log监控项支持like(默认),eq,ne
   例子:
        count(600):最近10分钟的值的个数
        count(600,12):最近10分钟,值等于12的个数
        count(600,12,"gt"):最近10分钟,值大于12的个数
        count(#10,12,"gt"):最近的10个值中,值大于12的个数
        count(600,12,"gt",86400):24小时之前的前10分钟数据中,值大于12的个数
        count(600,,,86400):24小时之前的前10分钟数据的值的个数
(5)date
· 参数: 直接忽略掉后边的参数
· 支持值类型: 所有(any)
· 描述: 返回当前日期(格式为YYYYMMDD),例如20031025
(6)dayofmonth
· 参数: 直接忽略掉后边的参数
· 支持值类型: 所有(any)
· 描述: 返回当前是本月第几天(数值范围:1-31),该函数从Zabbix1.8.5起开始支持
(7)dayofweek
· 参数: 直接忽略掉后边的参数
· 支持值类型: 所有(any)
· 描述: 返回当前是本周的第几天(数值返回:1-7),星期一是1,星期天是7
(8)delta
· 参数: 秒或#num
· 支持值类型:float,int
· 描述: 返回指定时间间隔内的最大值与最小值的差值(max()-min())。时间间隔作为第一个参数可以是秒或者收集值的数目。
从Zabbix1.8.2开始,支持可选的第二个参数time_shift.
(9)diff
· 参数: 忽略
· 支持值类型:float,int, str,text,log
· 描述: 返回值为1表示最近的值与之前的值不同,0为其他情况
(10)fuzzytime
· 参数: 秒
· 支持值类型:float,int
· 描述: 返回值为1表示监控项值的时间戳与ZabbixServer的时间多N秒,0为其他。
常使用system.localtime来检查本地时间是否与Zabbixserver时间相同.
(11)iregexp
· 参数: 第一个为字符串,第二个为秒或#num
· 支持值类型:str,log, text
· 描述: 与regexp类似,区别是不区分大小写
(12)last
· 参数: 秒或#num
· 支持值类型:float,int, str,text,log
· 描述: 最近的值,如果为秒,则忽略,#num表示最近第N个值,请注意当前的#num和其他一些函数的#num的意思是不同的
   例子:
        last(0) 等价于last(#1)
        last(#3) 表示最近**第**3个值(并不是最近的三个值)
        last(0,86400) 返回一天前的最近的值 (支持第二个参数**time_shift**,如果在history中同一秒中有多个值存在,Zabbix不保证值的精确顺序)
(13)logeventid
· 参数:string
· 支持值类型:log
· 描述: 检查最近的日志条目的EventID是否匹配正则表达式. 参数为正则表达式,POSIX扩展样式. 当返回值为0时表示不匹配,1表示匹配。
(14)logseverity
· 参数: 忽略
· 支持值类型:log
· 描述: 返回最近日志条目的日志等级(logseverity).当返回值为0时表示默认等级,N为具体对应等级(整数,常用于Windowseventlogs).
Zabbix日志等级来源于Windowseventlog的Information列.
(15)logsource
· 参数:string
· 支持值类型:log
· 描述: 检查最近的日志条目是否匹配参数的日志来源. 当返回值为0时表示不匹配,1表示匹配。通常用于Windows event logs监控. 例如logsource["VMWare Server"]
(16)max
· 参数: 秒或#num
· 支持值类型:float,int
· 描述: 返回指定时间间隔的最大值. 时间间隔作为第一个参数可以是秒或收集值的数目(前缀为#).支持第二个可选参数time_shift,可以查看avg()函数获取它的使用方法.
(17)min
· 参数: 秒或#num
· 支持值类型:float,int
· 描述: 返回指定时间间隔的最小值. 时间间隔作为第一个参数可以是秒或收集值的数目(前缀为#).支持第二个可选参数time_shift,可以查看avg()函数获取它的使用方法.
(18)nodata
· 参数: 秒
· 支持值类型:any
· 描述: 当返回值为1表示指定的间隔(间隔不应小于30秒)没有接收到数据,0表示其他.
(19)now
· 参数: 忽略
· 支持值类型:any
· 描述: 返回距离Epoch(1970年1月1日00:00:00UTC)时间的秒数
(20)prev
· 参数: 忽略
· 支持值类型:float,int, str,text,log
· 描述:返回之前的值,类似于last(#2)
(21)regexp
· 参数: 第一个参数为string,第二个参数为秒或#num
· 支持值类型:str,log, text
· 描述: 检查最近的值是否匹配正则表达式,参数的正则表达式为POSIX扩展样式,
第二个参数为秒数或收集值的数目,将会处理多个值. 本函数区分大小写。当返回值为1时表示找到,0为其他.
(22)str
· 参数: 第一个参数为string,第二个参数为秒或#num
· 支持值类型:str,log, text
· 描述: 查找最近值中的字符串。第一个参数指定查找的字符串,大小写敏感。第二个可选的参数指定秒数或收集值的数目,将会处理多个值。当返回值为1时表示找到,0为其他.
(23)strlen
· 参数: 秒或#num
· 支持值类型:str,log, text
· 描述: 指定最近值的字符串长度(并非字节), 参数值类似于last函数. 例如strlen(0)等价于strlen(#1),strlen(#3)表示最近的第三个值, strlen(0,86400)表示一天前的最近的值.
(24)sum
· 参数: 秒或#num
· 支持值类型:float,int
· 描述: 返回指定时间间隔中收集到的值的总和. 时间间隔作为第一个参数支持秒或收集值的数目(以#开始). 支持time_shift作为第二个参数。可以查看avg函数获取它的用法
(25)time
· 参数: 忽略
· 支持值类型:any
· 描述: 返回当前时间,格式为HHMMSS,例如123055
wKioL1RsMfXg3PqLAALoR97wJxk313.jpg


    说明:以上三个图都是触发器的所有表达式,N代表数值或秒数。

4、触发器实例
   触发器的表达式Expression:
1
{:.()}




(1)例子一:zabbix.ewin.com上的处理器负载太高
{zabbix.ewin.com:system.cpu.load[all,avg1].last(0)}>5
它指定服务器是'www.zabbix.com',被监控关键字是'system.cpu.load[all,avg1]',
通过使用函数'last()',我们指定最近的值。最后,'>5'表示来自zabbix.ewin.com
的最后负载测量大于5则触发器进入PROBLEM状态。

(2)例子二:zabbix.ewin.com过载了
{zabbix.ewin.com:system.cpu.load[all,avg1].last(0)}>5|{zabbix.ewin.com:system.cpu.load[all,avg1].min(10m)}>2
无论当前处理器负载大于5还是最近10分钟的负载大于2,该表达式的值都是真

(3)例子三:文件/etc/passwd被更改了
{zabbix.ewin.com:vfs.file.cksum[/etc/passwd].diff(0)}>0

当文件/etc/passwd之前的checksum值于最近的值不同,则该表达式为真

(4)例子四:有人从因特网上下载大文件
{zabbix.ewin.com:net.if.in[eth0,bytes].min(5m)}>100K

当最近5分钟内,eth0接收的字节数大于100KB,则该表达式为真。

(5)例子五:两个SMTP服务器的集群节点都停止了
注意在一个表达式中使用两个不同的主机
{smtp1.ewin.com:net.tcp.service[smtp].last(0)}=0&{smtp2.ewin.com:net.tcp.service[smtp].last(0)}=0
当SMTP服务器smtp1与smtp2的服务smtp都停止时,表达式为真

(6)例子六:zabbix客户端代理需要更新
{zabbix.ewin.com:agent.version.str("beta8")}=1

当zabbix客户端代理有版本beta8时该表达式为真。

(7)例子七:服务器不可达
{zabbix.ewin.com:icmpping.count(30m,0)}>5
主机zabbix.ewin.com在最近30分钟内超过5次不可达该表达式为真

(8)例子八:最近三分钟内没有回应
{zabbix.ewin.com:tick.nodata(3m)}=1

'tick'必须使用类型'Zabbix trapper'。为了这个触发器工作,tick必须定义。该主机应该使用
zabbix_sender定期为该参数发送数据。如果180秒都没有收到数据,该触发器的值变为PROBLEM。

(9)例子九:CPU在夜间活度
{zabbix.ewin.com:system.cpu.load[all,avg1].min(5m)}>2&{zabbix.ewin.com:system.cpu.load[all,avg1].time(0)}>000000&{zabbix.ewin.com:system.cpu.load[all,avg1].time(0)}<060000
触发器只在晚上(00:00-06:00)为可用。

(10)例子十:检查客户端本地时间是否与zabbix服务器时间同步
{MySQL_DB:system.localtime.fuzzytime(10)}=0
当MySQL_DB的本地时间与zabbix server的时间相差超过10秒,触发器变为PROBLEM状
态。

(10)例子十一:服务器房间温度过高
  滞留:  有时候触发器必须在不同情况下有不同条件。
  例如:我们想定义当服务器房间的温度超过20摄氏度时触发器变为PROBLEM状态,然后触发器一直停留在这个状态除非温度低于15摄氏度。

({TRIGGER.VALUE}=0&{server:temp.last(0)}>20)|({TRIGGER.VALUE}=1&{server:temp.last(0)}>15)
注意使用了一个宏{TRIGGER.VALUE},这个宏返回当前触发器的值


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-32506-1-1.html 上篇帖子: Zabbix监控(一):添加主机Host和监控项Items 下篇帖子: Zabbix监控(三):动作Actions、告警方式Medias和用户Users
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表