예제 #1
0
def fpga_task():

    linuxInfo = ct.get_server_config('./config/fpga_config.txt')
    #    linuxInfo = [['192.168.238.7', 22, 'trade', 'trade', 'tradeserver',/home/trade/FPGA']]
    try:
        ms = MonitorServer(linuxInfo)
        ms.fpga_monitor_run()
        check_result_list = ms.fpga_Check_flag_list
        logger.debug("check_result_list:")
        logger.debug(check_result_list)
        if len(check_result_list) == 0:
            check_result = False
        else:
            check_result = (sum(check_result_list) == len(check_result_list))
    except Exception:
        check_result = False
        logger.error('Faild to check fpga!', exc_info=True)

    logger.info(
        "************************The FPGA File Monitor Result: ************************"
    )
    if check_result:
        logger.info("OK,FPGA Server is OK")
        ct.send_sms_control("fpga", "OK:盘前FPGA文件检查正常")
    else:
        msg = "error:FPGA文件检查异常,请查看详细日志"
        logger.error(msg)
        #        send_sms_control("fpga", "error:奇点服务器FPGA文件检查异常,请查看详细日志")
        sysstr = platform.system()
        if sysstr == "Windows":
            ct.readTexts("VIP Server is Worning")
예제 #2
0
def before_cleanup_db_monitor_task():
    
    with open('./config/table_check.json', 'r') as f:
        Jsonlist = json.load(f)
        logger.debug(Jsonlist)
    
        thrlist = range(len(Jsonlist))
        threads=[]
        for (i,info) in zip(thrlist, Jsonlist):
            #print("alltask.__name__:", alltask.__name__)
            t = dbm.MyThread(dbm.before_cleanup_db_monitor,(info,),dbm.before_cleanup_db_monitor.__name__ + str(i))
            threads.append(t)
            
        for i in thrlist:
            threads[i].start()
        for i in thrlist:       
            threads[i].join()
            threadResult = threads[i].get_result()
            sysstr = platform.system()
            if (not threadResult) :
                logger.error("error:数据库盘后清库盘前检查失败,请检查详细错误信息")
                ct.send_sms_control("NoLimit", "error:数据库盘后清库盘前检查失败,请检查详细错误信息")
                if (sysstr == "Windows"):
                    ct.readTexts("Database cleanup Worning") 
            else:
                logger.info("OK:数据库盘后清库盘前检查正常")
예제 #3
0
def ping_monitor_task():

    linuxInfo = ct.get_server_config('./config/server_ping_config.txt')
    try:
        ms = MonitorServer(linuxInfo)
        ms.ping_server_monitor()
        check_result_list = ms.ping_Check_flag_list
        if len(check_result_list)==0:
            check_result =False
        else:
            check_result = (sum(check_result_list)==len(check_result_list))
#        print "check_result: ", check_result
    except Exception as e:
        check_result = False
        msg = str(e)
        logger.warning(msg)

    if check_result:
        logger.info("All Server is OK")
    else:
        msg = "服务器Ping值异常,请检查详细日志内容!"
        logger.warning(msg)
#        ct.send_sms_control("ping", msg)
        sysstr = platform.system()
        if sysstr == "Windows":
            ct.readTexts("Ping Monitor is Worning")
예제 #4
0
def mem_monitor_task():

    linuxInfo = ct.get_server_config('./config/server_status_config.txt')
    try:
        ms = MonitorServer(linuxInfo)
        ms.mem_monitor()
        check_result_list = ms.mem_Check_flag_list
        if len(check_result_list) == 0:
            check_result = False
        else:
            check_result = (sum(check_result_list) == len(check_result_list))
