Exemple #1
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import threading, class_netsav
from db_fun import xgetall
from my_log import logger
from netmon_env import envi

#//支持最大线程数
thread_count = envi['threads']

#//获取router表的所有有效条目数
sql = "select app from router where app>1"
all = len(xgetall(sql))
if all == 0:
    logger.warn('No device for config-saving!')
    exit()


#//新建调用函数
def c_save(ip):
    r = class_netsav.NetSav(ip)
    r.save()


start = 0
while start < all:
    sql = "select rip from router where app>1 limit %d, %d" % (start,
                                                               thread_count)
    ret = xgetall(sql)
    threads = []
Exemple #2
0
def my_alert(msg, tdes):

   #1.日志记录到link.log和syslog服务器
   link_logger.warn(msg)

   if envi['slog_server'] != '':
      syslog.error(msg.encode('gbk'))


   #2.发送邮件
   timestr = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
   t_hour = time.localtime().tm_hour
   phone    = []     #获取手机号码列表
   mail_int = []     #获取内部邮箱列表
   mail_ext = []     #获取外部邮箱列表
   detail = ''       #线路详细信息
   re = ()

   #获取该线路的单独告警邮箱和手机号码
   sql = "select mail1,mail2,phone,city,pri from target where tdes='%s'" % tdes
   (m1, m2, p, city, pri) = xgetone(sql)
   if m1 != '' and m1 != None:
      temp = (str(m1).strip(';')).split(';')
      mail_int.extend(temp)
   if m2 != '' and m2 != None:
      temp = (str(m2).strip(';')).split(';')
      mail_ext.extend(temp)
   if p != '' and p != None:
      temp = (str(p).strip(';')).split(';')
      phone.extend(temp)

   #获取用户所在城市的告警邮箱和手机号码
   sql="select mail1, mail2, phone from user where city='%s'" % city
   if xgetall(sql) != None:
      mlists = xgetall(sql)
      for mlist in mlists:
         if mlist[0] != '' and mlist[0] != None:
            mail1 = (str(mlist[0]).strip(';')).split(';')
            mail_int.extend(mail1)
         if mlist[1] != '' and mlist[1] != None:
            mail2 = (str(mlist[1]).strip(';')).split(';')
            mail_ext.extend(mail2)
         if mlist[2] != '' and mlist[2] != None:
            tmp_phone = (str(mlist[2]).strip(';')).split(';')
            phone.extend(tmp_phone)
         
   if mail_int != [] or mail_ext != []:
      sql = "select * from detail where tdes='%s'" % tdes
      if xgetone(sql) != None:
         re = xgetone(sql)
         #
         detail = detail + u"线路编号:" + re[1] + "\n"
         detail = detail + u"报障电话:" + re[2] + "\n"
         detail = detail + u"对端联系:" + re[4] + "\n"
         detail = detail + u"对端地址:" + re[3] + "\n"
         detail = detail + u"应用名称:" + re[5] + "\n"
         detail = detail + u"应用联系:" + re[6] + "\n"
         detail = detail + u"线路资费:" + re[7] + "\n"
         detail = detail + u"线路所属:" + re[8] + "\n"
         detail = detail + u"其他信息:" + re[9] + "\n"

   #print mail_int
   #print mail_ext
   #print phone
   if mail_int != []:
      send_mail(timestr+msg, detail, mail_int)
   if mail_ext != []:
      if (pri > 1 or (t_hour>6 and t_hour<21)):
         send_mail_ext(timestr+msg, detail, mail_ext)

   #print phone
   #3.发送到短信平台
   if envi['ftp_server'] != '' and phone != []:
      if (pri > 1 or (t_hour>6 and t_hour<21)):
         ftp_alert(timestr+msg, phone)

   return
Exemple #3
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import threading, class_netmon
from db_fun import xgetall
from my_log import logger
from netmon_env import envi

#//支持最大线程数
thread_count = envi['threads']

#//获取router表的所有条目数
sql = "select rip from router where app=3"
ret = xgetall(sql)
all = len(ret)
if all == 0:
    logger.warn('No router for monitoring!')
    exit()


###//新建调用函数
def rt_mon(ip):
    r = class_netmon.NetMon(ip)
    r.mon()


###//新建多线程进行监控
start = 0
end = thread_count
while start < all:
    #print '----------'
Exemple #4
0
 def __init__(self, ip):
     class_login.NetLogin.__init__(self, ip)
     self.target = ()
     if self.name != '':
         sql = "select tip,tdes,rtt from target where rname='%s'" % self.name
         self.target = xgetall(sql)