1. 安装mailx 服务 通过mailx 配置好外部SMTP服务器相关信息发送邮件(这里是配置发信的地址):
yum -yinstallmailx
vim /etc/mail.rc增加以下内容:
setbsdcompatsetfrom=test@163.com smtp=smtp.163.com #这里是邮局服务器和SMTP服务器信息,这里使用163的,其他邮箱自行修改一下
setsmtp-auth-user=test@163.com smtp-auth-password=yourpassword #smtp-auth-user自然是指邮局用户,需要写完整地址,然后是密码set
smtp-auth=login
使用命令行测试一下是否配置成功
echo“zabbixtestmail” | mail-s“zabbix”test@163.com
2.创建示警媒介
1.进入【管理】-【示警媒介类型】-【创建媒体类型】
注意我们选择使用脚本方式,名称可自定义,脚本名称设定需要和以后创建的脚本相同,这里还需要添加参数,否则无法接受到系统传递的信息进行发送:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2.创建用户接收邮箱:
【管理】-【用户】-选择对应的用户默认Admin -切换到【示警媒介】选项卡-类型处选择为刚才我们创建的示警媒介名称,收件人填写为需要接收邮件的地址
3.创建触发动作:
【组态】-【动作】-【创建动作】
名称:Action-Email
默认接收人:Problem:{TRIGGER.NAME}
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复主旨:Recover:{TRIGGER.NAME}
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
注意: 这里改了图片里面的默认接收人和恢复主旨,之前的太长邮件显示不全。还有:设置后不要点击【添加】,这里点击更新是无法保存的,切换到【操作】选项卡
添加用户,按照下图设置勾选即可。
四.创建邮件发送脚本:
1.先查看一下/usr/local/etc/zabbix中的AlertScriptsPath是否已经指定了,这里是指定zabbix程序调用脚本的目录,设置为:
AlertScriptsPath=/usr/local/share/zabbix/alertscripts
2.在该目录/usr/local/share/zabbix/alertscripts下创建脚本文件
vim sendmail.sh
#!/bin/bash
file=/tmp/zabbix_mail.txt
echo"$3">$file
dos2unix -k$file
/bin/mail-s"$2"$1<$file
# echo "$3" | mail -s "$2" $1 #如果发送邮件完全是英文的,可以只使用这一条
:wq保存退出
设置权限以及所属用户:
chown zabbix.zabbix /usr/local/share/zabbix/alertscripts/sendmail.sh
chmod +x /usr/local/share/zabbix/alertscripts/sendmail.sh
yum install dos2unix -y
注:使用dos2unix工具是为解决zabbix发送邮件出现乱码和收到的邮件是*.bin的情况。#$3 代表邮件内容,也就是对应参数{ALERT.MESSAGE}
#$2 代表邮件主题,也就是对应参数{ALERT.SUBJECT}
#$1 代表收件人,也就是对应参数{ALERT.SENDTO}