zabbix设置QQ邮箱告警

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

zabbix环境搭建

zabbix设置163邮箱报警

zabbix设置QQ邮箱告警

  • 背景
    • 设置QQ邮箱告警
  • 实现(可以参考163邮箱设置告警)
  1. 首先在QQ邮箱中,开启POP3/SMTP服务 来获得授权码,QQ邮箱—>设置—>账户—>开启POP3/SMTP服务
  2. 进入到zabbix的web界面——> 管理——> 报警媒介类型——>创建媒体类型

zabbix设置QQ邮箱告警_第1张图片

  • 在py脚本参数下,三个参数都分布在py的脚本里
    • 参数的顺序不能乱
 {ALERT.SENDTO} 表示收件人
   {ALERT.SUBJECT} 表示邮件主题
   {ALERT.MESSAGE} 表示邮件内容
  1. 在服务端创建脚本email.py,QQ邮箱告警注意点
[root@hf-01 alertscripts]# cat /usr/lib/zabbix/alertscripts/qqmail.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.qq.com'
##定义发邮件类型
    gport = 465
    try:
        msg = MIMEText(unicode(content).encode('utf-8'))
        msg['from'] = mailfrom
        msg['to'] = mailto
        msg['Reply-To'] = mailfrom
        msg['Subject'] = subject
	#ssl连接,把下面改为smtp = smtplib.SMTP_SSL(gserver, gport)
        smtp = smtplib.SMTP_SSL(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('[email protected]','mjjqsasaqxfwbcdj','[email protected]',to,subject,content)

if __name__ == "__main__":
    main()
    
    
#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"
  1. 更改mail.py脚本的权限(很重要!!!),否则就会无法告警
[root@hf-01 ~]# chmod 755 /usr/lib/zabbix/alertscripts/qqmail.py
[root@hf-01 ~]# 
  1. 更改完端口号后,再来发送邮件,会发现没有报错,表示发送成功
[root@hf-01 ~]# cd /usr/lib/zabbix/alertscripts/
[root@hf-01 alertscripts]# python qqmail.py [email protected] "ssss" "dddd"
[root@hf-01 alertscripts]# 
  1. 查看QQ邮箱,会看到发送的邮件

zabbix设置QQ邮箱告警_第2张图片

  1. 创建一个接受告警邮件的用户(用户是用来接收邮件的),在创建用户的前提是创建一个用户组,用户组可以使用已经存在的, 所以这里直接创建用户,管理-->用户-->创建用户

zabbix设置QQ邮箱告警_第3张图片

  1. 再给刚刚的用户设置邮箱,管理-->用户-->报警媒介

zabbix设置QQ邮箱告警_第4张图片

  1. 更改用户的权限(默认用户是无),需要去修改群组,给予权限,管理-->用户群组

zabbix设置QQ邮箱告警_第5张图片

  1. 设置动作,配置-->动作-->创建动作

zabbix设置QQ邮箱告警_第6张图片

  • 配置-->动作-->操作
    • 默认信息:直接删除原有的(比较乱),粘贴下面的内容
    • 维护期间暂停操作:选择打勾(若不打对勾也可以,因为在动作的条件里定义了)

zabbix设置QQ邮箱告警_第7张图片

  • 配置-->动作-->恢复操作
    • 默认信息:直接删除原有的(比较乱),粘贴下面的内容(粘贴内容和操作里面复制进去的信息是相同的)

zabbix设置QQ邮箱告警_第8张图片

  • 最后确定 添加
  1. 测试告警和163邮箱一样,163邮箱测试告警

转载于:https://my.oschina.net/u/3707314/blog/1618460

你可能感兴趣的:(运维,python)