Manos a la obra. Por un lado tendremos que configurar la parte del servidor, que a fin de cuentas será aquella que reciba todo los datos. Para permitir que nuestro servidor de logs reciba peticiones, debemos modificar el fichero de configuración de rsyslog, que encontramos normalmente en /etc/rsyslog.conf . En este fichero habilitamos un par de cosillas:
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
Estas opciones modifican el parametro de -r de syslog que ya está obsoleto. Una vez modificado, para que el servidor asuma los cambios, reiniciamos el demonio rsyslog.
/etc/init.d/rsyslog restart
o
service rsyslog restart
Con esto hemos habilitado la recepción de logs en nuestro servidor.Vamos con la parte del cliente. Suponemos que nuestro cliente es otro Debian, la configuración es sencilla, simplemente introduciremos en el archivo /etc/rsyslog.conf la siguiente linea.
*.* @<IP remota>
La @ nos indica que deben enviarse los logs a un servidor remoto. si aparece una sola @ será utilizando UDP, colocando dos @ utilizaremos TCP. Sencillo.
Ya tendriamos configurado nuestro servidor de syslog para recibir logs de nuestro cliente Debian, pero hay un pequeño incoveniente. Con la configuración que tenemos actualmente, tanto los logs del servidor como del cliente se meterian en los mismos ficheros, lo que puede dar lugar a confusión.
Separación de logs
Las reglas para la separación de los logs se rigen por el par <facility, nivel de criticidad>. Tenemos niveles de criticidad de 0 (emergencias) a 7 (debugging), mientras que las facilities nos indican el origen del mensaje (existe un número fijo de ellas). Algunos demonios del sistema tienen asignados facilities, como pueden ser mail, user, kern etc...aquellos que no tengan ninguna asociada debe utilizar las definidas para uso "local" (local0 al local7). Nosotros utilizaremos estas últimas para separar los logs de cliente y servidor. El formato de las reglas es el siguiente:
<facility>.<criticidad> <archivo log destino (ej /var/log/syslog)>
Tanto la criticidad como la facility pueden ser *, indicando que abarque todo. Por ejemplo,
mail.* envia todos los logs del demonio mail al archivo especificado.
Conociendo las bases para la configuración del servidor, es posible
armar una que reciba logs de diferentes fuentes y los separe en
distintos archivos.
Dado que por defecto todo va a parar a syslog, lo mejor es eliminar las facilities local* de dicha configuración y después utilizarlas en los dispositovs de red. El primer paso es editar la regla correspondiente (en /etc/rsyslog.conf) para que quede como sigue:
Dado que por defecto todo va a parar a syslog, lo mejor es eliminar las facilities local* de dicha configuración y después utilizarlas en los dispositovs de red. El primer paso es editar la regla correspondiente (en /etc/rsyslog.conf) para que quede como sigue:
*.*;auth,authpriv.none;\También hay que evitar que info, notice y warning terminen en /var/log/messages
local0.none;\
local1.none;\
local2.none;\
local3.none;\
local4.none;\
local5.none;\
local6.none;\
local7.none -/var/log/syslog
*.=info;*.=notice;*.=warn;\y que los mensajes de debugging terminen en /var/log/debug
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none;
local0.none;\
local1.none;\
local2.none;\
local3.none;\
local4.none;\
local5.none;\
local6.none;\
local7.none -/var/log/messages
*.=debug;\La separación se puede realizar de varias maneras, una es basándose en las facilities. Para ello, a cada tipo de dispositivo se asigna una facility de las "local use" y luego se implementa la configuración en base a esto, de la siguiente manera:
auth,authpriv.none;\
news.none;mail.none;
local0.none;\
local1.none;\
local2.none;\
local3.none;\
local4.none;\
local5.none;\
local6.none;\
local7.none -/var/log/debug
local3.* /var/log/remote/firewalls.log
local4.* /var/log/remote/routers.log
local5.* /var/log/remote/APs.log
local6.* /var/log/remote/switches.log
De esta manera, utilizaremos local3 para firewalls, local4 para routers etc etc, aunque todo esto es configurable al nivel que queramos.
Fuente: http://itfreekzone.blogspot.com.es/2011/09/armar-servidor-de-logging-con-rsyslog-y.html
Un saludo,
Víctor.
0 comentarios: