def graficaProcesador(propiedad, directorio, num_proc, no_spam): ret = rrdtool.graph(propiedad) ultima_carga = procesarCadenaRetorno(ret[2][0]) tipo_linea = comparacionValoresContrato(ultima_carga, CONTRATO_PROCESADORES) mensajeCorreo = seleccionMensajeCorreoProcesador(tipo_linea) if mensajeCorreo != "" and no_spam == True: # Se enviara correo procesador = 'procesador' + str(num_proc) enviaAlerta(procesador, directorio + '/' + procesador + '.png')
def graficaMemoria(propiedad, directorio, nombre, no_spam): ret = rrdtool.graph(propiedad) nombre = nombre.lstrip().rstrip() if "Physical" in nombre: ultima_carga = procesarCadenaRetorno(ret[2][0]) tipo_linea = comparacionValoresContrato(ultima_carga, CONTRATO_RAM) mensajeCorreo = seleccionMensajeCorreoProcesador(tipo_linea) if mensajeCorreo != "" and no_spam == True: # Se enviara correo enviaAlerta('Memoria RAM: ' + mensajeCorreo, \ directorio + '/' + nombre + '.png')
t = time.localtime() # Legible para fecha normal tiempoNow = int(time.time( )) # Es mas facil manejar este para sacar la diferencia de n minutos #print str(ret) + "->" + ret[2][0] #print "Ventana: " + str(tiempoNow - timeOfLastSentMail) if (ret[2][0] != '-nan'): falla_actual = int(ret[2][0]) #deben enviarse dos correos: uno cuando empieza a detectar aberración y otro cuando deja de detactarla #inicio falla if (falla_anterior == 0 and falla_actual == 1): if (tiempoNow - timeOfLastSentMail > 60 * VENTANA_CORREO): enviaAlerta("Comienzo de aberracion (comportamiento anormal) detectado a las: " \ + time.asctime(t), NOMBRE_PNG) timeOfLastSentMail = tiempoNow bandera_falla_iniciada = 1 print "mail start sent" #fin falla, no necesita verificarse la ventana de tiempo pero si que se haya enviado un correo de inicio de falla if (falla_anterior == 1 and falla_actual == 0 and bandera_falla_iniciada == 1): enviaAlerta("Fin de aberracion detectada (comportamiento anormal), a las: " \ + time.asctime(t), NOMBRE_PNG) #No es necesario poner marca de tiempo del timeOfLastSentMail timeOfLastSentMail = tiempoNow bandera_falla_iniciada = 0 print "mail end sent" falla_anterior = falla_actual
def enviaCorreoSiEsMayor(valor, valorLimite, mensaje, rutaArchivo): if valor > valorLimite: # El valor excede lo esperado enviaAlerta(mensaje, rutaArchivo)