#        print "check_result: ", check_result
    except Exception as e:
        check_result = False
        msg = str(e)
        logger.error(msg)

    logger.info(
        "************************The Monitor Result: ************************")
    if check_result:
        logger.info("All Server is OK")
    else:
        msg = "内存监控报警,请查看服务器详细信息"
        logger.error(msg)
        sysstr = platform.system()
        if sysstr == "Windows":
            ct.readTexts("Memory Monitor is Worning")
    ct.generate_file(check_result, 'Memory_Monitor')
예제 #5
0
def common_monitor_task(task, single_handle, linuxInfo):
    
    #linuxInfo = ct.get_server_config('./config/server_status_config.txt')
    try:
        #single_handle = "core_file_info"
        ms = MonitorServer(linuxInfo, single_handle)
        task_monitor = ms.single_common_monitor
        
        task_monitor()
        check_result_list = ms.common_Check_flag_list
        if len(check_result_list)==0:
            check_result =False
        else:
            check_result = (sum(check_result_list)==len(check_result_list))
#        print "check_result: ", check_result
    except Exception as e:
        check_result = False
        msg = str(e)
        logger.warning(msg)

    if check_result:
        msg = "OK,监控任务[%s]验证结果成功,All Server is OK!" % single_handle
        logger.info(msg)
    else:
        msg = task + "::" + single_handle + " 任务监控报警,请检查详细日志内容!"
        logger.warning(msg)
#        ct.send_sms_control("disk", msg)
        sysstr = platform.system()
        if sysstr == "Windows":
            ct.readTexts("Monitor task is Worning")
예제 #6
0
def db_init_monitor_task():

    with open('./config/table_check.json', 'r') as f:
        Jsonlist = json.load(f)
        logger.debug(Jsonlist)

        logger.info("Start to excute the before trade monitor")
        thrlist = range(len(Jsonlist))
        threads = []
        for (i, info) in zip(thrlist, Jsonlist):
            #print("alltask.__name__:", alltask.__name__)
            t = dbm.MyThread(dbm.before_trade_monitor, (info, ),
                             dbm.before_trade_monitor.__name__ + str(i))
            threads.append(t)

        for i in thrlist:
            threads[i].start()
        for i in thrlist:
            threads[i].join()
            threadResult = threads[i].get_result()
            sysstr = platform.system()
            if (not threadResult):
                logger.error("error:奇点服务器盘前数据库初始化数据错误,请检查详细错误信息")
                #                ct.send_sms_control("db_init", "error:奇点服务器盘前数据库初始化数据错误,请检查详细错误信息")
                if (sysstr == "Windows"):
                    ct.readTexts("Database init Worning")
            else:
                logger.info("OK:奇点服务器数据库init检查正常")
                ct.send_sms_control("db_init", "OK:奇点服务器盘前数据库init检查正常")
예제 #7
0
def port_process_task():

    linuxInfo = ct.get_server_config('./config/server_status_config.txt')
    try:
        ms = MonitorServer(linuxInfo)
        ms.socket_ps_monitor()
        check_result_list = ms.SocPs_Check_flag_list
        if len(check_result_list) == 0:
            check_result = False
        else:
            check_result = (sum(check_result_list) == len(check_result_list))
#        print "check_result: ", check_result
    except Exception as e:
        check_result = False
        msg = str(e)
        logger.warning(msg)

    logger.info(
        "************************The Monitor Result: ************************")
    if check_result:
        logger.info("All Server is OK")
    else:
        msg = "端口和进程监控报警,请查看服务器详细信息!"
        logger.error(msg)
        sysstr = platform.system()
        if sysstr == "Windows":
            ct.readTexts("Port Process Monitor is Worning")
    ct.generate_file(check_result, 'Port_PS_Monitor')
예제 #8
0
def db_trade_monitor_task():

    with open('./config/table_check.json', 'r') as f:
        Jsonlist = json.load(f)
        logger.debug(Jsonlist)

        #        if os.path.isdir("./tempdata"):
        #            for filename in os.listdir('./tempdata'):
        #                os.remove('./tempdata/' + filename)
        #        else:
        #            os.mkdir("./tempdata")
        logger.info("Start to excute the trading_monitor")
        thrlist = range(len(Jsonlist))
        threads = []
        for (i, info) in zip(thrlist, Jsonlist):
            t = dbm.MyThread(dbm.trading_monitor, (info, ),
                             dbm.trading_monitor.__name__ + str(i))
            threads.append(t)
