示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
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
示例#7
0
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')
示例#8
0
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