• zabbix配置发送报警邮件


    配置邮件分为两种情况:

    第一种:使用远端邮件服务器发送报警邮件
    Linux系统版本:CentOS6.5-64

    下载mailx:

    安装邮件发送软件mailx(CentOS6.5自带mailx软件包为12.4,故无需下载源码安装)
    [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=zabbix@mail.xkops.com smtp=smtp.sina.net
    set smtp-auth-user=zabbix@mail.xkops.com smtp-auth-password=123456
    set smtp-auth=login
    使用mailx测试发送邮件
    echo "zabbix test mail" | mailx -s "Test-mail" handetian@126.com ---查看自己126邮箱是否有此封测试邮件。
    创建media类型
    设置用户报警邮箱
    在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 = 'zabbix@xkops.com'
    #邮箱密码
    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])
     
    第二种:使用zabbix服务器本地邮件服务器发送报警邮件(待完善)
  • 相关阅读:
    贝云cms内容管理系统(thinkphp5.0开源cms管理系统)
    NGINX.conf配置文件支持pathinfo
    阿里云视频直播PHPSDK接入教程
    如何在Nginx下配置PHP程序环境
    tomcat 内存参数优化示例
    12组免费的CSS3按钮强力推荐 狼人:
    9款jQuery插件为你的网站增加亮点 狼人:
    TUP第11期:腾讯、豆瓣精英实例诠释互联网研发之道 狼人:
    【TUP第11期】腾讯黄朝兴:浅谈客户端架构 狼人:
    Linus Torvalds:回顾Linux20年 狼人:
  • 原文地址:https://www.cnblogs.com/xkops/p/5457443.html
Copyright © 2020-2023  润新知