#                print "thrcouat3:", threading.active_count()
        for i in thrlist:
            threads[i].start()
        for i in thrlist:
            threads[i].join()
            trading_check = threads[i].get_result()
            sysstr = platform.system()
            if (not trading_check):
                logger.error("数据库交易中监控报警,请查看服务器详细信息")
                if (sysstr == "Windows"):
                    ct.readTexts("Database trading Worning")
def alltask():

    linuxInfo = ct.get_server_config('./config/server_status_config.txt')

    try:
        ms = MonitorServer(linuxInfo)
        ms.monitor_run()
        check_result_list = ms.Check_flag_list
        #        print "check_result_list:", check_result_list
        if len(check_result_list) == 0:
            check_result = False
        else:
            check_result = (sum(check_result_list) == len(check_result_list))
#        print "check_result: ", check_result
    except Exception as e:
        check_result = False
        msg = str(e)
        logger.error(msg)

    logger.info(
        "************************The Monitor Result: ************************")
    if check_result:
        logger.info("All Server is OK")
    else:
        msg = "error: Basic Monitor is Worning, Please Check it!"
        logger.error(msg)
        #        ct.fortunesms(msg)
        sysstr = platform.system()
        if sysstr == "Windows":
            ct.readTexts("Basic Monitor is Worning")


#        else:
#            ct.send_mail(msg,"Failed_Basic_Monitor")
    ct.generate_file(check_result, 'Basic_Monitor')
예제 #10
0
def errorLog_monitor_task():

    linuxInfo = ct.get_server_config('./config/server_logDir_config.txt')
    grep_lists = mel.get_errorLog(linuxInfo)
    fileNlist = mel.get_result_file_list()
    check_flag = mel.errorLog_check(fileNlist, grep_lists)

    sysstr = platform.system()
    if (not check_flag):
        logger.error("错误日志检查报警,请查看服务器详细信息")
        #        send_sms_control("errorLog", "error:Server log error warning")
        if (sysstr == "Windows"):
            ct.readTexts("Server log warning")
예제 #11
0
def monitor_errorLog_run(argv):
    #备份上一次的grep_result_file文件到back_file
    if (os.path.exists(grep_result_file)):
        os.rename(grep_result_file, back_file)

    yaml_path = './config/monitor_errorLog_logger.yaml'
    ct.setup_logging(yaml_path)
    #init interval
    inc = 60
    try:
        opts, args = getopt.getopt(argv, "hl:", ["loopsecends="])
    except getopt.GetoptError:
        print('monitor_errorLog.py -l <loopsecends>')
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print('monitor_errorLog.py -l <loopsecends> \n \
                loopsecends=0 means no loop and just run once.\n \
                loopsecends=N means loop interval is N second. \n \
                (default:python monitor_errorLog.py) means loop interval is 60 seconds'
                  )
            sys.exit()
        elif opt in ("-l", "--loopsecends"):
            inc = int(arg)
        print('interval is: ', inc)
    if inc == 0:
        grep_lists = get_errorLog(linuxInfo)
        fileNlist = get_result_file_list()
        check_flag = errorLog_check(fileNlist, grep_lists)
        sysstr = platform.system()
        if (not check_flag) and (sysstr == "Windows"):
            ct.readTexts("Server log warning")
    else:
        while True:
            # 执行方法,函数
            start_time = '05:45'
            end_time = '19:25'
            if (ct.time_check(start_time, end_time)):
                grep_lists = get_errorLog(linuxInfo)
                fileNlist = get_result_file_list()
                check_flag = errorLog_check(fileNlist, grep_lists)
                sysstr = platform.system()
                if (not check_flag) and (sysstr == "Windows"):
                    ct.readTexts("Server log warning")
            time.sleep(inc)
