Ubuntu zabbix配置报警邮件

系统配置       Ubuntu 16.04

zabbix版本     3.4



zabbxi实现邮件告警推送有两种方式:

a.使用zabbix服务端的本地邮箱账号发送,邮件名为:[email protected],user为发送邮件的用户,hostname为zabbix-server的主机名,该邮箱只能发送,不能接收外部邮件;

b.使用外部邮箱指定为告警发送邮箱。

一般公司都有邮件系统,为方便管理,本文采用外部邮箱方式发送告警。(申请163邮箱号:[email protected] ,注意开启客户端授权)

1.关闭postfix(可以不做)

[root@zabbix-server ~]# systemctl stop postfix

[root@zabbix-server ~]# systemctl disable postfix

postfix为本地邮箱推送方式需安装的软件,若同时配置本地和外部邮箱两种发送方式,系统会优先采用外部邮箱方式,所以该步骤不是必须但最好关闭这个服务。

2.安装邮件发送工具mailx

[root@zabbix-server ~]# sudo apt-get install -y heirloom-mailx

查看mailx版本:

[root@zabbix-server ~]# mail -V

v14.8.6

3.配置外部邮箱

[root@zabbix-server ~]# vim /etc/s-nail.rc

set [email protected]

set smtp=smtp.163.com

set [email protected]

set smtp-auth-password=xxx

set smtp-auth=login

测试使用的企业邮箱,smtp-auth-password是密码,如果是个人邮箱smtp-auth-password貌似为 ‘客户端授权密码’

Ubuntu zabbix配置报警邮件_第1张图片

测试外部邮箱


[root@zabbix-server ~]# echo "zabbix test mail 123" |mail -s "zabbix" [email protected]

Ubuntu zabbix配置报警邮件_第2张图片

由于163的反垃圾机制,当发送为其它邮箱如126、qq邮箱时会报错,故本例中发送和接收邮箱都为[email protected]。如若上生产可配置企业邮箱。

4.编写邮件发送脚本

修改脚本路径

[root@zabbix-server ~]# view /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/etc/zabbix/alertscripts

编写脚本mail.sh

[root@zabbix-server ~]# cd /etc/zabbix/

[root@zabbix-server zabbix]# mkdir alertscripts && cd alertscripts && touch mail.sh

[root@zabbix-server alertscripts]# more mail.sh 

#!/bin/bash

echo "$3" | mail -s "$2" $1

[root@zabbix-server alertscripts]# chmod 755 mail.sh

$1:收件人邮箱地址;$2:邮件标题;$3:邮件内容

5.web端配置

5.1创建报警媒介类型

Ubuntu zabbix配置报警邮件_第3张图片

脚本参数分别对应:收件人地址、主题、详细内容

5.2配置用户

选择Admin:

Ubuntu zabbix配置报警邮件_第4张图片

添加报警媒介:

Ubuntu zabbix配置报警邮件_第5张图片

5.3创建报警动作

配置-动作-创建动作,新建动作:

Ubuntu zabbix配置报警邮件_第6张图片

新建操作:

Ubuntu zabbix配置报警邮件_第7张图片
Ubuntu zabbix配置报警邮件_第8张图片
Ubuntu zabbix配置报警邮件_第9张图片

新建操作就是通过何种方式将消息发送给谁,其它选项默认。

添加恢复操作:

Ubuntu zabbix配置报警邮件_第10张图片

添加后的动作:

Ubuntu zabbix配置报警邮件_第11张图片


5.4测试邮件告警

新增告警项,在agent端/home文件系统使用dd命令创建文件,将文件系统使用率提升至90%以上以触发告警:

[root@zabbix-agent home]# dd if=/dev/zero of=test bs=1M count=1950

用dd命令生成一个1950M的test文件,使/home使用率告警。

Ubuntu zabbix配置报警邮件_第12张图片

触发邮件告警:

Ubuntu zabbix配置报警邮件_第13张图片
Ubuntu zabbix配置报警邮件_第14张图片

如果邮件以文本方式发送,就不需要做如下操作;

发现邮件以附件方式发送,显示不正常,修改邮件发送脚本。

安装dos2unix转换工具:

[root@zabbix-server ~]# yum -y install dos2unix

编辑发送脚本:

[root@zabbix-server ~]# cd /etc/zabbix/alertscripts

[root@zabbix-server alertscripts]# touch mailtmp.txt && chmod 777 mailtmp.txt

[root@zabbix-server ~]# chown -R zabbix:zabbix /etc/zabbix/alertscripts/

[root@zabbix-server alertscripts]# more mail.sh

#!/bin/bash

FILE=/etc/zabbix/alertscripts/mailtmp.txt

echo "$3" >$FILE

dos2unix -k $FILE

cat $FILE|/bin/mail -s "$2" $1

注意:dos2unix命令执行的时候会产生临时文件,所以要有写的权限,故应修改alertscripts目录属主,不然测试过程中会报错:‘dos2unix: Failed to open temporary output file: 权限不够’。

Ubuntu zabbix配置报警邮件_第15张图片

发现正文不再以附件形式显示。

查看告警日志:

Ubuntu zabbix配置报警邮件_第16张图片

至此邮件告警配置完成。


邮件告警内容可选属性:

默认接收人:【故障】服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障

默认信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}

事件ID:{EVENT.ID}


恢复信息: 这个是当报警回复正常发送邮件的内容. 这些变量都是系统定义好.你可以引用 也可以自己定义变量.

恢复主题:【恢复】 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:

事件ID:{EVENT.ID}

效果

Ubuntu zabbix配置报警邮件_第17张图片

你可能感兴趣的:(Ubuntu zabbix配置报警邮件)