Zabbix邮件报警脚本

Zabbix安装教程请移步 Zabbix Install
zabbix邮件报警配置步骤说明:

1、准备一个发送邮件的脚本

2、修改zabbix配置文件中指定的脚本路径

3、关联脚本名称

4、用户设置收件邮箱与报警时间

5、配置报警触发器

6、添加多个用户,同时给多个人发邮件

7、邮件接收测试

1、发送邮件的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/python
# -*- coding:utf-8 -*-
# author:Strong It
# send zabbix message by email,usage: ./zabbix_email.py 收件人 标题 邮件内容

import smtplib
import sys
import time
from email.MIMEText import MIMEText
from email.Header import Header
from email.utils import parseaddr, formataddr
from email import encoders
reload(sys)
sys.setdefaultencoding('utf8')
current_time=time.strftime('%Y-%m-%d %H:%M',time.localtime(time.time()))

mail_host ='smtp.exmail.qq.com'
mail_user ='Strong It@*****.com'
mail_pwd = '*****'

#地址格式化函数
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr(( \
Header(name, 'utf-8').encode(), \
addr.encode('utf-8') if isinstance(addr, unicode) else addr))

#发送邮件函数
def send_email( content,mailto, get_sub ):
msg = MIMEText( content,_subtype = 'plain', _charset = 'utf-8')
#msg = MIMEText(content,_subtype='plain',_charset='gb2312')
msg['From'] = _format_addr(u'Zabbix监控 <%s>' % mail_user)
msg['Subject'] = _format_addr(u'报警信息 <%s>' % get_sub)
msg['To'] = ",".join( mailto ) #多邮件账号格式用,分开
try:
s = smtplib.SMTP_SSL( mail_host, 465)
#s = smtplib.SMTP( mail_host, 25)
s.login(mail_user, mail_pwd )
s.sendmail(mail_user, mailto,msg.as_string())
s.close()
except Exception as e:
return 'Exception: ', e

#注意以下格式对齐
title = sys.argv[2]
cont = """
---------------------------------
摘要:
%s
---------------------------------
时间: %s
---------------------------------

"""%(sys.argv[3],current_time)


to_list = [
'%s'%(sys.argv[1]),
]

#发送邮件的日志记录到/tmp/sendmail.log
with open('/tmp/sendmail_qs.log','ab') as f:
f.write('%s Receive address: %s Title: %s \n'%(current_time,sys.argv[1],title))

if __name__ == '__main__':
send_email( cont, to_list, title)

脚本名称:zabbix_email.py,使用格式:./zabbix_email.py 收件人 标题 邮件内容

2、更改zabbix配置文件的脚本路径

1
2
3
4
[root@zabbix alertscripts]# cat /etc/zabbix/zabbix_server.conf |grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

3、关联脚本名称

【Administration –> Media types】

4、用户设置收件邮箱与报警时间

【Administration –> Users】

5、配置报警触发器

【Configuration –> Actions】

6、添加多个用户,同时给多个人发邮件

【Administration –> Users】

7、接收邮件报警测试

至此,Zabbix邮件告警已完成。