예제 #12
0
def errorLog_monitor_task():

    linuxInfo = ct.get_server_config('./config/server_logDir_config.txt')
    ntimes = dt.datetime.now().strftime("%Y%m%d%H%M%S")
    ndates = dt.datetime.now().strftime("%Y%m%d")
    #cur_dir_i = os.getcwd()
    cur_dir = os.getcwd().replace("\\", "/") + "/"
    log_dir = cur_dir + "mylog/"
    grep_result_file = log_dir + "errorLog_result_" + ndates + '.txt'
    back_file = log_dir + "errorLog_result_" + ntimes + '.txt'
    #备份上一次的grep_result_file文件到back_file
    if (os.path.exists(grep_result_file)):
        os.rename(grep_result_file, back_file)

    grep_lists = mel.get_errorLog(linuxInfo)
    fileNlist = mel.get_result_file_list()
    check_flag = mel.errorLog_check(fileNlist, grep_lists)

    sysstr = platform.system()
    if (not check_flag):
        logger.error("错误日志检查报警,请查看服务器详细信息")
        #        send_sms_control("errorLog", "error:Server log error warning")
        if (sysstr == "Windows"):
            ct.readTexts("Server log warning")
예제 #13
0
def fpgatask():

    linuxInfo = ct.get_server_config('./config/fpga_config.txt')
    #    linuxInfo = [['192.168.238.7', 22, 'trade', 'trade', 'tradeserver',/home/trade/FPGA']]

    try:
        ms = MonitorServer(linuxInfo)
        ms.fpga_monitor_run()
        check_result_list = ms.fpga_Check_flag_list
        logger.debug("check_result_list:")
        logger.debug(check_result_list)
        if len(check_result_list) == 0:
            check_result = False
        else:
            check_result = (sum(check_result_list) == len(check_result_list))
    except Exception as e:
        check_result = False
        logger.error('Faild to check fpga!', exc_info=True)

    logger.info(
        "************************The FPGA File Monitor Result: ************************"
    )
    if check_result:
        logger.info("FPGA Server is OK")
    else:
        msg = "error:FPGA is Exception, Please Check it!"
        logger.error(msg)
        #        ct.fortunesms(msg)
        sysstr = platform.system()
        if sysstr == "Windows":
            ct.readTexts("VIP Server is Worning")


#        else:
#            ct.send_mail(msg,"Failed_FPGA_Monitor")
    ct.generate_file(check_result, 'FPAG_File_Monitor')
