Пример #1
0
def SendMail(type,user_list,item,subitem):
	'''
	邮件通知函数,建立邮件内容并发送给指定用户
	'''
	if type == 'RECOVERNOTIFY':
		mailbody = 'Message level:INFO,'+str(CreateMailBody('RECOVERNOTIFY',item,subitem))
		emailaddrlist = GetUserEmailAddress(user_list)
		for emailaddr in emailaddrlist:
			try:
				notifyByEmail(subject='[INFO]Notify from OSA',content = mailbody,address = emailaddr)
			except Exception as e:
				save_log('ERROR',"send mail fail! ERROR:"+str(e))
	if type == 'STATUS_EXCEPTION':
		mailbody = 'Message level:ERROR,'+str(CreateMailBody('STATUS_EXCEPTION',item,subitem))
		emailaddrlist = GetUserEmailAddress(user_list)
		for emailaddr in emailaddrlist:
			try:
				notifyByEmail(subject='[ERROR]Notify from OSA',content = mailbody,address = emailaddr)
			except Exception as e:
				save_log('ERROR',"send mail fail! ERROR:"+str(e))		
Пример #2
0
def ThreadForEachServer(each_ipinfo,AllUserEmailAddress):
	'''
	子线程入口函数,检测服务器的状态
	'''
	if PortIsAlive(each_ipinfo[1],SOCKET['REMOTE_PORT']):
		if each_ipinfo[3]=='0' or each_ipinfo[4] != '正常':	
			sql="UPDATE osa_ipinfo SET oStatus = '正常',oIsAlive = '1',oIsAliveNum = 0 WHERE id ="+str(each_ipinfo[0])
			row = update(sql)
			CreateAlarmMsg('服务器存活检测',1,each_ipinfo[1],'服务器'+each_ipinfo[1]+"已恢复正常",0)
			for EmailAddress in AllUserEmailAddress:
				try:
					notifyByEmail(subject='[INFO]Notify from OSA',content = "Message level: INFO, Server "+each_ipinfo[1]+"already has recovered!",address = EmailAddress)
				except Exception as e:
					save_log('ERROR','send mail to '+EmailAddress+' failed!! ERROR:'+str(e))
			sys.exit()
		sys.exit()
	else:
		result = Ping(each_ipinfo[1])
		if True == result:
			if each_ipinfo[3]=='0':
				
				oIsAliveNum=int(each_ipinfo[5])
				
				if oIsAliveNum < 2:
					for EmailAddress in AllUserEmailAddress:
						try:
							notifyByEmail(subject='[WARNING]Notify from OSA',content = "Message level: WARNING,Server "+each_ipinfo[1]+":python client service exception now!",address = EmailAddress)
						except Exception as e:
							save_log('ERROR','send mail to '+EmailAddress+' failed!! ERROR:'+str(e))
					oIsAliveNum = oIsAliveNum + 1
					sql = "UPDATE osa_ipinfo SET oStatus = '服务异常',oIsAliveNum="+str(oIsAliveNum)+" WHERE id ="+str(each_ipinfo[0])
					row = update(sql)	
					sys.exit()
				elif oIsAliveNum >= 2:
					sql = "UPDATE osa_ipinfo SET oStatus = '服务异常' WHERE oIp ='"+each_ipinfo[1]+"'"
					row = update(sql)
					sys.exit()
			if each_ipinfo[3] == '1':
				CreateAlarmMsg('服务器存活检测',1,each_ipinfo[1],'服务器'+each_ipinfo[1]+"服务异常",2)
				sql = "UPDATE osa_ipinfo SET oStatus = '服务异常',oIsAlive = '0',oIsAliveNum=1 WHERE id ="+str(each_ipinfo[0])
				row = update(sql)
				for EmailAddress in AllUserEmailAddress:
					try:
						notifyByEmail(subject='[WARNING]Notify from OSA',content="Message level: WARNING,Server "+each_ipinfo[1]+":python client service exception now!",address = EmailAddress)
					except Exception as e:
						save_log('ERROR','send mail to '+EmailAddress+' failed!! ERROR:'+str(e))
				sys.exit()
		elif False == result:
			if  each_ipinfo[3] == '0':
				oIsAliveNum=int(each_ipinfo[5])
				if oIsAliveNum < 2:
					for EmailAddress in AllUserEmailAddress:
						try:
							notifyByEmail(subject='[CRITICAL]Notify from OSA',content  = "Message level: CRITICAL,Server "+each_ipinfo[1]+"doesn't reach!",address = EmailAddress)
						except Exception as e:
							save_log('ERROR','send mail to '+EmailAddress+' failed!! ERROR:'+str(e))
					oIsAliveNum = oIsAliveNum + 1
					sql = "UPDATE osa_ipinfo SET oStatus = '服务器不可达',oIsAliveNum="+str(oIsAliveNum)+" WHERE id ="+str(each_ipinfo[0])
					row = update(sql)
					sys.exit()
				if oIsAliveNum>=2:
					sql = "UPDATE osa_ipinfo SET oStatus = '服务器不可达' WHERE oIp ='"+each_ipinfo[1]+"'"
					row = update(sql)
					sys.exit()
			if  each_ipinfo[3] == '1':
				CreateAlarmMsg('服务器存活检测',1,each_ipinfo[1],'服务器'+each_ipinfo[1]+"不可达",1)
				for EmailAddress in AllUserEmailAddress:
					try:
						notifyByEmail(subject='[CRITICAL]Notify from OSA',content = "Message level: CRITICAL ,Server "+each_ipinfo[1]+"doesn't reach!!",address = EmailAddress)
					except Exception as e:
						save_log('ERROR','send mail to '+EmailAddress+' failed!! ERROR:'+str(e))
					oIsAliveNum=int(each_ipinfo[5])
					oIsAliveNum=oIsAliveNum+1
					sql = "UPDATE osa_ipinfo SET oStatus = '服务器不可达',oIsAlive = '0',oIsAliveNum="+str(oIsAliveNum)+" WHERE id ="+str(each_ipinfo[0])
					row = update(sql)
					sys.exit()
	sys.exit()