Configurar logwatch en servidores prehistóricos

Recientemente tuve la necesidad de instalar logwatch en un servidor bastante viejito:

# cat /etc/issue
Fedora Core release 5 (Bordeaux)
Kernel \r on an \m

Logwatch es una excelente herramienta que analiza y reporta los logs del sistema por mail. Logwatch es capaz de enviar los reportes en formato de texto plano o en formato html. En formato de texto plano funciona correctamente con la configuración básica, el problema es al tratar de enviarlo en formato html.



La versión de logwatch que incluye "Fedora Core release 5" es la 7.1 (la versión actual es la 7.4):

# logwatch --version
Logwatch 7.1 (released 11/12/05)

Para realizar una configuración básica de logwatch se deben actualizar las variables "MailTo = admin@pepe.org" (casilla donde se enviarán los reportes), "Archives = yes" (indicar que también revise archivos de log compactados), "Detail = 5" (nivel de detalle "Medium"). Con esta configuración logwatch funciona correctamente:

# logwatch

El mail recibido en la casilla "admin@pepe.org" es el siguiente:

################### LogWatch 7.1 (11/12/05) ####################
Processing Initiated: Mon Mar 4 13:32:34 2013
Date Range Processed: yesterday
( 2013-Mar-03 )
Period is day.
Detail Level of Output: 5
Type of Output: unformatted
Logfiles for Host: server666.pepe.org
##################################################################

--------------------- Cron Begin ------------------------

Commands Run:
User root:
/etc/atop/atop.daily: 1 Time(s)

[Continúa...]

En versiones modernas de logwatch, para indicar que se envíe el reporte en formato html se debe configurar la variable Format, pero en las versiones antiguas se utilizaba la variable Output.

# nano /usr/share/logwatch/default.conf/logwatch.conf

Editar el archivo de configuración de logwatch y agregar la siguiente línea:

Output = html

En este servidor en particular, al ejecutar logwatch utilizando "Output = html" ocurre el siguiente error:

# logwatch 
sh: uuencode: command not found
Null message body; hope that's ok

El problema es que el sistema no posee la herramienta uuencode necesaria para codificar el mail:

# whereis uuencode
uuencode: /usr/share/man/man1p/uuencode.1p.gz

Esta herramienta se incluye en el paquete sharutils:

The basic shar utilities

shar Invocation: Invoking the shar program
unshar Invocation: Invoking the unshar program
uuencode Invocation: Invoking the uuencode program
uudecode Invocation: Invoking the uudecode program

Por ejemplo, en un servidor CentOS la información del paquete sharutils es la siguiente:

# repoquery -i sharutils                                                                        

Name        : sharutils
Version     : 4.7
Release     : 6.1.el6
Architecture: x86_64
Size        : 631381
Packager    : CentOS BuildSystem 
Group       : Applications/Archiving
URL         : http://www.gnu.org/software/sharutils/
Repository  : base
Summary     : The GNU shar utilities for packaging and unpackaging shell archives
Source      : sharutils-4.7-6.1.el6.src.rpm
Description :
The sharutils package contains the GNU shar utilities, a set of tools
for encoding and decoding packages of files (in binary or text format)
in a special plain text format called shell archives (shar).  This
format can be sent through e-mail (which can be problematic for regular
binary files).  The shar utility supports a wide range of capabilities
(compressing, uuencoding, splitting long files for multi-part
mailings, providing checksums), which make it very flexible at
creating shar files.  After the files have been sent, the unshar tool
scans mail messages looking for shar files.  Unshar automatically
strips off mail headers and introductory text and then unpacks the
shar files.

Se debe proceder entonces con la instalación de sharutils, para ello es posible descargar la última versión de desde el sitio oficial http://ftp.gnu.org/gnu/sharutils o descargar versiones antiguas desde http://rpmfind.net/linux/rpm2html/search.php?query=sharutils&submit=Search

En este caso se compila la última versión disponible. Luego de descargar el paquete .tar.gz desde el sitio oficial se debe ejecutar:

tar xvf sharutils-4.13.1.tar.gz
cd sharutils-4.13.1
./configure
make
make install

Una vez instalado se ejecuta logwatch sin errores:

# logwatch

Ahora, el mail recibido en la casilla "admin@pepe.org" es el siguiente:

Logwatch incluye una tarea programada en cron (/etc/cron.daily/0logwatch) para enviar el reporte a diario. Si el día siguiente se recibe un mail en blanco es porque el directorio donde está el binario de uuencode no está en la variable PATH cuando se ejecuta cron.daily. Como parche es posible editar el archivo /etc/cron.daily/0logwatch y agregar la ruta al binario:

# whereis uuencode
uuencode: /usr/local/bin/uuencode /usr/share/man/man1p/uuencode.1p.gz
# nano /etc/cron.daily/0logwatch

Buscar "uuencode" y reemplazar por "/usr/local/bin/uuencode" (hay una única aparición).



Suscribirse

    Registrate para recibir las novedades y artículos por correo electrónico.

Linuxito en G+