当监控项手机数据后,触发器会根据异常状态触发报警,根据一些报警机制,他也会通知我们一些重要的时间,而不需要我们登录zabbix前端进行查看。这就是通知(Notifications)的功能。E-mail是最常用的异常通知发送方式。我们将会学习如何配置e-mail通知。
1.安装sendEmail
我们在zabbix服务端下载发送邮件所需要的软件sendEmai。sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash、perl和web站点使用。
[root@node1 ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
[root@node1 ~]# tar -zxf sendEmail-v1.56.tar.gz -C /usr/local/
[root@node1 ~]# cd /usr/local/
[root@node1 local]# ln -sv /usr/local/sendEmail-v1.56/ sendEmail
[root@node1 local]# cd sendEmail
[root@node1 sendEmail]# cp -a sendEmail /usr/local/bin/
[root@node1 sendEmail]# chmod +x /usr/local/bin/sendEmail
2.测试邮件能否发送成功
[root@node1 sendEmail]# sendEmail -f from@163.com -t to@qq.com -s smtp.163.com -u "我是邮件主题" -o message-content-type=html -o message-charset=utf8 -xu from -xp 123456 -m "主机Zabbix-Server </br> IP地址为:192.168.1.224 </br> 状态:Up</br>" -o tls=no
命令说明:
-
/usr/local/bin/sendEmail
命令主程序 -
-f from@163.com
发件人邮箱 -
-t to@163.com
收件人邮箱 -
-s smtp.163.com
发件人邮箱的smtp服务器 -
-u "我是邮件主题"
邮件的标题 -
-o message-content-type=html
邮件内容的格式,html表示它是html格式 -
-o message-charset=utf8
邮件内容编码 -
-xu from@163.com
发件人邮箱的用户名 -
-xp 123456
发件人邮箱密码 -
-m "我是邮件内容"
邮件的具体内容

3.查看编辑脚本配置
可以查看zabbix_server.conf配置文件AlertScriptsPath变量是如何定义的。找到AlertScriptsPath选项,也可以自定义位置
[root@node1 ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
4.编写脚本
[root@node1 ~]# cd /usr/lib/zabbix/alertscripts/
#!/bin/bash
#
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail -f from.@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp password -m "$body"
[root@node1 alertscripts]# chmod +x sendEmail.sh
[root@node1 alertscripts]# chown zabbix.zabbix sendEmail.sh
说明:
- from@163.com 替换成自己的发件邮箱
- smtp.163.com 表示邮箱的smtp服务器,这里展示使用的是163邮箱,替换自己的邮箱SMTP地址
- password 替换成发件邮箱密码
5.web页面配置
点击管理(Administration) ->报警媒介类型(Media types) 点击最右边的创建媒体类型(Create media type)
输入脚本名称,类型选择脚本并添加以下3个参数,分别对应sendEmail.sh脚本需要的3个参数:收件人地址、主题、详细内容
{ALERT.SENDTO}
{ALERT.SUBJECT}
-
{ALERT.MESSAGE}
图片.png
解释:很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。 那是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。 在2.x版本不存在这个问题,默认会传3个参数。
点击Admin用户

添加媒介sendEmail

选择sendEmail,输入收件人的邮箱地址

点击User Groups,点击zabbix administrator后面的调用模式,点击一下,就启用了

点击Zabbix administrators组名称 点权限->添加

选择所有 点击更新。
点击Configuration -->Action --> Report problems to Zabbix administrators,修改Operation.
1.添加Action,当CPU load too high on 'node2' for 3 minutes
这个是条件

2.添加Operations
添加告警信息如下:
告警主机: {HOSTNAME1}<br/>
告警IP: <font color="#FF0000"><b>{HOST.IP}</b></font><br/>
告警时间: {EVENT.DATE} {EVENT.TIME}<br/>
告警等级: {TRIGGER.SEVERITY}<br/>
告警信息: {TRIGGER.NAME}<br/>
告警项目: {TRIGGER.KEY1}<br/>
问题详情: {ITEM.NAME}: {ITEM.VALUE}<br/>
当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1}<br/>
事件ID: {EVENT.ID}

模拟触发action,效果如图所示

网友评论