Filtrar syslog y mandar el contenido a otro archivo

Me ha ocurrido que con shorewall, he sido incapaz de poder hacer que los logs de advertencias se escriban en otro archivo que no sea syslog.

Y como me estresa tener el syslog lleno de fallos de conexión, pues he tirado por la vía rápida y he creado un filtro muy sencillo para hacer el split del archivo.

Es muy sencillo, creamos un archivo en /etc/rsyslog.d/

sudo nano /etc/rsyslog.d/shorewall.conf

y en el archivo ponemos :

:msg, contains, "Shorewall:" /var/log/shorewall/shorewall.log
& ~

En estas lineas lo que hacemos es que filtre por la palabra «Shorewall» y lo guarde en un archivo diferente.

Reiniciamos el servicio:

sudo /etc/init.d/rsyslog restart

y luego necesitamos crear un archivo para generar rotación de logs:

sudo nano /etc/logrotate.d/shorewall

he introducimos:

/var/log/shorewall/shorewall.log {
    weekly
    rotate 4
    compress
    missingok
    create 0640 root adm
}

Rota el log cada semana con 4 rotaciones (cinco archivos en total) y los comprime. También tenemos las opciones de crear los archivos nuevos con permisos 640 para root:adm y en caso de no estar el archivo pues continua sin generar error (missingok).

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *