4.Zabbix邮件告警

当监控项手机数据后,触发器会根据异常状态触发报警,根据一些报警机制,他也会通知我们一些重要的时间,而不需要我们登录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 [email protected] -t [email protected] -s smtp.163.com -u "我是邮件主题" -o message-content-type=html  -o message-charset=utf8 -xu from  -xp 123456 -m "主机Zabbix-Server 
IP地址为:192.168.1.224
状态:Up
" -o tls=no

命令说明:

  • /usr/local/bin/sendEmail 命令主程序
  • -f [email protected] 发件人邮箱
  • -t [email protected] 收件人邮箱
  • -s smtp.163.com 发件人邮箱的smtp服务器
  • -u "我是邮件主题" 邮件的标题
  • -o message-content-type=html 邮件内容的格式,html表示它是html格式
  • -o message-charset=utf8 邮件内容编码
  • -xu [email protected] 发件人邮箱的用户名
  • -xp 123456发件人邮箱密码
  • -m "我是邮件内容"邮件的具体内容
4.Zabbix邮件告警_第1张图片
图片.png

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 [email protected] -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp password -m "$body"
[root@node1 alertscripts]# chmod +x sendEmail.sh
[root@node1 alertscripts]# chown zabbix.zabbix sendEmail.sh

说明:

  • [email protected] 替换成自己的发件邮箱
  • 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}
    4.Zabbix邮件告警_第2张图片
    图片.png

解释:很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。 那是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。 在2.x版本不存在这个问题,默认会传3个参数。

点击Admin用户


4.Zabbix邮件告警_第3张图片
图片.png

添加媒介sendEmail


4.Zabbix邮件告警_第4张图片
图片.png

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


4.Zabbix邮件告警_第5张图片
图片.png

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


4.Zabbix邮件告警_第6张图片
图片.png

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


4.Zabbix邮件告警_第7张图片
图片.png

选择所有 点击更新。

点击Configuration -->Action --> Report problems to Zabbix administrators,修改Operation.

1.添加Action,当CPU load too high on 'node2' for 3 minutes这个是条件

4.Zabbix邮件告警_第8张图片
图片.png

2.添加Operations
添加告警信息如下:

告警主机: {HOSTNAME1}
告警IP: {HOST.IP}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息:  {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}: {ITEM.VALUE}
当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1}
事件ID: {EVENT.ID}
4.Zabbix邮件告警_第9张图片
图片.png

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

4.Zabbix邮件告警_第10张图片
图片.png

你可能感兴趣的:(4.Zabbix邮件告警)