Zabbix监控(二):添加触发器Triggers

1、新建触发器Triggers:


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

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

点击Select选择已存在监控项Items:

说明:Expression中选择对应的item、触发方式及触发值,Severity是告警级别,根据trigger的严重性来选择。

2、触发器的表达式Expression

{<server>:<key>.<function>(<parameter>)}<operator><constant>

例如:{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

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

4、触发器实例

触发器的表达式Expression:

{<server>:<key>.<function>(<parameter>)}<operator><constant>

(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},这个宏返回当前触发器的值

时间: 2024-10-07 03:13:38

Zabbix监控(二):添加触发器Triggers的相关文章

zabbix专题:第五章 zabbix 添加触发器Triggers

zabbix 添加触发器Triggers 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 本节目录大纲 触发器(triggers)是什么? 实战创建监听80端口的触发器 报警级别介绍 zabbix触发器依赖关系详解 zabbix专题:第五章 zabbix 添加触发器Triggers 触发器(triggers)是什么? 触发器使用逻辑表达式来评估通过item获取到得数据是处于哪种状态,item一收回数据,讲

Zbbix4.0(二)基础主机监控,添加触发器,使用模板,管理用户组等

Zabbix主机添加顺序:添加主机组 ---->添加主机----->根据监控项目可添加图形或者触发器 1,添加主机组 2,添加主机 ##注意添加进刚才创建的组,和主机的IP 地址 根据接口支持多种添加方式:agent:zabbix提供一个agent客户端,可装在Linux.Windows等snmp:使用snmp协议去监控服务器.交换机.路由器等jmx:方便我们去监控java进程ipmi:监控硬件信息 3,zabbinx 添加简单监控项目(zabbix 监控形式是根据key vlaue的形式)

zabbix的自定义监控项和触发器的配置

实例:自定义一个检查Linux系统根目录的使用情况的监控项. 1.配置一个自定义的监控项 (1).先配置获取根目录使用的当前情况的脚步,生产的脚步文件要有执行权限,如下: [[email protected] ~]# df -h | awk '{if(NR==2){print int($5)}}' //NR代表行,$5代表第5列 给脚本执行权限: 脚本执行结果: (2).把这个获取根目录使用情况的脚本在zabbix_agent中配置为监控项: #自定义监控项的key为my.dsp.count,后

zabbix监控利用Python脚本发邮件

最近实施了zabbix监控,开源软件杠杠的,甩nagios 好几条街-- 环境:centos6.6 + Zabbix 2.4.5 + Python 2.6.6 cd /usr/local/zabbix/share/zabbix/alertscripts #进入脚本存放目录vi SendAlertEmail.sh #编辑,添加以下代码#!/bin/shecho "$3" | mail -s "$2" $1:wq! #保存退出chown zabbix.zabbix /u

zabbix 监控日志关键字

1.客户端配置 [[email protected] zabbix_agentd.conf.d]# pwd /usr/local/zabbix-server/etc/zabbix_agentd.conf.d [[email protected] zabbix_agentd.conf.d]# cat custom_parameters.conf UserParameter=masterha_manager,[ `/bin/ps aux | /bin/grep -v grep | /bin/grep

zabbix 监控磁盘I/O

编辑zabbix_agentd.conf 删除注释 #Incloud = 修改目录/usr/local/zabbix/conf/other_conf.d mkdir /usr/local/zabbix/conf/other_conf.d cd /usr/local/zabbix/conf/other_conf.d vim disk_io.conf UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | he

Zabbix监控windows指定进程

1.首先,找到要监控进程的主机 创建新的监控项 然后应用集选择processes,点击添加,此处是以zabbix_agentd.exe为例添加 2. 为此监控项添加触发器 注意触发器表达式的编写,上面的意思是当zabbix_agentd.exe这个进程数为0的时候触发此触发器发出警告.这样,触发器就创建好了,可以尝试在被监控主机上结束当前进程,看下会不会触发报警. 原文地址:https://www.cnblogs.com/ultranms/p/9111062.html

日志文件报警监控脚本(可用于zabbix监控文件)测试中...

因业务要求,需要对某些日志文件中出现的关键字进行监控,所以写了个脚本用于直接用zabbix调用并返回超出阈值的监控项. 主要用来替代zabbix自带的文件监控项.可以对一台机器上的多个日志文件,多个触发阈值进行监控.不用配置多条zabbix监控项及触发器. 也许将来会逐步增加其他奇怪的监控内容 脚本代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- # Author: ColinShi import sys, os import datetim

Zabbix(二)--第一台主机监控及触发器

0x01 Create Host 安装完zabbix后从哪里入手?无非就是要添加监控目标,那本文就从添加监控一个主机入手,了解zabbix的各个基本功能 添加主机在“Configuration”选项卡上的“Hosts”,可以看到下图默认已经有一个监控目标了,接下来就从这里展开,描述item,trigger,graphs等使用 首先,要先了解item是监控目标主机上的各个小项目(比如内存.cpu的使用率),多个item可以分组归类成application.当item超出设定的阈值就要做出某种行动(