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/

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano /etc/rsyslog.d/shorewall.conf
sudo nano /etc/rsyslog.d/shorewall.conf
sudo nano /etc/rsyslog.d/shorewall.conf

y en el archivo ponemos :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
:msg, contains, "Shorewall:" /var/log/shorewall/shorewall.log
& ~
:msg, contains, "Shorewall:" /var/log/shorewall/shorewall.log & ~
: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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo /etc/init.d/rsyslog restart
sudo /etc/init.d/rsyslog restart
sudo /etc/init.d/rsyslog restart

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano /etc/logrotate.d/shorewall
sudo nano /etc/logrotate.d/shorewall
sudo nano /etc/logrotate.d/shorewall

he introducimos:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/var/log/shorewall/shorewall.log {
weekly
rotate 4
compress
missingok
create 0640 root adm
}
/var/log/shorewall/shorewall.log { weekly rotate 4 compress missingok create 0640 root adm }
/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 un comentario