概述
在zabbix中,创建带参数监控项(item),创建触发器(trigger),创建脚本形式的报警媒介(Media Type),当触发器被触发时执行动作(action),创建动作(action),包括发送邮件和执行远程命令,最后,触发报警,验证是否收到邮件及执行了远程命令。
Step1 创建带参数监控项
参考 zabbix从放弃到入门(5)在zabbix中添加带有参数的监控项
点击 Configuration - Hosts - compute1的Items:

进入如下界面,点击Create Item:

创建监控项RootPartitionUsed,填写如图中配置,表示监控192.168.0.177主机下根磁盘的使用率,点击update:

查看数据,点击Monitoring - Latest data,看到了监控项RootPartitionUsed

点击最右边的graph查看图表:

此时,已成功创建了一个带参数监控项。
忽略左边一块凸起,是之前做实验留下的痕迹。
Step2 创建触发器
参考 zabbix从放弃到入门(7):触发器详解之一,创建触发器
点击Configuration - Hosts - compute1的Triggers

进入如下界面,选好Group和Host,点击Create Item:

创建触发器RootPartitionUsedTrigger,设定等级为High,设定触发条件为compute1的根目录磁盘使用率超过5.46%,点击update:

其中,触发条件由上图Expression设定,点击add可进入编辑页,这里就不详述,可参考本步骤开头链接。
再次查看数据,点击Monitoring - Latest data,找到监控项RootPartitionUsed
点击最右边的graph查看图表,注意这里的Trigger:

此时,已成功创建了一个触发器。
Step3 创建脚本形式的报警媒介
点击Administration - Media types,点击最右边Create media type:

创建一个名为sendEmail,类型为Script的脚本作为报警媒介。

脚本名为sendEmail.sh,将该脚本放置与zabbix server的/usr/lib/zabbix/alertscripts目录下:
cloudtest@controller:/usr/lib/zabbix/alertscripts$ ls
sendEmail.sh
添加脚本三个参数,意为
- {ALERT.SENDTO} - 邮件接收方
- {ALERT.SUBJECT} - 邮件标题
- {ALERT.MESSAGE} - 邮件内容
则执行脚本时会依次传入这三个参数,脚本内容如下:
#!/bin/bash
to=$1
title=$2
context=$3
/usr/local/bin/sendEmail -f 13957348548@163.com -t "$to" -s smtp.163.com -u "$title" -o message-content-type=html -o messag e-charset=utf-8 -xu 13957348548@163.com -xp cloudtest123 -m "$context" -o tls=no
该脚本利用sendEmail发送邮件,如何用sendEmail发送邮件,请见https://www.jianshu.com/p/d8c1fd480b21
另外,注意授予脚本执行权限:
sudo chmod a+x sendEmail.sh
点击update,看到报警媒介已添加:

这时,还需要定义一个用户,让其具备接收报警媒介的能力,点击Administration - Users - Admin:

进入Users界面,点击Media - Add:

添加媒介,Send to里填上收件人的邮箱,对应之前创建脚本时的{ALERT.SENDTO}参数,点击update:

回到Users,别忘了再update一下:

此时,已成功创建了一个脚本形式的报警媒介。
未完待续。