Está en la página 1de 3

Envo va rsyslog

Rsyslog es el paquete syslog por defecto que se suele encontrar en las distribuciones de Linux actuales.
Suele constar de un fichero de configuracin principal (normalmente /etc/rsyslog.conf) y un directorio (normalmente /etc/rsyslog.d/) donde se
pueden guardar de forma estructurada y separados por ficheros los diferentes filtros y plantillas para el procesamiento de reglas rsyslog.
En el siguiente apartado se explica como configurar rsyslog, de forma manual, para reenviar los eventos internos del sistema a un relay externo.
Recordar que para las principales distribuciones de Linux es posible realizar toda esta configuracin de forma automtica (ver referencia Instalaci
n de paquetes software)

Problemas comunes
No funciona el envo por SSL/TLS en Ubuntu 12 (consultar Instalacin software en Ubuntu, seccin "Errores comunes en Ubuntu 12.x")
Versin desactualizada de rsyslog en Debian 5 (Lenny) (consultar Instalacin software en Debian, seccin "Errores comunes en Debian
5.x")
Actualizar de syslog-ng a rsyslog en CentOS 5 (consultar Instalacin sofftware en CentOS, seccin "Errores comunes en CentOS 5.x")
No funciona el envo de logs por poltica SELinux, principalmente en Fedora y RHEL (consultar Configuracin de syslog & SELinux)

Configuracin
Para reenviar los logs internos de un sistema por TCP a logtrust crearemos los siguientes ficheros.
El fichero 00-logtrust.conf contiene opciones de configuracin a nivel general.

/etc/rsyslog.d/00-logtrust.conf
$ModLoad imfile
$ModLoad immark
$MarkMessagePeriod 60
$WorkDirectory /var/spool/rsyslog
$RepeatedMsgReduction off
#Disable imuxsock rate limit
$IMUXSockRateLimitInterval 0
$SystemLogRateLimitInterval 0

$WorkDirectory debe existir y el usuario con que se ejecuta rsyslog debe tener permisos sobre el mismo. En algunas distribuciones no viene
creado este directorio, en otras si lo esta y en otras aparece en otro PATH (p.e /var/log/rsyslog).
Para saber con que usuario se ejecuta rsyslog:

Usuario rsyslog
ps -ouser= $(pgrep rsyslogd)

Si es distinto de root (en algunas distribuciones por defecto se ejecuta como root y en otras se hace un drop de privilegios al usuario syslog) se
recomienda realizar:

Permisos /var/spool/rsyslog
mkdir /var/spool/rsyslog
chown syslog:syslog /var/spool/rsyslog
chmod 770 /var/spool/rsyslog

El fichero 49-logtrust.conf es el encargado de reenviar los eventos al relay de logtrust:

/etc/rsyslog.d/49-logtrust.conf
$template boxunix,"<%PRI%>%timegenerated% %HOSTNAME% box.unix.%syslogtag%%msg%"
#ActionQueue section
$ActionQueueType
$ActionQueueFileName
$ActionResumeRetryCount
$ActionQueueSaveOnShutdown
*.*

LinkedList
ltboxq1
-1
on

@@LOGTRUST-RELAY:PORT;boxunix

Aqu se le indica a rsyslog que todos los eventos que lleguen al sistema va syslog (y que no hayan sido eliminados por una regla anterior) se
reenven al host/ip:puerto especificado en LOGTRUST-RELAY:PORT
La seccin ActionQueue es opcional y se utiliza para evitar perder eventos cuando se produce algn problema de conectividad con el relay.
Los ficheros de /etc/rsyslog.d/ se procesan en orden, si tenemos otros ficheros de configuracin suele ser conveniente que se procesen antes y
dejar este fichero de los ltimos de la cadena. Principalmente debido al uso de wildcards *.* para evitar posibles logs duplicados.

Ejemplo de ordenacin ficheros rsyslog


# ls -1 /etc/rsyslog.d/
-rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--

1
1
1
1
1
1
1
1

root
root
root
root
root
root
root
root

root 241 Oct 24 13:04 00-logtrust.conf


root 642 Oct 24 13:02 40-iptables.conf
root 1495 Oct 24 13:02 45-apache.conf
root 899 Oct 24 13:02 45-mongodb.conf
root 916 Oct 24 13:02 45-myapplogfile.conf
root 901 Oct 24 13:02 45-tomcat.conf
root 597 Oct 24 13:02 46-lt-monitor.conf
root 664 Oct 24 13:02 49-logtrust.conf

A continuacin reiniciamos rsyslog:

Reiniciar demonio rsyslog


/etc/init.d/rsyslog restart

Para comprobar si se estn reenviando los eventos podemos usar el comando logger:

Test de envo
$
$
$
$
$

logger
logger
logger
logger
logger

"Hello
"Hello
"Hello
"Hello
"Hello

from
from
from
from
from

an
an
an
an
an

unsecure
unsecure
unsecure
unsecure
unsecure

log
log
log
log
log

source1"
source2"
source3"
source4"
source5"

Se puede comprobar si los logs se han enviado de forma correcta consultado la tabla box.unix en la parte de consultas dentro de la aplicacin
web.
Si queremos monitorizar ficheros de log de aplicaciones que residen en el sistema pero que no reportan va syslog consultar la referencia Monitor
izacin de ficheros va rsyslog
Si queremos configurar rsyslog para utilizar un canal cifrado y autenticado consultar la referencia Envo seguro va rsyslog
Si nuestro sistema tiene SELinux habilitado en modo enforcing (ejecutar comando getenforce para comprobar el estado) es probable que
tengamos que habilitar excepciones en la poltica de SELinux consultar la referencia Configuracin de syslog & SELinux

Referencias
Instalacin de paquetes software
Monitorizacin de ficheros va rsyslog
Envo seguro va rsyslog
Configuracin de syslog & SELinux

También podría gustarte