예제 #14
0
def main(argv):

    try:
        yaml_path = './config/db_check_logger.yaml'
        ct.setup_logging(yaml_path)

        with open('./config/table_check.json', 'r') as f:
            Jsonlist = json.load(f)
            logger.debug(Jsonlist)

        #init interval
        inc = 600
        modul = ''
        try:
            opts, args = getopt.getopt(argv, "hl:e:",
                                       ["loopsecends=", "excute="])
        except getopt.GetoptError:
            print('db_monitor.py -l <loopsecends> -e <excute>')
            sys.exit(2)
        for opt, arg in opts:
            if opt == '-h':
                print('db_monitor.py -l <loopsecends> -e <excute>\n \
                    loopsecends=0 means no loop and just run once.\n \
                    loopsecends=N means loop interval is N second. \n \
                    (default:python db_monitor.py) means loop interval is 600 seconds. \n \
                    excute=before means excute the before trade db monitor. \n \
                    excute=trading means excute the trading db monitor. \n \
                    excute is Null means excute before and trading db monitor.'
                      )
                sys.exit()
            elif opt in ("-l", "--loopsecends"):
                inc = int(arg)
            elif opt in ("-e", "--excute"):
                modul = arg
            logger.info('interval is: %d' % inc)
            logger.info('modull is:s: %s' % modul)
        if inc == 0:
            if modul == 'before' or modul == '':
                #before trade montior
                logger.info("Start to excute the before trade monitor")
                thrlist = range(len(Jsonlist))
                threads = []
                for (i, info) in zip(thrlist, Jsonlist):
                    #print("alltask.__name__:", alltask.__name__)
                    t = MyThread(before_trade_monitor, (info, ),
                                 before_trade_monitor.__name__ + str(i))
                    threads.append(t)

                for i in thrlist:
                    threads[i].start()
                for i in thrlist:
                    threads[i].join()
                    threadResult = threads[i].get_result()
                    sysstr = platform.system()
                    if (not threadResult) and (sysstr == "Windows"):
                        ct.readTexts("Database trade before Worning")
            if modul == 'trading' or modul == '':
                #trading monitor
                #delete all tempdata/*.json
                if os.path.isdir("./tempdata"):
                    for filename in os.listdir('./tempdata'):
                        os.remove('./tempdata/' + filename)
                else:
                    os.mkdir("./tempdata")
                logger.info("Start to excute the trading_monitor")
                thrlist = range(len(Jsonlist))
                threads = []
                for (i, info) in zip(thrlist, Jsonlist):
                    t = MyThread(trading_monitor, (info, ),
                                 trading_monitor.__name__ + str(i))
                    threads.append(t)
#                print "thrcouat3:", threading.active_count()
                for i in thrlist:
                    threads[i].start()
                for i in thrlist:
                    threads[i].join()
                    trading_check = threads[i].get_result()
                    if (not trading_check) and (sysstr == "Windows"):
                        ct.readTexts("Database trading Worning")
        elif inc > 20:
            #before trade montior
            logger.info("Start to excute the before trade monitor")
            thrlist = range(len(Jsonlist))
            threads = []
            for (i, info) in zip(thrlist, Jsonlist):
                #print("alltask.__name__:", alltask.__name__)
                t = MyThread(before_trade_monitor, (info, ),
                             before_trade_monitor.__name__ + str(i))
                threads.append(t)

            for i in thrlist:
                threads[i].start()
            for i in thrlist:
                threads[i].join()
                threadResult = threads[i].get_result()
                sysstr = platform.system()
                if (not threadResult) and (sysstr == "Windows"):
                    ct.readTexts("Database trade before Worning")
#            print "thrcount:", threading.active_count()

#trading monitor
#delete all tempdata/*.json
            if os.path.isdir("./tempdata"):
                for filename in os.listdir('./tempdata'):
                    os.remove('./tempdata/' + filename)
            else:
                os.mkdir("./tempdata")
            while True:
                #            while False:
                if (ct.trade_check()):
                    logger.info("Start to excute the trading_monitor")
                    thrlist = range(len(Jsonlist))
                    threads = []
                    for (i, info) in zip(thrlist, Jsonlist):
                        t = MyThread(trading_monitor, (info, ),
                                     trading_monitor.__name__ + str(i))
                        threads.append(t)
                    for i in thrlist:
                        threads[i].start()
                    for i in thrlist:
                        threads[i].join()
                        trading_check = threads[i].get_result()
                        if (not trading_check) and (sysstr == "Windows"):
                            ct.readTexts("Database trading Worning")


#                    print "thrcouat3:", threading.active_count()
                    time.sleep(inc - 20)
                    if (ct.time_check('15:00', '15:12')):
                        logger.info("exit to monitor")
                        break
                else:
                    logger.info("It's not time to trading monitor")
                time.sleep(20)
        else:
            logger.error(
                "Input parameter error: The interval must greater than 20!")
    except Exception:
        logger.error('Faild to run monitor db!', exc_info=True)
    finally:
        for handler in logger.handlers:
            logger.removeHandler(handler)