El siguiente PLUGIN para NAGIOS, lee un archivo de log transaccional y verifica que el LOG tenga movimiento. Se pone un UMBRAL en segundos, para este caso si el LOG no tiene movimientos en 5 minutos (300 segundos) procederá a emitir una alerta CRITICA.-
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#!/bin/bash # Ruta al archivo de log LOG_FILE="/ruta/al/log.txt" # Tiempo máximo permitido sin cambios (en segundos) MAX_IDLE=300 # Función para obtener la última línea con fecha válida get_last_timestamp() { tail -n 100 "$LOG_FILE" | grep -E '^[0-9]{4}/[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}' | tail -n 1 | awk '{print $1 " " $2}' } # Obtener la última fecha del log LAST_TIMESTAMP=$(get_last_timestamp) if [ -z "$LAST_TIMESTAMP" ]; then echo "CRÍTICO: No se encontró ninguna línea válida en el log." exit 1 fi # Convertir la fecha del log y la actual a segundos desde epoch LAST_EPOCH=$(date -d "$LAST_TIMESTAMP" +%s) CURRENT_EPOCH=$(date +%s) # Calcular diferencia DIFF=$((CURRENT_EPOCH - LAST_EPOCH)) if [ "$DIFF" -gt "$MAX_IDLE" ]; then echo "CRÍTICO: El log no ha tenido actividad en los últimos $DIFF segundos." exit 2 else echo "OK: Última actividad hace $DIFF segundos." exit 0 fi |