之前的几篇文章已经讲了如何定义监控项、触发器等。接下来讲讲如何定义动作。将动作之前我们先了解一下事件(event)。事件(event):即发生了一件值得关注的事情,例如某个触发器状态改变,新的agent或重新上线的agent的自动注册等。而动作是指对于特定事件事先定义的处理方法,包含了操作(如发送通知)和条件(何时执行操作)。由此,可以得知动作是通过事件来触发。
现在讲讲如何创建一个动作,与监控项和触发器结合起来一起使用。打开zabbix控制台“配置>动作>创建动作”,要通过触发器产生事件,所以事件源选择触发器。
因为要用于发送邮件,所以动作名称这里填“send mail”
上图中设定了两个条件:条件A“触发器等于131:http trigger” ,条件B:“主机等于131”。具体定义如下图。
条件B:主机–等于—选择—选定主机。
条件A:触发器–等于–选择–http trigger
对操作进行配置
操作步骤这里需要定义,发送到用户选择Admin,Admin用户之前已经配置了“报警媒介”。仅送到选择“MailScript”,“MailScript”是之前定义好的“报警媒介”。这里只是为了简单展示,所以其他的默认即可
恢复操作也要定义,用于服务正常后发送邮件通知,因此这里也要指定消息接收用户。
到此,一个动作的创建基本完成了。接下来用于测试邮件接收。
步骤如下:
(1)添加被监控主机httpd服务的监控项,定义好触发器,并关联到指定的动作。
(2)模拟故障:关闭httpd服务
(3)查看是否受到报警邮件
(4)模拟故障解除:重启httpd服务
(5)查看是否收到恢复邮件
步骤(1)之前的文章已详细讲解,因此这里不再赘述。这里从第(2)开始讲解。
关闭httpd服务
[root@centos7 ~]# systemctl stop httpd
关闭httpd服务后,监测页面出现告警信息,同时,也可以看到邮件已经发送。
打开邮箱查看邮件
重启httpd服务后,邮件也能正常接收到
[root@centos7 ~]# systemctl start httpd
故障排错:
刚开始发现邮件以附件方式发送,显示不正常,这里需要安装dos2unix转换工具( 解决发出的邮件是附件格式的问题 )
1、安装dos2unix
yum install dos2unix
2、修改邮件脚本
[root@centos7 alertscripts]# vim /usr/lib/zabbix/alertscripts/mail.sh
#!/bin/bash
#export.UTF-8 ###解决发送的中文变成了乱码的问题
#$1是收件人,$2是邮件主题,$3是邮件内容
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE ###解决了发送的邮件内容变成附件的问题。
/bin/mail -s "$2" $1 < $FILE
上面的这个三个参数是接收从web页面中传递过来的:
$1:收件人邮箱地址;
$2:邮件标题;
$3:邮件内容
3、创建临时文件并授权
[root@centos7 alertscripts]# touch /tmp/mailtmp.txt
[root@centos7 alertscripts]# chown zabbix.zabbix /tmp/mailtmp.txt
==注意:要给脚本添加权限 ==
chmod 755 /usr/lib/zabbix/alertscripts/mail.sh