def get_right_business_accord_instances_and_ips(instances, ips, day=None): if day is None: day = utils.get_yesterday_str() ips_str = utils.convert_ips_to_str(ips) instances_str = utils.convert_ips_to_str(instances) sql = config_db.GET_BUSINESS_RIGHT_ACCORD_INSTS_IPS.format(instances_str, ips_str, day) right_businesses = db.cursor.execute(sql).fetchall() return right_businesses, sql
def check_ip_alert_accord_inst_and_busi(inst=None, busi=None): ''' :param inst: :param busi: :return:如果该业务或实例涉及的ip有报警,则返回False,否则返回True ''' ips = [] if inst is None and busi is not None: ips = model_redis.get_ips_accord_busi(busi) if len(ips) == 0: try: ips = model_ora.get_ip_accord_business(busi) except: traceback.print_exc() if busi is None and inst is not None: ips = model_redis.get_ips_accord_instance(inst) if len(ips) == 0: ips = model_ora.get_ips_accord_instance(inst) if len(ips) == 0: return False ips_str = utils.convert_ips_to_str(ips) date_str = get_check_date() sql = config_reporter.GET_ALERT_NUM.format( date_str, ips_str) data = db.cursor.execute(sql).fetchone()[0] print data if data > 0: return True # False为有报警 else: return False
def get_current_alert_info(center_instance, center_ips): if center_ips is None or center_ips == '' or len(center_ips) == 0: center_ips = model_redis.get_ips_accord_instance(center_instance) ips_str = utils.convert_ips_to_str(center_ips) print ips_str date_str = get_check_date() sql = config_reporter.GET_ALERT_INFO.format(date_str, ips_str) print 'alert:', sql data = [dict(zip(config_reporter.ALERT_INFO, item)) for item in db.cursor.execute(sql).fetchall()] return data
def get_instance_accord_busi_and_ips(business, ips): ''' :param business: B系统TODE公共网关' :param ips: ['10.6.174.91','10.6.174.89'] :return:[('INST-TOD-TODEBGW', '10.6.174.89'), ('INST-B\xe7\xb3\xbb\xe7\xbb\x9fTODE\xe5\x85\xac\xe5\x85\xb1\xe7\xbd\x91\xe5\x85\xb3-APP', '10.6.174.89')] ''' ips_str = utils.convert_ips_to_str(ips) sql = config_db.GET_INSTANCE_ACCORD_BUSI_IPS.format(business, ips_str) insts = db.cursor.execute(sql).fetchall() return insts, sql
def get_detail_alert_info_accord_instance(oop_name=None, business_name=None): date_str = get_check_date() ip_seq = [] if oop_name is not None: ip_seq = model_redis.get_ips_accord_instance(oop_name) elif business_name is not None: ip_seq = model_redis.get_ips_accord_busi(business_name) ip_str = utils.convert_ips_to_str(ip_seq) sql = config_reporter.GET_ALERT_DETAIL_INFO_ACCORD_INST.format(date_str, ip_str) result = list(db.cursor.execute(sql).fetchall()) if len(result) == 0: return None return result
def get_ip_accord_business_instance_ips(direction, business, center_business, center_instance, center_ips, day=None): sql = '' if day is None: day = utils.get_yesterday_str() ips_str = utils.convert_ips_to_str(center_ips) if direction == 'source': sql = config_db.GET_IP_LEFT_ACCORD_BUSI_INST_IPS.format(business, center_business, center_instance, ips_str, day) elif direction == 'target': sql = config_db.GET_IP_RIGHT_ACCORD_BUSI_INST_IPS.format(business, center_business, center_instance, ips_str, day) print sql result = list(db.cursor.execute(sql).fetchall()) return result, sql
def insert_new_event(event): ips = event['CHECKIPS'].split(',') description = event['DESCRIPTION'] begin_date = event['BEGINDATE'] create_date = event['CREATEDATE'] ips_str = utils.convert_ips_to_str(ips) query_busi_sql = QUERY_BUSINESS_ACCORD_IPS.format(ips_str) query_inst_sql = QUERY_INSTANCE_ACCORD_IPS.format(ips_str) business, instance = '', '' try: business = unicode(list(db.query(query_busi_sql))[0]['BUSSINESS'], 'utf-8') instance = unicode(list(db.query(query_inst_sql))[0]['INSTANCE'], 'utf-8') except: return if instance == '' or business == '': return for ip in ips: event_id = sha1( ip + description + begin_date.strftime(datetime_format) + create_date.strftime(datetime_format)).hexdigest() print event_id if not is_exist(event_id): sql = INSERT_NEW_EVENT.format(event_id, ip, business, begin_date, create_date, instance) db_mysql.query(sql) db_mysql.query('commit')
def check_ip_alert(ips): ips_str = utils.convert_ips_to_str(ips) date_str = get_check_date() sql = config_reporter.GET_ALERT_IP_INFO.format(date_str, ips_str) data = [item[0] for item in db.cursor.execute(sql).fetchall()] return data