Swatchdog - Simple Log File Watcher en tiempo real en Linux


Swatchdog (el " WATCH DOG simple ") es un script simple de Perl para monitorear archivos de registro activos en sistemas similares a Unix como Linux. Observa sus registros en función de las expresiones regulares que puede definir en un archivo de configuración. Puede ejecutarlo desde la línea de comandos o en segundo plano, desconectado de cualquier terminal utilizando la opción de modo daemon.

Tenga en cuenta que el programa originalmente se denominó swatch (el " Simple Watcher "), pero una solicitud de un antiguo fabricante de relojes suizo para un cambio de nombre hizo que el desarrollador cambiara su nombre a < fuerte> swatchdog .

Es importante destacar que swatchdog ha crecido a partir de una secuencia de comandos para ver los registros producidos por la función de syslog de Unix, y puede monitorear casi cualquier tipo de registros.

Cómo instalar Swatch en Linux

El paquete swatchdog está disponible para instalar desde los repositorios oficiales de las distribuciones principales de Linux como un paquete “ swatch ” a través de un administrador de paquetes como se muestra.

$ sudo apt install swatch	[On Ubuntu/Debian]
$ sudo yum install epel-release && sudo yum install swatch	[On RHEL/CentOS]
$ sudo dnf install swatch	[On Fedora 22+]

Para instalar la versión más reciente de swatchdog , debe compilarlo desde la fuente utilizando los siguientes comandos en cualquier distribución de Linux.

$ git clone https://github.com/ToddAtkins/swatchdog.git
$ cd swatchdog/
$ perl Makefile.PL
$ make
$ sudo make install
$ sudo make realclean

Una vez que haya instalado la muestra , debe crear su archivo de configuración (la ubicación predeterminada es /home/mial/.swatchdogrc o .swatchrc ) , para determinar qué tipos de patrones de expresión buscar y qué tipo de acción (s) se deben realizar cuando se combina un patrón.

$ touch /home/tecmint/.swatchdogrc
OR
$ touch /home/tecmint/.swatchrc

Agregue su expresión regular en este archivo y cada línea debe contener una palabra clave y un valor (a veces opcional), separados por un espacio o un signo igual de (=) . Debe especificar un patrón y una (s) acción (es) que se realizarán cuando un patrón coincida.

Utilizaremos un archivo de configuración simple, puede encontrar más opciones en la página man de swatchdog, por ejemplo.

watchfor  /sudo/
	echo red
	[email protected], subject="Sudo Command"

Aquí, nuestra expresión regular es una cadena literal - "sudo" , significa que cada vez que aparezca la cadena sudo en el archivo de registro, se imprimirá al terminal en texto rojo y correo especifica la acción a realizar, que es hacer eco del patrón coincidente en el terminal y enviar un correo electrónico a la dirección especificada, de forma receptiva.

Una vez que lo haya configurado, swatchdog lee el archivo de registro /var/log/syslog de forma predeterminada, si este archivo no está presente, lee /var/log/messages .

$ swatch     [On RHEL/CentOS & Fedora]
$ swatchdog  [On Ubuntu/Debian]

Puede especificar un archivo de configuración diferente utilizando el indicador -c como se muestra en el siguiente ejemplo.

Primero crea un directorio de configuración de muestra y un archivo.

$ mkdir swatch
$ touch swatch/secure.conf

A continuación, agregue la siguiente configuración en el archivo para controlar los intentos de inicio de sesión fallidos, los intentos de inicio de sesión SSH fallidos, los inicios de sesión SSH correctos desde el archivo de registro /var/log/secure

watchfor /FAILED/
echo red
[email protected], subject="Failed Login Attempt"

watchfor /ROOT LOGIN/
echo red
[email protected], subject="Successful Root Login"

watchfor /ssh.*: Failed password/
echo red
[email protected]com, subject="Failed SSH Login Attempt"

watchfor /ssh.*: session opened for user root/ 
echo red
[email protected], subject="Successful SSH Root Login"

Ahora ejecute el Swatch especificando el archivo de configuración usando el -c y el archivo de registro usando la marca -t como se muestra.

$ swatchdog -c ~/swatch/secure.conf -t /var/log/secure

Para ejecutarlo en segundo plano, use la marca --daemon ; en este modo, se separa de cualquier terminal.

$ swatchdog ~/swatch/secure.conf -t /var/log/secure --daemon  

Ahora, para probar la configuración de Swatch, intente iniciar sesión en el servidor desde una terminal diferente, verá la siguiente salida impresa en la terminal donde se está ejecutando Swatchdog.

*** swatch version 3.2.3 (pid:16531) started at Thu Jul 12 12:45:10 BST 2018

Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)

También puede ejecutar varios procesos de muestra para supervisar varios archivos de registro.

$ swatchdog -c ~/site1_watch_config -t /var/log/nginx/site1/access_log --daemon  
$ swatchdog -c ~/messages_watch_config -t /var/log/messages --daemon
$ swatchdog -c ~/auth_watch_config -t /var/log/auth.log --daemon

Para obtener más información, echa un vistazo a la página del hombre swatchdog.

$ man swatchdog

Swatchdog SourceForge Repository: https://sourceforge.net/projects/swatch/

Las siguientes son algunas guías adicionales de monitoreo de registros que le serán útiles:

  1. 4 Ways to Watch or Monitor Log Files in Real Time
  2. How to Create a Centralized Log Server with Rsyslog
  3. Monitor Server Logs in Real-Time with “Log.io” Tool
  4. lnav – Watch and Analyze Apache Logs from a Linux Terminal
  5. ngxtop – Monitor Nginx Log Files in Real Time in Linux

Swatchdog es una sencilla herramienta activa de monitoreo de archivos de registro para sistemas similares a Unix como Linux. Pruébelo y comparta sus opiniones o haga preguntas en la sección de comentarios.