def monitor_dns_index(iteminfo): ''' @Monitor dns 入口函数 ''' try: monitorTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) monitor_item_updateTime(iteminfo) ip = iteminfo[2] isAlarm = Dns_check(ip) if isAlarm == True: update_fail_count(iteminfo,iteminfo[12]) if int(iteminfo[12]) - int(iteminfo[8]) >= 0: if iteminfo[16]: send_messages(iteminfo,' ','RECOVERY') sql="insert into uxin_alarm_log values('','%s','%s','%s','%s','RECOVERY')" %(iteminfo[2],iteminfo[3],monitorTime,iteminfo[10]) log_info("打印日志LOG" +str(sql)) cmdtosql.execsql(sql) else:#报警:1.DNS 不通 reason = isAlarm #更新fail_count last_result数据表 update_table(iteminfo,reason) #判断失败次数 if int(iteminfo[12]) + 1 >= int(iteminfo[8]): if iteminfo[16]: send_messages(iteminfo,reason,'PROBLEM') #异常通知 ,插入alarm_log记录 sql="insert into uxin_alarm_log values('','%s','%s','%s','%s','PROBLEM')" %(iteminfo[2],iteminfo[3],monitorTime,reason) log_debug("打印日志LOG" +str(sql)) cmdtosql.execsql(sql) except Exception as e: log_error("monitor_ping_index():"+str(iteminfo[2]) + ' ' + str(e))
def monitor_website_index(iteminfo): ''' @Monitor 网页存活入口函数 ''' log_info("=====monitor_website_index======" + str(iteminfo)) try: monitorTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) monitor_item_updateTime(iteminfo) itemconfig = iteminfo url = iteminfo[4] isAlarm,result,reason,level = website_alive_check(url,itemconfig) if isAlarm == 0: #表示不报警 #fail_count 清零 update_fail_count(iteminfo,iteminfo[12]) #逻辑fail_count - Alarm_retry if int(iteminfo[12]) - int(iteminfo[8]) >= 0:#表示上次报警了,是否恢复报警 if iteminfo[16]: send_messages(iteminfo,reason,'RECOVERY') #恢复 ,插入alarm_log记录 sql="insert into uxin_alarm_log values(NULL,'%s','%s','%s','%s','RECOVERY')" %(iteminfo[2],iteminfo[3],monitorTime,iteminfo[10]) cmdtosql.execsql(sql) log_info(str(sql)) else:#报警: #更新fail_count last_result数据表 update_table(iteminfo,reason) #判断失败次数,需要 + 1 因为数据是最初被获取的 if int(iteminfo[12]) + 1 >= int(iteminfo[8]): if iteminfo[16]: send_messages(iteminfo,reason,'PROBLEM') #异常通知 ,插入alarm_log记录 sql="insert into uxin_alarm_log values('','%s','%s','%s','%s','PROBLEM')" %(iteminfo[2],iteminfo[3],monitorTime,reason) log_debug("打印日志LOG" +str(sql)) cmdtosql.execsql(sql) #所有流程走完后,更新时间 #monitor_item_updateTime(iteminfo) except Exception as e: log_error("monitor_website_index():"+str(e))
def monitor_local_index(iteminfo): ''' @Monitor 本地脚本监控 入口函数 暂定3个参数 IP 脚本绝对路径 对比字段 ''' try: monitorTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) monitor_item_updateTime(iteminfo) ip = iteminfo[2] arg2 = iteminfo[4] arg3 = iteminfo[15] isAlarm, reason = local_shell_check(ip, arg2, arg3) if isAlarm == True or isAlarm == "Connection Refused": #表示不报警 #fail_count 清零 update_fail_count(iteminfo, iteminfo[12]) #逻辑fail_count - Alarm_retry if int(iteminfo[12]) - int(iteminfo[8]) >= 0: #表示上次报警了,是否恢复报警 if iteminfo[16]: send_messages(iteminfo, ' ', 'RECOVERY') #恢复 ,插入alarm_log记录 sql = "insert into uxin_alarm_log values(NULL,'%s','%s','%s',\"%s\",'RECOVERY')" % ( iteminfo[2], iteminfo[3], monitorTime, iteminfo[10]) log_debug("打印日志LOG" + str(sql)) cmdtosql.execsql(sql) else: #报警: #更新fail_count last_result数据表 update_table(iteminfo, reason) #判断失败次数 #加1, 是因为iteminfo的值是 update_table 前获取的, 所以+1 if int(iteminfo[12]) + 1 >= int(iteminfo[8]): if iteminfo[16]: send_messages(iteminfo, reason, 'PROBLEM') #异常通知 ,插入alarm_log记录 sql = "insert into uxin_alarm_log values('','%s','%s','%s',\"%s\",'PROBLEM')" % ( iteminfo[2], iteminfo[3], monitorTime, reason) log_debug("打印日志LOG" + str(sql)) cmdtosql.execsql(sql) #所有流程走完后,更新时间 #monitor_item_updateTime(iteminfo) except Exception as e: log_error("monitor_local_index():" + str(iteminfo[2]) + ' ' + str(e))
def monitor_custom_index(iteminfo): ''' @Monitor 自定义监控 入口函数 暂定3个参数 IP 端口 对比字段 ''' try: monitorTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) monitor_item_updateTime(iteminfo) ip = iteminfo[2] arg2 = iteminfo[4] arg3 = iteminfo[15] scripts_list = DIRS['PY_OMS_LIB'] isAlarm, reason = custom_connect_check(ip, arg2, arg3) if isAlarm == 0: #表示不报警 #fail_count 清零 update_fail_count(iteminfo, iteminfo[12]) #逻辑fail_count - Alarm_retry if int(iteminfo[12]) - int(iteminfo[8]) >= 0: #表示上次报警了,是否恢复报警 if iteminfo[16]: send_messages(iteminfo, ' ', 'RECOVERY') #恢复 ,插入alarm_log记录 sql = "insert into uxin_alarm_log values(NULL,'%s','%s','%s',\"%s\",'RECOVERY')" % ( iteminfo[2], iteminfo[3], monitorTime, iteminfo[10]) cmdtosql.execsql(sql) log_info(str(sql)) else: #报警: #更新fail_count last_result数据表 update_table(iteminfo, reason) #判断失败次数 if int(iteminfo[12]) + 1 >= int(iteminfo[8]): if iteminfo[16]: send_messages(iteminfo, reason, 'PROBLEM') #异常通知 ,插入alarm_log记录 sql = "insert into uxin_alarm_log values('','%s','%s','%s',\"%s\",'PROBLEM')" % ( iteminfo[2], iteminfo[3], monitorTime, reason) cmdtosql.execsql(sql) log_info(str(sql)) #所有流程走完后,更新时间 #monitor_item_updateTime(iteminfo) except Exception as e: log_error("monitor_custom_index():" + str(iteminfo[2]) + ' ' + str(e))
def monitor_udp_index(iteminfo): ''' @Monitor udp 入口函数 ''' try: monitorTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) monitor_item_updateTime(iteminfo) ip = iteminfo[2] itemconfig = iteminfo port = itemconfig[4] isAlarm = udp_connect_check(ip, port) if isAlarm == True: #表示不报警 #fail_count 清零 update_fail_count(iteminfo, iteminfo[12]) #逻辑fail_count - Alarm_retry if int(iteminfo[12]) - int(iteminfo[8]) >= 0: if iteminfo[16]: send_messages(iteminfo, ' ', 'RECOVERY') #恢复 ,插入alarm_log记录 sql = "insert into uxin_alarm_log values(NULL,'%s','%s','%s','%s','RECOVERY')" % ( iteminfo[2], iteminfo[3], monitorTime, iteminfo[10]) log_debug("打印日志LOG" + str(sql)) cmdtosql.execsql(sql) else: #报警: reason = isAlarm #更新fail_count last_result数据表 update_table(iteminfo, reason) #判断失败次数 if int(iteminfo[12]) + 1 >= int(iteminfo[8]): if iteminfo[16]: send_messages(iteminfo, reason, 'PROBLEM') #异常通知 ,插入alarm_log记录 sql = "insert into uxin_alarm_log values('','%s','%s','%s','%s','PROBLEM')" % ( iteminfo[2], iteminfo[3], monitorTime, reason) log_debug("打印日志LOG" + str(sql)) cmdtosql.execsql(sql) #所有流程走完后,更新时间 #monitor_item_updateTime(iteminfo) except Exception as e: log_error("monitor_udp_index():" + str(iteminfo[2]) + ' ' + str(e))
def monitor_udp_index(iteminfo): ''' @Monitor udp 入口函数 ''' try: monitorTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) monitor_item_updateTime(iteminfo) ip = iteminfo[2] itemconfig = iteminfo port = itemconfig[4] isAlarm = udp_connect_check(ip,port) if isAlarm == True:#表示不报警 #fail_count 清零 update_fail_count(iteminfo,iteminfo[12]) #逻辑fail_count - Alarm_retry if int(iteminfo[12]) - int(iteminfo[8]) >= 0: if iteminfo[16]: send_messages(iteminfo,' ','RECOVERY') #恢复 ,插入alarm_log记录 sql="insert into uxin_alarm_log values(NULL,'%s','%s','%s','%s','RECOVERY')" %(iteminfo[2],iteminfo[3],monitorTime,iteminfo[10]) log_debug("打印日志LOG" +str(sql)) cmdtosql.execsql(sql)
def monitor_progress_index(iteminfo): ''' @Monitor progress 入口函数 ''' try: monitorTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) monitor_item_updateTime(iteminfo) ip = iteminfo[2] itemconfig = iteminfo progress = itemconfig[4] log_info(ip) log_info(progress) log_info(itemconfig[19]) isAlarm = progress_check(ip,progress,itemconfig[19]) log_info(88) #批量连接不上时,有用 if isAlarm == True or isAlarm == "Connection Refused": #表示不报警 # if isAlarm == True: #表示不报警 #fail_count 清零 update_fail_count(iteminfo,iteminfo[12]) log_info(22) #逻辑fail_count - Alarm_retry if int(iteminfo[12]) - int(iteminfo[8]) >= 0:#表示上次报警了,是否恢复报警 log_info(33) if iteminfo[16] or iteminfo[20]: log_info(44) send_messages(iteminfo,' ','RECOVERY') #恢复 ,插入alarm_log记录 sql="insert into uxin_alarm_log values(NULL,'%s','%s','%s',\"%s\",'RECOVERY')" %(iteminfo[2],iteminfo[3],monitorTime,iteminfo[10]) log_debug("打印日志LOG" +str(sql)) cmdtosql.execsql(sql) #连接不上时,跳过, 保持失败, 但不告警, 不更新 elif isAlarm == "Connection Refused": pass else:#报警: reason = isAlarm #更新fail_count last_result数据表 update_table(iteminfo,reason) #判断失败次数 if int(iteminfo[12]) + 1 >= int(iteminfo[8]): if iteminfo[16] or iteminfo[20]: send_messages(iteminfo,reason,'PROBLEM') #异常通知 ,插入alarm_log记录 sql="insert into uxin_alarm_log values('','%s','%s','%s',\"%s\",'PROBLEM')" %(iteminfo[2],iteminfo[3],monitorTime,reason) cmdtosql.execsql(sql) log_debug("打印日志LOG" +str(sql)) #所有流程走完后,更新时间 if isAlarm == "Connection Refused": sql="insert into uxin_alarm_log values('','%s','%s','%s',\"%s\",'PROBLEM')" %(iteminfo[2],iteminfo[3],monitorTime,'Connection Refused') cmdtosql.execsql(sql) log_info("IP地址: " + str(iteminfo[2]) + " 类型:" + str(iteminfo[1]) + " 报警名:" + str(iteminfo[3]) + \ " 检测对象:" + str(iteminfo[4]) + " Connection Refused") else: pass #monitor_item_updateTime(iteminfo) except Exception as e: ip = iteminfo[2] log_error( str(ip) + "monitor_progress_index():"+str(e))
log_debug("打印日志LOG" +str(sql)) cmdtosql.execsql(sql) else:#报警: reason = isAlarm #更新fail_count last_result数据表 update_table(iteminfo,reason) #判断失败次数 if int(iteminfo[12]) + 1 >= int(iteminfo[8]): if iteminfo[16]: send_messages(iteminfo,reason,'PROBLEM') #异常通知 ,插入alarm_log记录 sql="insert into uxin_alarm_log values('','%s','%s','%s','%s','PROBLEM')" %(iteminfo[2],iteminfo[3],monitorTime,reason) log_debug("打印日志LOG" +str(sql)) cmdtosql.execsql(sql) #所有流程走完后,更新时间 #monitor_item_updateTime(iteminfo) except Exception as e: log_error("monitor_udp_index():"+str(iteminfo[2]) + ' ' + str(e)) def monitor_progress_index(iteminfo): ''' @Monitor progress 入口函数 ''' try: monitorTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) monitor_item_updateTime(iteminfo)