实验目的:
监控httpd服务是否正常工作
如果没有工作,发送报警邮件给相应用户,并执行远程命令尝试重启httpd服务
httpd状态恢复正常后,发送Recovery邮件给相应用户
邮件脚本使用的是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
原文:http://362475097.blog.51cto.com/1808795/1894298