zabbix环境搭建
zabbix设置163邮箱报警
zabbix设置QQ邮箱告警
- 背景
- 实现(可以参考163邮箱设置告警)
- 首先在QQ邮箱中,开启POP3/SMTP服务 来获得授权码,QQ邮箱—>设置—>账户—>开启POP3/SMTP服务
- 进入到zabbix的web界面——> 管理——> 报警媒介类型——>创建媒体类型
代码语言:javascript
复制 {ALERT.SENDTO} 表示收件人
{ALERT.SUBJECT} 表示邮件主题
{ALERT.MESSAGE} 表示邮件内容
- 在服务端创建脚本email.py,QQ邮箱告警注意点
代码语言:javascript
复制[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('781851883@qq.com','mjjqsasaqxfwbcdj','781851883@qq.com',to,subject,content)
if __name__ == "__main__":
main()
#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"
- 更改mail.py脚本的权限(很重要!!!),否则就会无法告警
代码语言:javascript
复制[root@hf-01 ~]# chmod 755 /usr/lib/zabbix/alertscripts/qqmail.py
[root@hf-01 ~]#
- 更改完端口号后,再来发送邮件,会发现没有报错,表示发送成功
代码语言:javascript
复制[root@hf-01 ~]# cd /usr/lib/zabbix/alertscripts/
[root@hf-01 alertscripts]# python qqmail.py 781851883@qq.com "ssss" "dddd"
[root@hf-01 alertscripts]#
- 查看QQ邮箱,会看到发送的邮件
- 创建一个接受告警邮件的用户(用户是用来接收邮件的),在创建用户的前提是创建一个用户组,用户组可以使用已经存在的, 所以这里直接创建用户,管理-->用户-->创建用户
- 再给刚刚的用户设置邮箱,管理-->用户-->报警媒介
- 更改用户的权限(默认用户是无),需要去修改群组,给予权限,管理-->用户群组
- 设置动作,配置-->动作-->创建动作
- 配置-->动作-->操作
- 默认信息:直接删除原有的(比较乱),粘贴下面的内容
- 维护期间暂停操作:选择打勾(若不打对勾也可以,因为在动作的条件里定义了)
- 配置-->动作-->恢复操作
- 默认信息:直接删除原有的(比较乱),粘贴下面的内容(粘贴内容和操作里面复制进去的信息是相同的)
- 最后确定 添加
- 测试告警和163邮箱一样,163邮箱测试告警