[swatchdog]. Visualizador de archivos de registro con coincidencia mediante expresiones regulares, resaltado y puntos de enlace [hooks] diseñado para supervisar la actividad del sistema y ejecutar acciones automáticamente cuando aparecen. Es especialmente útil para supervisar la actividad de un servidor, detectar intentos de acceso sospechosos, identificar errores y recibir avisos sin tener que revisar los registros manualmente. Ejemplo básico del proceso para detectar errores:
Crear el archivo de configuración
nano ~/.swatchdogrc
watchfor /error/i
echo red
exec fyi -t 0 "existen errores"
watchfor /failed/i
echo green
exec fyi -t 0 "existen faileds"
watchfor /error/i buscará la palabra error, sin distinguir entre mayúsculas y minúsculas, echo red mostrará la línea coincidente en rojo, lo mismo con la palabra failed y la mostrará en verde y mostrar en pantalla una nota con el texto que se indica y permanezca hasta que el usuario no la cierre, cosa que no es necesario realizar porque la nota se va actualizando si detecta nuevos errores y fallos, actualizando un contador.
$ sudo --preserve-env=HOME,TERM swatchdog -c $HOME/.swatchdogrc -t /var/log/syslog --daemon
$ sudo --preserve-env=HOME,TERM swatchdog -c $HOME/.swatchdogrc -t /var/log/syslog
$ sudo --preserve-env=HOME,TERM swatchdog -c $HOME/.swatchdogrc -f /var/log/syslog
Para comprobar el funcionamiento, en una terminal lanzar:
$ sudo --preserve-env=HOME,TERM swatchdog -c $HOME/.swatchdogrc -t /var/log/syslog
y dejarla abierta, abrir otra terminal y lanzar:
$ logger "Este es un mensaje de prueba con un error simulado"
$ logger "Este otro mensaje de failed en el sistema"
En la primera terminal aparecerá el primer mensaje en rojo y el segundo en verde.
1.-
Activar/desactivar el servicio con systemd
# nano /etc/systemd/system/swatchdog.service
[Unit]
Description=Swatchdog Log Monitor
After=network.target syslog.target
[Service]
Type=simple
ExecStart=sudo --preserve-env=HOME,TERM /usr/bin/swatchdog -c /home/tux/.swatchdogrc -t /var/log/syslog
Restart=on-failure
[Install]
WantedBy=multi-user.target
# systemctl enable swatchdog.service
# systemctl start swatchdog.service
# systemctl status swatchdog.service