码迷,mamicode.com
首页 > 其他好文 > 详细

配置邮件告警

时间:2018-12-27 03:08:05      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:src   监控   aaa   也会   sha   from   zabbix   还需要   smtplib   

使用163或者QQ邮箱发告警邮件
首先登录你的163邮箱,设置开启POP3、IMAP、SMTP服务
开启并记录授权码
然后到监控中心设置邮件告警 “
管理”,“报警媒介类型”,“创建媒体类型” {ALERT.SENDTO} ,{ALERT.SUBJECT},{ALERT.MESSAGE}

创建报警媒介:
技术分享图片
名称:自定义。
脚本名称:自定义
类型:选择脚本
{ALERT.SENDTO} #收件人邮箱地址
{ALERT.SUBJECT} #主题
{ALERT.MESSAGE} #内容
这三个分布在py的脚本里。
技术分享图片
配置告警
创建报警脚本mail.py
脚本的路径是可以在配置文件里自定义的。
vi /etc/zabbix/zabbix_server.confAlertScriptsPath=/usr/lib/zabbix/alertscripts #搜索此行,/usr/lib/zabbix/alertscripts就是脚本文件在服务端所存在的路径。所以mail.py需要放到此目录下。

vim /usr/lib/zabbix/alertscripts/mail.py #配置mail.py的脚本

#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding(‘utf8‘)
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from  subprocess import *

def sendqqmail(username,password,mailfrom,mailto,subject,content):
    gserver = ‘smtp.ym.163.com‘    #定义发邮件的服务器
    gport = 25    #smtp的端口

    try:
        # msg = MIMEText(unicode(content).encode(‘utf-8‘)) //如果发送的邮件有乱码,可以尝试把这行改成如下:
        msg = MIMEText(content,‘plan‘,‘utf-8‘)
        msg[‘from‘] = mailfrom
        msg[‘to‘] = mailto
        msg[‘Reply-To‘] = mailfrom
        msg[‘Subject‘] = subject

        smtp = smtplib.SMTP(gserver, gport)
        smtp.set_debuglevel(0)
        smtp.ehlo()
        smtp.login(username,password)

        smtp.sendmail(mailfrom, mailto, msg.as_string())
        smtp.close()
    except Exception,err:
        print "Send mail failed. Error: %s" % err

def main():
    to=sys.argv[1]
    subject=sys.argv[2]
    content=sys.argv[3]
##定义QQ邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开,否则你会死的很惨)
    sendqqmail(‘1234567@qq.com‘,‘aaaaaaaaaa‘,‘1234567@qq.com‘,to,subject,content)

if __name__ == "__main__":
    main()

#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"

chmod 755 /usr/lib/zabbix/alertscripts/mail.py #修改权限。
测试:
python /usr/lib/zabbix/alertscripts/mail.py 1234567@qq.com "主题" "内容",这步判断,脚本没问题。
创建一个接受告警邮件的用户,“管理”,“用户”,“创建用户”,这个用户是用来接收邮件的,所以,就需要创建用户,而创建用户的前提就是需要创建一个用户组。

创建用户群组。
技术分享图片
创建用户。
技术分享图片
添加报警接收邮箱。
技术分享图片
需要注意的是,权限下面,有个所有组,权限无,当这样设置时,也是会收不到邮件的。而解决办法就是到用户组里面去增加权限。
技术分享图片
下面为添加权限的步骤:
技术分享图片
添加权限为读写,然后点击添加
技术分享图片

再次查看之前创建用户的权限,就是读写了。
技术分享图片
当用户创建完成之后,还需要创建动作。当配置好触发器之后,当触发了这个规则,我是发邮件,还是别的,定义行为
“维护状态非在维护”,维护是指,客户端的服务,有时候是处于维护的状态,类似“服务重启”的时间段内,就是维护,而这个时间段内,是不需要报警的。
技术分享图片
当处于>=未分类的时候,就是指的所有,所有的报警都法邮件。
技术分享图片
点击操作,默认信息,可以删除,将下面的复制进去。。

HOST:{HOST.NAME} {HOST.IP} #agent里面定义的主机名,比如Jumpserver
TIME:{EVENT.DATE} {EVENT.TIME} #发生的日期和时间
LEVEL:{TRIGGER.SEVERITY} #定义的示警度。
NAME:{TRIGGER.NAME} #定义的键值,是哪个触发器,触发的。
messages:{ITEM.NAME}:{ITEM.VALUE} #发生告警时,会出现什么状态码。
ID:{EVENT.ID} #时间的id
技术分享图片
点击新的之后,会出现如下提示,
技术分享图片
恢复操作,是指当服务转态变为ok之后,也会发送邮件,也是删除之前的默认信息,再复制下面的。

HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
技术分享图片
到此处,报警的配置,已设置完毕。

配置邮件告警

标签:src   监控   aaa   也会   sha   from   zabbix   还需要   smtplib   

原文地址:http://blog.51cto.com/13451715/2335765

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!