zabbix配置发送报警邮件

Linux系统版本:CentOS7.3

下载mailx:

http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2

[root@vm-zabbix ~]# rpm -qa |grep mailx
mailx-12.4-8.el6_6.x86_64

查看mailx软件版本

[root@vm-zabbix ~]# mailx -V
12.4 7/29/08

配置zabbix服务端邮件地址

[root@vm-zabbix ~]# tail -3 /etc/mail.rc 
set from=[email protected] smtp=smtp.sina.net
set smtp-auth-user=[email protected] smtp-auth-password=123456
set smtp-auth=login

使用mailx测试发送邮件

echo "zabbix test mail" | mailx -s "Test-mail" [email protected] ---查看自己126邮箱是否有此封测试邮件。

创建media类型

扫描二维码关注公众号,回复: 3950036 查看本文章

设置用户报警邮箱

在web界面配置zabbix动作Action选项

故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!

告警主机:{HOSTNAME1},IP地址:{HOST.CONN}

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

告警等级:{TRIGGER.SEVERITY}

告警信息:{TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

恢复:{TRIGGER.STATUS},服务器:{HOSTNAME1}已经恢复!:{TRIGGER.NAME}    

 告警主机:{HOSTNAME1} ,IP地址:{HOST.CONN}

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

告警等级:{TRIGGER.SEVERITY}

告警信息:{TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

接着配置Operations选项

编写sendmail.sh脚本

[root@vm-zabbix ~]# cd /yc/usr/local/zabbix/share/zabbix/alertscripts/

[root@vm-zabbix alertscripts]# cat sendmail.sh 
#!/bin/bash
echo "$3" |mailx -"$2" $1

*注释:其中$3为报警邮件内容,$2为报警邮件主题,$1为用户接收邮箱

[root@vm-zabbix alertscripts]# chown -R zabbix.zabbix sendmail.sh

[root@vm-zabbix alertscripts]# chmod +x sendmail.sh

测试,停掉任意一台机器的zabbix_agentd,过几分钟查看126邮箱中是否存在报警邮件。

附:python邮件发送脚本。

复制代码

[root@GXB-CTRLCENTER alertscripts]# cat sendmail.py 
#!/usr/bin/python
#coding:utf-8 
 
import smtplib
from email.mime.text import MIMEText
import sys 
reload(sys)
sys.setdefaultencoding('utf8')
#邮箱服务器地址
mail_host = 'smtp.exmail.qq.com'
#邮箱用户名
mail_user = '[email protected]'
#邮箱密码
mail_pass = 'Z123456'
mail_postfix = 'xkops.com'

def send_mail(to_list,subject,content):
    me = mail_user+"<"+mail_user+"@"+mail_postfix+">"
    msg = MIMEText(content,_charset='utf-8')
    if not isinstance(subject,unicode):
        subject = unicode(subject)
    msg['Subject'] = subject
    msg['From'] = me
    msg['to'] = to_list 
 
    try:
        s = smtplib.SMTP()
        s.connect(mail_host)
        s.login(mail_user,mail_pass)
        s.sendmail(me,to_list,msg.as_string())
        s.close()
        return True
    except Exception,e:
        print str(e)
        return False
 
if __name__ == "__main__":
    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

猜你喜欢

转载自blog.csdn.net/ccy19910925/article/details/81389971