配置邮件告警
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置邮件告警相关的知识,希望对你有一定的参考价值。
使用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(‘[email protected]‘,‘aaaaaaaaaa‘,‘[email protected]‘,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 [email protected] "主题" "内容",这步判断,脚本没问题。
创建一个接受告警邮件的用户,“管理”,“用户”,“创建用户”,这个用户是用来接收邮件的,所以,就需要创建用户,而创建用户的前提就是需要创建一个用户组。
创建用户群组。
创建用户。
添加报警接收邮箱。
需要注意的是,权限下面,有个所有组,权限无,当这样设置时,也是会收不到邮件的。而解决办法就是到用户组里面去增加权限。
下面为添加权限的步骤:
添加权限为读写,然后点击添加
再次查看之前创建用户的权限,就是读写了。
当用户创建完成之后,还需要创建动作。当配置好触发器之后,当触发了这个规则,我是发邮件,还是别的,定义行为
“维护状态非在维护”,维护是指,客户端的服务,有时候是处于维护的状态,类似“服务重启”的时间段内,就是维护,而这个时间段内,是不需要报警的。
当处于>=未分类的时候,就是指的所有,所有的报警都法邮件。
点击操作,默认信息,可以删除,将下面的复制进去。。
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}
到此处,报警的配置,已设置完毕。
以上是关于配置邮件告警的主要内容,如果未能解决你的问题,请参考以下文章