Los usuarios avanzados en Linux saben que valor tienen los archivos log, ya que estos almacenan un registro de la información de la actividad del sistema, aplicaciones, servicios, eventos… ello hace que ante cualquier incidente podamos recurrir a ver e interpretar la información almacenada en el log correspondiente.
Por ejemplo, el registro informativo que se realiza de la actividad del sistema se almacena en /var/log/messages o en /var/log/syslog.
Pero también están disponible otros logs importantes como los correspondientes al kernel, sesiones de usuarios, servidor de correo electrónico, servidor Apache, servidor SQL… Cada uno de ellos tienen asignado su archivo de almacenamiento.
Una herramienta que muchos usuarios utilizan para mantenerse informados del estado del sistema a través de los logs es logwatch. Con logwatch recibirás de modo estructurado los logs con la frecuencia que especifiques al correo electrónico. Esta herramienta desarrollada en Perl es fácil de implementar y configurar si tienes conocimientos de trabajar en la terminal de Linux.
¿Cómo instalar logwatch?
Según la distribución de Linux que estemos usando deberemos ejecutar la instalación de logwatch:
- Debian, Ubuntu, Kali Linux, Raspbian…
apt-get install logwatch
- Arch Linux
pacman -S logwatch
- CentOS
yum install logwatch
- Fedora
dnf install logwatch
- Windows (WSL2)
sudo apt-get update sudo apt-get install logwatch
- Dockerfile
dockerfile.run/logwatch
¿Cómo configurar logwatch?
Primeramente deberemos configurar el archivo logwatch.conf que se encuentra en /usr/share/logwatch/default.conf/logwatch.conf , en este archivo estableceremos como mínimo los siguientes campos:
MailTo: en esta línea sustituiremos root por la dirección de correo electrónico donde queremos recibir el informe cada vez que se ejecute logwatch.
MailTo = root
MailFrom: en esta línea especificaremos la dirección de correo electrónico que remite el correo con el informe.
MailFrom = Logwatch
Range: en esta línea especificamos el periodo que queremos recibir, está disponible usar: All, Today y Yesterday
Range = yesterday
Detail: en esta línea especificaremos el nivel de detalle del informe, pudiendo ser bajo, medio, alto o un número. Bajo es eqivalente a 0, medio es equivalente a medio y alto es equivalente a 10.
Detail = Low
¿Cómo usar logwatch?
Lo lógico es hacer que logwatch se ejecute mediante una tarea programada cada cierto tiempo, por ejemplo, una vez al día y a una hora indicada. Con ello podremos recibir automáticamente los informes de logwatch en el correo electrónico y no tener que ejecutarlo manualmente.
Ejemplo para ejecutar logwatch cada día a las 1:00 de la madrugada:
Editar el cron, como root:
crontab -e
o con sudo:
sudo crontab -e
Añadir al final del archivo la siguiente línea:
00 1 * * * /usr/sbin/logwatch
Para asegurarte de la ruta donde se encuentra el ejecutable logwatch puedes usar el comando whereis:
whereis logwatch
Pero también podemos ejecutar logwatch manualmente, para ello podemos escribir la siguiente línea en la terminal:
logwatch --output=stout --detail high --format text
Puedes obtener más información de logwatch escribiendo en la terminal
logwatch --help
o ver el manual escribiendo en la terminal
man logwatch
La web oficial del proyecto es: https://sourceforge.net/projects/logwatch/