首页 > 其他 > 详细

zabbix——邮件报警功能

时间:2017-01-26 23:22:08      阅读:312      评论:0      收藏:0      [点我收藏+]

实验目的:

  1. 监控httpd服务是否正常工作

  2. 如果没有工作,发送报警邮件给相应用户,并执行远程命令尝试重启httpd服务

  3. httpd状态恢复正常后,发送Recovery邮件给相应用户

  4. 邮件脚本使用的是python语言

 

 

编写报警邮件脚本的方法:

方法一,为不同的管理组编写脚本

 

如果多个用户绑定同一个公用邮箱,脚本中指定公用邮箱地址即可。如果用户使用自己的邮箱,脚本中要定义好所有用户的邮箱

 

方法二,编写统一的脚本

 

通过$1参数获取到用户的邮箱地址。使用此方法,需要给每个用户分配一个zabbix账号,并绑定Media Type

 

实验中使用的是方法二

 

 

一、编辑脚本:

vim /etc/zabbix/zabbix_server.conf

技术分享

 

vim /usr/lib/zabbix/alertscripts/alertMail.py
//编辑脚本


 

#!/usr/bin/env python
#coding: utf-8
 
import smtplib
from email.mime.text import MIMEText
import sys
 
def sendMail(toEmail,subject,message):
# 定义邮件发送
 smtpHost = ‘smtp.xxx.xxx‘
 #smtp服务器
 fromEmail = ‘xxx@xxx‘
# 定义发件人
 toEmail = toEmail
 passwd = ‘xxxxx‘
 # 发件人密码
 msg = MIMEText(message,‘plain‘,‘utf-8‘)
 msg[‘Subject‘] = subject
 msg[‘From‘] = fromEmail
 msg[‘To‘] = toEmail
 smtp_server = smtplib.SMTP(smtpHost,25)
 smtp_server.login(fromEmail,passwd)
 smtp_server.sendmail(fromEmail,toEmail,msg.as_string())
 smtp_server.quit()
 
if __name__ == ‘__main__‘:
 toEmail = sys.argv[1]+"@qq.com"
 # 补全用户邮箱
 sendMail(toEmail,sys.argv[2],sys.argv[3])


 

 

chmod +x /usr/lib/zabbix/alertscripts/alertMail.py
//添加执行权限


 

service zabbix-server restart
//重启服务以读取到新添加的脚本


 

 

二、添加Media Type:

技术分享

 

技术分享

 

 

三、创建用户,绑定Media Type:

技术分享

 

技术分享

 

技术分享

 

技术分享

 

 

四、配置Action:

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

技术分享

 

 

效果:

service httpd stop
//在被监控主机上执行,关闭httpd服务


技术分享

 

技术分享

 

技术分享

 

 

额外测试:

修改Action

技术分享

 

技术分享

 


zabbix——邮件报警功能

原文:http://362475097.blog.51cto.com/1808795/1894298

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!