Swatchdog - Observador de archivos de registro simple en tiempo real en Linux


Swatchdog (el "Simple WATCH DOG") es un script de Perl simple para monitorear archivos de registro activos en sistemas similares a Unix como Linux. Observa sus registros basándose en 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 usando la opción del modo demonio.

Tenga en cuenta que el programa se llamaba originalmente swatch (el "Simple Watcher"), pero una solicitud de la antigua compañía de relojes suiza para un cambio de nombre hizo que el desarrollador cambiara su nombre a swatchdog.

Es importante destacar que swatchdog ha pasado de ser un script para ver registros producidos por la función syslog de Unix, y puede monitorear casi cualquier tipo de registro.

Cómo instalar Swatch en Linux

El paquete swatchdog está disponible para instalar desde los repositorios oficiales de las principales distribuciones 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 última versión de swatchdog, debe compilarla 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/$USER/.swatchdogrc o .swatchrc), para determinar qué tipos de patrones de expresión buscar y qué tipo de acciones deben tomarse cuando se empareja 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 (u003d) igual. Debe especificar un patrón y las acciones que se realizarán cuando se haga coincidir un patrón.

Usaremos un archivo de configuración simple, puede encontrar más opciones en la página de manual 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 la cadena sudo apareció en el archivo de registro, se imprimirá en la terminal en texto rojo y el correo especificará la acción a tomar, que es hacer eco de la coincidencia. patrón en el terminal y enviar un correo electrónico a la dirección especificada, de forma receptiva.

Después de haberlo 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 usando el indicador -c como se muestra en el siguiente ejemplo.

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

$ mkdir swatch
$ touch swatch/secure.conf

Luego, agregue la siguiente configuración en el archivo para monitorear los intentos fallidos de inicio de sesión, los intentos fallidos de inicio de sesión SSH, los inicios de sesión SSH exitosos 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], subject="Failed SSH Login Attempt"

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

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

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

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

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

Ahora, para probar la configuración de muestra, intente iniciar sesión en el servidor desde la 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 monitorear 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, consulte la página de manual de swatchdog.

$ man swatchdog

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

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

  1. 4 formas de ver o monitorear archivos de registro en tiempo real
  2. Cómo crear un servidor de registro centralizado con Rsyslog
  3. Supervise los registros del servidor en tiempo real con la herramienta "Log.io"
  4. lnav: observe y analice los registros de Apache desde una terminal de Linux
  5. ngxtop: supervise los archivos de registro de Nginx en tiempo real en Linux

Swatchdog es una sencilla herramienta de supervisión de archivos de registro activos para sistemas similares a Unix, como Linux. Pruébelo y comparta sus pensamientos o haga cualquier pregunta en la sección de comentarios.