def get_alert_info_from_DB(monitor_name, monitor_ip, monitor_port): # choice collection_info table now_year = datetime.datetime.now().year now_month = datetime.datetime.now().month if now_month < 10: collection_info = 'collection_info_' + str(now_year) + '0' + str( now_month) else: collection_info = 'collection_info_' + str(now_year) + str(now_month) dbconfig = { 'host': config.get('COLLECTION_DB', 'host'), 'port': int(config.get('COLLECTION_DB', 'port')), 'user': config.get('COLLECTION_DB', 'user'), 'passwd': config.get('COLLECTION_DB', 'pwd'), 'db': config.get('COLLECTION_DB', 'db'), 'charset': 'utf8' } db = MySQL(dbconfig) sql = "select monitor_name,monitor_ip,monitor_port,http_code,exec_code,api_info,create_time from {collection_info} where monitor_name = '{monitor_name}' and " \ "monitor_ip = '{monitor_ip}' and monitor_port = {monitor_port} order by create_time desc ;". \ format(collection_info=collection_info, monitor_name=monitor_name, monitor_ip=monitor_ip, monitor_port=monitor_port) # print sql # logger.info(sql) db.query(sql) result = db.fetchOneRow() db.close() return result
def get_first_error_time(monitor_name, monitor_ip, monitor_port): ''' :param monitor_name: :param monitor_ip: :param monitor_port: :return: ''' dbconfig = { 'host': config.get('META', 'host'), 'port': int(config.get('META', 'port')), 'user': config.get('META', 'user'), 'passwd': config.get('META', 'pwd'), 'db': config.get('META', 'db'), 'charset': 'utf8' } db = MySQL(dbconfig) sql = "select first_error_time from add_monitor_info " \ "where monitor_name='{monitor_name}' and monitor_ip='{monitor_ip}' " \ "and monitor_port={monitor_port} and on_off = 1;".format(monitor_name=monitor_name, monitor_ip=monitor_ip, monitor_port=monitor_port) db.query(sql) result = db.fetchOneRow() db.close() return result
def master(): monitor_name = request.args.get('monitor_name', type=str, default=None) monitor_ip = request.args.get('monitor_ip', type=str, default=None) monitor_port = request.args.get('monitor_port', type=int, default=None) #get admin, business dbconfig = { 'host': config.get('META', 'host'), 'port': int(config.get('META', 'port')), 'user': config.get('META', 'user'), 'passwd': config.get('META', 'pwd'), 'db': config.get('META', 'db'), 'charset': 'utf8' } db = MySQL(dbconfig) sql = "select admin, business from collection_info where monitor_name = '{monitor_name}' and " \ "monitor_ip = '{monitor_ip}' and monitor_port = {monitor_port};".format(monitor_name=monitor_name, monitor_ip=monitor_ip, monitor_port=monitor_port) db.query(sql) manager_info = db.fetchOneRow() db.close() admin, business = manager_info mail_subject = 'MFS:mfsmaster alert' alert_info = message_info('MFS:mfsmaster', admin, business, monitor_ip, monitor_port) result = send_alert(monitor_name, monitor_ip, monitor_port, mail_subject, alert_info) return jsonify(result)
def set_first_error_time(monitor_name, monitor_ip, monitor_port, first_error_time): ''' set now time or set default time 0.0 :param monitor_name: :param monitor_ip: :param monitor_port: :param first_error_time: :return: 1 --> OK :return: False --> error ''' try: # if first_error_time == '0.0': # timestrip = first_error_time # else: # timestrip = time.mktime(first_error_time.timetuple()) # timestrip = first_error_time dbconfig = { 'host': config.get('META', 'host'), 'port': int(config.get('META', 'port')), 'user': config.get('META', 'user'), 'passwd': config.get('META', 'pwd'), 'db': config.get('META', 'db'), 'charset': 'utf8' } db = MySQL(dbconfig) sql = "update add_monitor_info set first_error_time='{first_error_time}' " \ "where monitor_name = '{monitor_name}' and monitor_ip = '{monitor_ip}' " \ "and monitor_port = {monitor_port} and on_off = 1;".format(monitor_name=monitor_name, monitor_ip=monitor_ip, monitor_port=monitor_port, first_error_time=first_error_time) result = db.update(sql) db.commit() db.close() exec_info = "[action]:set first error time" \ "[status]:OK" \ "[first_error_time]:{first_error_time}" \ "[return code]:{result}".format(first_error_time=first_error_time, result=result) logger.info(exec_info) except Exception, e: error_msg = "[action]:iset first error time" \ "[status]:FAIL" \ "[Errorcode]:{e}" \ "[first_error_time]:{first_error_time}".format(first_error_time=first_error_time, e=e) logger.error(error_msg)
def is_on(monitor_name): dbconfig = { 'host': config.get('COLLECTION_DB', 'host'), 'port': int(config.get('COLLECTION_DB', 'port')), 'user': config.get('COLLECTION_DB', 'user'), 'passwd': config.get('COLLECTION_DB', 'pwd'), 'db': config.get('COLLECTION_DB', 'db'), 'charset': 'utf8' } db = MySQL(dbconfig) sql = "select monitor_name,monitor_ip,monitor_port from add_monitor_info where monitor_name = '{monitor_name}' and " \ "on_off = 1 ;".format(monitor_name=monitor_name) # print sql db.query(sql) result = db.fetchAllRows() db.close() return result
def verify_user(username, password): '''API users verify decorator''' config = ConfigParser.ConfigParser() metaConfig = recursiveSearchFile(project_abdir, '*alertConfig.ini')[0] config.read(metaConfig) dbconfig = { 'host': config.get('META', 'host'), 'port': int(config.get('META', 'port')), 'user': config.get('META', 'user'), 'passwd': config.get('META', 'pwd'), 'db': config.get('META', 'db'), 'charset': 'utf8' } db = MySQL(dbconfig) sql = "select id,name,password_hash from users where name = '{username}'".format( username=username) db.query(sql) info = db.fetchOneRow() db.close() check_user = User(id=info[0], name=info[1], password_hash=info[2]) if not check_user or not check_user.verify_password(password): error_msg = "[action]:verify user" \ "[status]:FAIL" \ "[username]:{username}" \ "[verify status]:{status}".format(username=check_user.name, status=check_user.verify_password(password)) logger.error(error_msg) return False exec_info = "[action]:verify user" \ "[status]:OK" \ "[username]:{username}".format(username=username) logger.info(exec_info) return True