在上一篇文章中,我们已经大概描述了触发器、事件、动作的概念,并且通过"养鸡场"的场景比喻了它们,这次我们来看看怎样创建一个触发器,并且细细品味一番。

我们继续使用之前的测试环境,如果你对我们的测试环境还不了解,可以参考之前的文章,首先,打开我们的zabbix控制台。

zabbix触发器 zabbix触发器编写_zabbix触发器

 

因为testzbx1主机上并不存在任何触发器,所以此处的触发器列表为空,如果对应主机上已经存在对应的触发器,我们可以通过过滤条件筛选出我们想要得到的触发器,此处,我们直接点击"创建触发器"按钮。

zabbix触发器 zabbix触发器编写_触发器_02

 

可以看到触发器的创建配置界面如下,我们为触发器起个名字,名字叫"RootPartitionUsedTrigger",从名字你也能看出来,这个触发器是为了监控根分区的使用率而创建的,还记得我们之前创建的监控项"RootPartitionUsed" 吗? 我们现在要做的就是为这个监控项创建一个触发器,当这个监控项的值达到我们指定的阈值时,就会产生某个"事件",以便我们采取后续的措施,我们在前文中拿"养鸡场"的场景举了例子,当养鸡场的温度低于30度时,红灯就会亮起,而此处,我们会把"养鸡场的温度"换成"磁盘使用率",把"30度"换成了"13%",把红灯亮起想象成某个"事件"即可。而且我们在前文也已经说过,触发器的本质其实是一个表达式,用来定义监控项的阈值,那么我们怎样配置这个表达式呢,点击下图中的"添加"按钮,即可配置触发器的表达式。

zabbix触发器 zabbix触发器编写_依赖关系_03

 

点击上图中标注的"添加"按钮以后,可以看到如下界面,这个界面,就是我们用来配置"触发器"的表达式的界面。

zabbix触发器 zabbix触发器编写_sed_04

1、监控项:前文中说过,我们往往通过触发器定义被监控项的阈值,那么这个触发器是定义哪个监控项的阈值呢,我们可以通过此处进行选择。

2、功能:功能说起来比较麻烦,但是并不难理解,我们举个例子,还拿之前的"养鸡场"做例子,我发现这个例子特好使,如果你没有看过我们所描述的"养鸡场"的场景,最好先看看之前的文章,会方便我们理解很多东西。我们设定,养鸡场的温度不能低于30度,如果低于30度,则报警,于是我们在养鸡场里面放置了一台设备,这台设备的作用就是每隔1分钟检测一下养鸡场的室温,如果低于30度,就亮起红灯并且警铃大作,比如,我们可以定义,如果最近一次的检测值低于30度,那么就报警,也可以定义,如果5分钟前的检测值低于30度,则报警,甚至,我们还可以这样定义,如果连续10分钟内获取的温度值的平均值小于30度,则报警。那么,在zabbix中,怎样实现这样的灵活设定呢,没错,就是通过 "功能"栏定义的,功能栏中将常用的各种定义已经为我们准备好了,比如,最近T次监测或者T分钟以内,养鸡场的温度出现了小于N度的情况, 在功能栏中可以选择 "最新的T值 < N "。

3、我们在"功能"中,已经选择了某种定义,比如"最新的T值 < N ",那么T是以时间为单位呢,还是以次数为单位呢,如果我们想要定义"最近的第T次,养鸡场温度小于30度",那么此处需要选择"计数",如果我们想要表达"最近T分钟以内,养鸡场温度小于过30度",那么此处需要选择"时间",如果我们选择"计数",直接在此处填写次数即可,比如,我们想要定义"最近检测值的第5次,养鸡场温度小于30",则在此处选择"计数"以后,填写5即可。如果此处我们选择时间,只需在"排班"中填写对应的时间即可。

4、如果我们想要定义"T分钟以内,养鸡场温度出现过小于30度的情况",则需要在③中选择"时间",同时在此处指明时间长度,默认单位是秒。

5、此处用于设置N的值,比如 "最近一次监测的养鸡场温度小于30度",那么我们可以将N设置为30.

 

经过上述一番解释,我想大家应该已经能够初步的明白这些概念了,那么我们集合实际情况,一步一步的进行配置,配置如下。

首先,选择我们要为哪个监控项配置触发器,即为哪个监控项设置阈值,点击"选择"按钮。

zabbix触发器 zabbix触发器编写_sed_05

 

点击选择按钮以后,看到如下页面,通过"群组"与"主机"找到对应的主机,此处选择我们的测试主机testzbx1,找到对应的监控项,因为我们是要为根分区磁盘使用率监控项设置触发器,所以,此处选择"RootPartitionUsed"监控项。

zabbix触发器 zabbix触发器编写_zabbix触发器_06

 

假如我们想要将触发器定义为 "最近第2次监控到根分区使用率大于13%,则触发",那么我们则选择 "最新的T值 > N" 即可。

zabbix触发器 zabbix触发器编写_sed_07

最终配置如下,如下配置表示,当testzbx1这台服务器的根分区使用率倒数第2次被监控到大于13%,则触发器的条件被满足,触发器将会被触发,配置如下后,点击"插入"按钮。

zabbix触发器 zabbix触发器编写_sed_08

 

点击上图中的插入按钮后,回到触发器的最初的配置页面,可以看到,zabbix根据我们的设置,自动生成了一个"表达式",这就是我们前面所说的,触发器的本质是一个表达式。

zabbix触发器 zabbix触发器编写_依赖关系_09

此刻,客官您再看看这个表达式,是不是就很容易理解了,我再来啰嗦一遍,希望你不要烦,上面的表达式表示,testzbx1.zsythink.net这台主机上的根分区使用率如果最近两次被监控到的值大于13,则触发器将会被触发。我们也可以同时配置多个表达式,点击"表达式构造器"即可定义多个表达式之间的逻辑关系,此处为了演示方便,不会对它们进行详细解释。

zabbix触发器 zabbix触发器编写_依赖关系_10

 
 

"多重问题事件生成"表示触发器如果处于"Problem"状态,则重复的生成对应的"问题事件",这样解释有点模糊,不容易理解,等到我们实际用的时候再细细解释,一般不勾选此项。

zabbix触发器 zabbix触发器编写_zabbix触发器_11

 

我们可以对触发器进行描述,还能为触发器添加一个url,当我们收到报警信息时,可以通过url快速的定位到触发器所对应的监控项,我们可以把对应监控项的"最新数据"对应的图形链接填入url处,但是,这样说起来不容易理解,没关系,在后面的示例中会进行演示,我们还可以为触发器定义"严重性",其实就是这个触发器所对应的问题优先级,颜色越深,严重性越大。

zabbix触发器 zabbix触发器编写_zabbix触发器_12

 

此触发器示例的最终配置如下,因为现在并没有定义其他触发器,所以我们无法定义触发器的依赖关系,而且依赖关系的概念我们也没有提及过,所以,此处配置如下后,点击添加即可。

zabbix触发器 zabbix触发器编写_zabbix触发器_13

 

可以看到,触发器已经创建完成了。

zabbix触发器 zabbix触发器编写_zabbix触发器_14

 

此刻,我们再次查看触发器对应监控项的"图形",应该已经发生了变化。

zabbix触发器 zabbix触发器编写_依赖关系_15

 

可以看到,在对应的图形中,已经显示出了对应的触发器,触发器的阈值为13,当大于13时,此触发器会被触发。

zabbix触发器 zabbix触发器编写_触发器_16

好了,我们已经定义了一个触发器,但是我们还从未"触发"过它,不用着急,这是早晚的事儿。