lunes, 18 de junio de 2012

Enviar LogWatch sin servidor de correo localhost

Holas, eso de administrar varios servidores es algo complejo, una buena herramienta es usar LogWatch que envia un resumen de tus archivos de Log diariamente, pero este programa funciona bien siempre y cuando tengas un smtp server en el mismo equipo, pero que sucede si no tienes este "smtp server en tu localhost", pues aqui esta la solucion.. generar un archivo texto con el resumen y luego enviarlo usando el programita sendEmail.

1. Instalar Logwatch si no lo tienes instalado
yum install logwatch

2. Descargar sendEmail en algun directorio (para este ejemplo /root)
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

3. Descomprimir
tar -zxvf sendEmail-v1.56.tar.gz

4. Mover o Copiar la carpeta descomprimida a /usr/lib, en mi caso mover
 mv sendEmail-v1.56 /usr/lib

5. Crear un enlace simbolico para la ejecucion de sendEmail desde cualquier directorio
ln -s /usr/lib/sendEmail-v1.56/sendEmail /usr/bin/

6. Editar Logwatch.conf para que genere un archivo de texto
nano /usr/share/logwatch/default.conf/logwatch.conf

- Descomentamos la linea
Save = /tmp/logwatch

- y comentamos la linea
#mailer = "sendmail -t"

Guardamos y salimos, o salimos guardando :o)

7. Probamos que logwatch funcione bien, ejecutamos desde la linea de comandos:
logwatch

y luego vemos que haya generado correctamente el archivo:
more /tmp/logwatch

*En algunos sistemas CentOS al ejecutar logwatch pueden tener un error de formato de fecha, eso se corrige con el comando:
echo '-0500' > /etc/timezone

8. Creamos un archivo bash para que haga el envio del archivo /tmp/logwatch:
nano /usr/share/logwatch/logToMail.sh

- Ponemos el sig. contenido:

#!/bin/bash

sendEmail -s mail.miservidor.com:25 -u "Logwatch de Mi Servidor" -t usuariodestino@miservidor.com -f "usuariodestino@miservidor.com" -xu usuariosmtp -xp passwordsmtp -a /tmp/logwatch -m "Logwath de Mi Servidor"

exit


Guardamos y salimos, o salimos guardando :o), para referencia de los parametros de sendEmail pueden poner en al linea de comandos: sendEmail --help


9. Cambiamos los permisos de nuestro archivo logToMail.sh para que sea de ejecucion:
chmod 775 /usr/share/logwatch/logToMail.sh







10. Creamos la regla en crontab para que haga el envio automatico:
crontab -e



- Alli añadimos la linea siguiente para que envie todos los dias a las 6am:
0 6 * * * /usr/share/logwatch/logToMail.sh > /usr/share/logwatch/logToMail.log



Listo!!!, es todo.. bye