zabbix做为一款监控软件,报警是必不可少的,该文章主要介绍zabbix向多人邮件报警的配置过程。zabbix邮件报警配置步骤说明:1、准备一个发送邮件的脚本2、修改zabbix配置文件中指定的脚本路径3、关联脚本名称4、用户设置收件邮箱与报警时间...
zabbix做为一款监控软件,报警是必不可少的,该文章主要介绍zabbix向多人邮件报警的配置过程。
zabbix邮件报警配置步骤说明:
1、 准备一个发送邮件的脚本
2、 修改zabbix配置文件中指定的脚本路径
3、关联脚本名称
4、用户设置收件邮箱与报警时间
5、配置报警触发器
6、添加多个用户,同时给多个人发邮件
7、邮件接收测试
发送邮件有很多方法,自己写脚本的话,只要遵循zabbix传参的格式即可。
zabbix发送邮件传参格式:./sendmail.py 收件人 标题 邮件内容
python发送邮件脚本如下:
cat /usr/local/zabbix/share/zabbix/alertscripts/sendmail_qs.py
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 | #!/usr/bin/python # -*- coding:utf-8 -*- import smtplib import sys from email.mime.text import MIMEText import time #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 = 'yangrong@qssec.com' mail_pwd = '******' def send_email( content,mailto, get_sub ): #msg = MIMEText( content.encode('utf8'),_subtype = 'html', _charset = 'utf8') msg = MIMEText(content,_subtype = 'plain' ,_charset = 'gb2312' ) msg[ 'From' ] = mail_user msg[ 'Subject' ] = get_sub msg[ 'To' ] = "," .join( mailto ) try : s = smtplib.SMTP_SSL( mail_host, 465 ) s.login(mail_user, mail_pwd ) s.sendmail(mail_user, mailto,msg.as_string()) s.close() except Exception as e: print 'Exception: ' , e title = sys.argv[ 2 ] cont = """ --------------------------------- 摘要: %s --------------------------------- 时间: %s --------------------------------- """ % (sys.argv[ 3 ],current_time) to_list = [ '%s' % (sys.argv[ 1 ]), ] with open ( '/tmp/sendmail_qs.log' , 'ab' ) as f: f.write( '%s Receive address: %s Title: %s \n' % (current_time,sys.argv[ 1 ],title)) send_email( cont, to_list,title) |
#该python脚本最后把发送邮件的日志记录到/tmp/sendmail.log中。
#如若自己使用,修改上方mail_host,mail_user,mail_pwd即可。
echo 'AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts' >>/usr/local/zabbix/etc/zabbix_server.conf
/etc/init.d/zabbix_serverrestart
本例安装zabbix安装目录在/usr/local/zabbix,不同路径手动修改即可。
3、关联脚本名称
【zabbix主面板à管理à示警媒介类型à创建媒体类型】
输入脚本名称和/usr/local/zabbix/share/zabbix/alertscripts下的名称一致。
【zabbix主面板à管理à用户à点击用户】
配置用户对应的邮箱
【zabbix主面板à组态à动作à创建动作】 配置报警信息
配置报警触发条件
配置触发条件后的接收用户
首先在【管理】à【用户】à创建普通用户
然后把普通用户提升为超级管理员。如果不提升为超级管理员,普通用户是没有发送邮件的权限的!
在【组态】à【动作】中添加新的接收用户。
down掉client节点的zabbix_agentd进程。等待邮件报警,默认agent发邮件是5分钟,即5次没有获取到数据则报警。
经测试,zabbix给多个人员发送邮件时,并不是采取并发邮件的方式。而是执行两次发送邮件的脚本,即每一次一个收件人,而不是一次性有多个收件人。
所以若收件人数量多的话,直接把收件人全部写到上述python发邮件脚本中,即不调用zabbix传过来的收件人,缺点就是收件人变更时也需要手动来改python脚本,而不是改zabbix用户配置。
到此zabbix多人邮件报警配置完成。
全文详见:http://xpxw.com/?id=22