为了账号安全,请及时绑定邮箱和手机立即绑定

zabbix监控之同时向多人邮件报警

标签:
Python


zabbix做为一款监控软件,报警是必不可少的,该文章主要介绍zabbix向多人邮件报警的配置过程。

 

zabbix邮件报警配置步骤说明:

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

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

3、关联脚本名称

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

5、配置报警触发器

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

7、邮件接收测试

 

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

发送邮件有很多方法,自己写脚本的话,只要遵循zabbix传参的格式即可。

zabbix发送邮件传参格式:./sendmail.py 收件人  标题  邮件内容

python发送邮件脚本如下:

cat /usr/local/zabbix/share/zabbix/alertscripts/sendmail_qs.py

#!/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即可。

 

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

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下的名称一致。

wKiom1PyL8HCvKoxAAG6A110IL4944.jpg

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

【zabbix主面板à管理à用户à点击用户】

wKioL1PyMNmh43vGAAHc8MYsLQQ203.jpg

配置用户对应的邮箱

wKioL1PyMY_D8HMeAADko0AJD4o971.jpg

  

5、配置报警触发器

【zabbix主面板à组态à动作à创建动作】  配置报警信息

wKiom1PyL8PRvCBZAAMSWbcmK9Q825.jpg

 

配置报警触发条件

wKioL1PyMN3iQguLAAICe_vaWu0045.jpg

 

配置触发条件后的接收用户

wKiom1PyL8bRaeD_AAGhrBMCNHI272.jpg

  

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

首先在【管理】à【用户】à创建普通用户

然后把普通用户提升为超级管理员。如果不提升为超级管理员,普通用户是没有发送邮件的权限的!

wKioL1PyMN-CLpy1AAGwXJRr3ug580.jpg

 

在【组态】à【动作】中添加新的接收用户。

wKiom1PyL8iDMUh4AAHGhYxlhhU815.jpg

  

7、邮件接收测试

   down掉client节点的zabbix_agentd进程。等待邮件报警,默认agent发邮件是5分钟,即5次没有获取到数据则报警。

   经测试,zabbix给多个人员发送邮件时,并不是采取并发邮件的方式。而是执行两次发送邮件的脚本,即每一次一个收件人,而不是一次性有多个收件人。

   所以若收件人数量多的话,直接把收件人全部写到上述python发邮件脚本中,即不调用zabbix传过来的收件人,缺点就是收件人变更时也需要手动来改python脚本,而不是改zabbix用户配置。

 

wKiom1PyL8nh5JyPAAEiYU1jo10645.jpg

 

wKioL1PyMOKCcr9fAAGTQPp-TZ8101.jpg

 

 

到此zabbix多人邮件报警配置完成。

©著作权归作者所有:来自51CTO博客作者杨云1028的原创作品,如需转载,请与作者联系,否则将追究法律责任

pythonzabbix邮件报警Nagios|Zabbix


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消