def get_oracle_alert(tags, db_conn, oracle_params, linux_params): db_version = oracle_params['db_version'] host = oracle_params['host'] # 取alert日志 sql = "select alert_log,alert_log_seek from oracle_list where tags='{}' ".format( tags) alert_log, alert_log_seek = mysql_query(sql)[0] if not alert_log: sql = "select value from v$diag_info where name = 'Diag Trace'" alert_dir = query_one(db_conn, sql) # 取实例名 sql = "select instance_name from v$instance" instance_name = query_one(db_conn, sql) alert_log = '{}/alert_{}.log'.format(alert_dir[0], instance_name[0]) alert_log_seek = 0 sql = "delete from alert_log where tags='{}' and type=1 ".format(tags) mysql_exec(sql) # ssh获取日志内容 linux_oper = LinuxBase(linux_params) # 日志解析 alert_content = linux_oper.readfile(alert_log, seek=alert_log_seek) alert_log_seek = parse_oracle_alert_logs(tags, host, alert_content, db_version) # 更新配置表中日志路径,日志偏移量 sql = "update oracle_list set alert_log='{}',alert_log_seek={} where tags='{}' ".format( alert_log, alert_log_seek, tags) mysql_exec(sql)
def get_mysql_slowquery(tags,mysql_params,linux_params): host = mysql_params['host'] # slow query log location sql = "select slowquery_log,slowquery_log_seek from mysql_list where tags='{}' ".format(tags) slowquery_log,slowquery_log_seek = mysql_query(sql)[0] if not slowquery_log: slowquery_log = Mysql_Do(mysql_params).get_para('slow_query_log_file') slowquery_log_seek = 0 # get slowquery log content linux_oper = LinuxBase(linux_params) slowquery_content = linux_oper.readfile(slowquery_log,seek=slowquery_log_seek) # parse log slowquery_log_seek = parse_mysql_slowquery_logs(tags,host,slowquery_content) # update alert log info to mysqlinfo sql = "update mysql_list set slowquery_log='{}',slowquery_log_seek={} where tags='{}' " .format(slowquery_log,slowquery_log_seek,tags) mysql_exec(sql)
def get_mysql_alert(tags,mysql_params,linux_params): host = mysql_params['host'] # logfile loglocation sql = "select alert_log,alert_log_seek from mysql_list where tags='{}' ".format(tags) alert_log,alert_log_seek = mysql_query(sql)[0] if not alert_log: alert_log = Mysql_Do(mysql_params).get_para('log_error') alert_log_seek = 0 sql = "delete from alert_log where tags='{}' and type=2 ".format(tags) mysql_exec(sql) # get alert log content linux_oper = LinuxBase(linux_params) alert_content = linux_oper.readfile(alert_log,seek=alert_log_seek) # parse log alert_log_seek = parse_mysql_alert_logs(tags,host,alert_content) # update alert log info to mysqlinfo sql = "update mysql_list set alert_log='{}',alert_log_seek={} where tags='{}' " .format(alert_log,alert_log_seek,tags) mysql_exec(sql)
def get_redis_log(tags,redis_params,linux_params): host = redis_params['host'] # logfile loglocation sql = "select log,log_seek from redis_list where tags='{}' ".format(tags) log,log_seek = mysql_query(sql)[0] if not log: redis_conn = RedisBase(redis_params).connection() log_dir = redis_conn.config_get('dir')['dir'] log = redis_conn.config_get('logfile')['logfile'] log = os.path.join(log_dir,log) log_seek = 0 sql = "delete from alert_log where tags='{}' and type=3 ".format(tags) mysql_exec(sql) # get log content linux_oper = LinuxBase(linux_params) alert_content = linux_oper.readfile(log,seek=log_seek) # parse log log_seek = parse_redis_logs(tags,host,alert_content) # update alert log info to mysqlinfo sql = "update redis_list set log='{}',log_seek={} where tags='{}' " .format(log,log_seek,tags) mysql_exec(sql)