您的位置:首页 > 理论基础 > 计算机网络

监控服务器网络是否正常

2016-02-18 15:18 686 查看
功能:监控服务器网络是否正常(比如网线松动)或者服务器启动是否正常,如果服务器异常,邮件通知。

#encoding:utf-8
'''
Created on 2016-2-18

@author: yuanyuan
'''
from email.mime.text import MIMEText
from email.utils import formatdate
import smtplib
import os
import time

class Email:
def __init__(self, from_addr, from_password, to_addrs):
self.from_addr = from_addr
self.from_password = from_password
self.to_addrs = to_addrs

def send_mail(self, message):
smtp_server = 'smtp.sihuatech.com'
# 邮件正文,html格式
html = '<html><body><h2><font color="#FF0000">' + str(message) + '</font></h2></body></html>'
msg = MIMEText(html, 'html', 'utf-8')
# 发件人
msg['From'] = self.from_addr
# 收件人
msg['To'] = ";".join(self.to_addrs)
# 主题
msg['Subject'] = message[9:23] + "服务器异常"
# 时间
msg['Date'] = formatdate(localtime=True)
try:
server = smtplib.SMTP(smtp_server, 25)
server.login(self.from_addr, self.from_password)
server.sendmail(self.from_addr, self.to_addrs, msg.as_string())
except Exception, e:
print e
finally:
server.close()

if __name__ == '__main__':
from_addr = 'fayuan.peng@sihuatech.com'
from_password = '1qaz@WSX'
to_addrs = ['fayuan.peng@sihuatech.com', 'chang.lu@sihuatech.com']
serviers = ['10.222.138.210', '10.222.138.232', '10.222.138.233', '10.222.138.128', '10.222.138.118']

email_realtimeMonotor = Email(from_addr, from_password, to_addrs)

while True:
for servier in serviers:
response_message = os.system('ping -c 4 ' + servier)
if response_message > 0:
print '服务器异常,需要发送邮件'
if servier == "10.222.138.210":
email_realtimeMonotor.send_mail("真实机10.222.138.210异常,可能导致虚拟机10.222.138.221、10.222.138.223、10.222.138.225、10.222.138.227、10.222.138.228、10.222.138.229、10.222.138.230、10.222.138.231无法访问,请检查网线是否松动或者机器是否正常启动")
elif servier == "10.222.138.232":
email_realtimeMonotor.send_mail("真实机10.222.138.232异常,可能导致虚拟机10.222.138.238、10.222.138.243、10.222.138.247、10.222.138.248无法访问,请检查网线是否松动或者机器是否正常启动")
elif servier == "10.222.138.233":
email_realtimeMonotor.send_mail("真实机10.222.138.233异常,可能导致虚拟机10.222.138.236、10.222.138.245、10.222.138.246无法访问,请检查网线是否松动或者机器是否正常启动")
elif servier == "10.222.138.128":
email_realtimeMonotor.send_mail("真实机10.222.138.128异常,可能导致虚拟机10.222.138.110、10.222.138.111、10.222.138.112、10.222.138.113、10.222.138.116、10.222.138.117、10.222.138.123、10.222.138.124无法访问,请检查网线是否松动或者机器是否正常启动")
elif servier == "10.222.138.118":
email_realtimeMonotor.send_mail("真实机10.222.138.128异常,请检查网线是否松动或者机器是否正常启动")
else:
print '服务器正常,无需发送邮件'
time.sleep(5)
time.sleep(600)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: