一,概述
在运维当中,服务的监控是很重要的,服务器自身监控之外,就是服务状态的监控。之前搭建的haproxy+keepalived四层负载均衡架构中,keepalived是提供了一个notify_让管理员设置,在状态发生转移之后进行什么样的提醒。今天写一个简单的邮件通知来提醒管理员。
二,程序
邮件提醒[Python实现]
#-*-coding:UTF-8-*-
#author:LingYunyi
#email:lingyunyi888@gmail.com
#date:2012-08-09
#filename:gmail.py(注意:文件名和系统默认的模块名不能相同,报错ImportError: No module named)#当Haproxy进程启动的时候,发送提醒邮件
#提醒邮件设置在keepalived的notify_ 字段上面,当状态进行转移时会自动调用程序,实现也可以用shell
#import sys
#sys.path.append('c:\\pytho27\\lib\\smtplib.py')
#print sys.pathimport smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import sys
smtp_server = 'smtp.qq.com'msg = MIMEMultipart('alternative')
msg['Subject'] = "Haproxy提醒"
msg['From'] = '176188306@qq.com'
msg['To'] = '176188306@qq.com'
if sys.argv[1]!="master" and sys.argv[1]!="backup" and sys.argv[1]!="fault":
sys.exit()
else:
notify_type=sys.argv[1]
text = "Hi!Haproxy 进程被激活,请注意哦!"
html = """\
<html>
<head></head>
<body>
<p>请注意!</p>
您好,管理员!<br>
<font color=red>您的Haproxy代理服务器+notify_type+进程已经被激活,请注意!</font>
</body>
</html>
"""part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)#message = MIMEText('Haproxy进程被激活,请注意!')
#msg['Subject'] = 'The contents of %s' % message
#msg['mailContentContainer'] = 'Haproxy进程被激活,请注意!'smtp = smtplib.SMTP()
smtp.connect(smtp_server)
smtp.login("176188306@qq.com","111111")
smtp.set_debuglevel(1)
smtp.sendmail("176188306@qq.com","176188306@qq.com",msg.as_string())
smtp.quit()
print 'send mail successfully'
三,使用方法
在keepalived.conf中添加
#状态通知四,其它方法也可以。主要是对服务的监控,其中我们用了sys.argv来获取命令行参数。这个具体使用可以见python手册。
notify_master "/etc/keepalived/gmail.py master"
notify_backup "/etc/keepalived/gmail.py backup"
notify_fault "/etc/keepalived/gmail.py fault"
联系客服