lunes, 18 de febrero de 2013

Logwatch configuracion para nuevo servicio de log

Logwatch es un sistema personalizable de analisis de logs, desarrollado en Perl. Recorre todos y cada uno de los ficheros logs que se le especifiquen, mientras los parsea; al finalizar genera un reporte del analisis tipo resumen y hasta puede enviarlo por mail. Funciona sin problemas en la mayoria de los sistemas y en general viene preinstalado de base en muchas distribuciones de Linux. Esta es la página del proyecto.

Para instalarlo, basta con ejecutar # yum install logwatch.
Si bien este software trae soporte de base para muchos servicios comunes como Login, Apache2, SSH, etc; es relativamente sencillo extenderlo para dar soporte a un servicio nuevo. 

La estructura básica de sus directorios y ficheros es como se muestra a continuación:


etc
| logwatch
|-- conf
|---- logfiles
|       rpm-check.conf
|---- services
|       rpm-check.conf
|-- scripts
|---- services
|       rpm-check


Este ejemplo de configuracion, envia con el logwatch el contenido de un archivo de log.

La carpeta /etc/logwatch 

vim /etc/logwatch/conf/logfiles/rpm-check.conf

# What actual file?  Defaults to LogPath if not absolute path....
#LogFile = /var/log/asterisk/full
LogFile = /var/log/controles/rpm.txt

# If the archives are searched, here is one or more line
# (optionally containing wildcards) that tell where they are...
#If you use a "-" in naming add that as well -mgt
#Archive = /var/log/asterisk/messages.*
#Archive = /var/log/asterisk/full.*

# Expand the repeats (actually just removes them now)
*ExpandRepeats


Luego, creamos el archivo vim /etc/logwatch/conf/services/rpm-check.conf

# You can put comments anywhere you want to.  They are effective for the
# rest of the line.

# this is in the format of  = .  Whitespace at the beginning
# and end of the lines is removed.  Whitespace before and after the = sign
# is removed.  Everything is case *insensitive*.

# Yes = True  = On  = 1
# No  = False = Off = 0

Title = "Chequeo de RPMs"

# Which logfile group...
LogFile = rpm-check

*RemoveHeaders


Por último, creamos el fichero vim /etc/logwatch/scripts/services/rpm-check  
#!/usr/bin/perl
# Copyright header...

use strict;
use Logwatch ':all';

print "Log rpm.txt\n";
my @vec = '';
open(ARCHIVO,"</var/log/controles/rpm.txt");
#Carga el contenido de rpm.txt en el vector:@vec

@vec = <ARCHIVO>;
#Mostar el resultado

foreach $a (@vec)

{ print "$a"; }


print "\nLog PROBLEMAS.TXT\n";
my @vec = '';
open(ARCHIVO,"</var/log/controles/PROBLEMAS.TXT");
#Carga el contenido de rpm.txt en el vector:@vec


@vec = <ARCHIVO>;
#Mostar el resultado

foreach $a (@vec)

{ print "$a"; }


Para compilar y hacer que logwatch envie el correo.

/usr/share/logwatch/scripts/logwatch.pl --debug High \

o


/usr/sbin/logwatch --mailto user@example.com --format html --service secure

Con el comando mail revisamos el correo.
Eliminamos correo tipiando d2-9 
donde 2 es el num de correo inicial a eliminar, y 9 es el ultimo.
Con q salimos.

No hay comentarios:

Publicar un comentario