Eliminar mensajes del syslog
RECORDATORIO
Esto es el típico recordatorio, una anotación en un papel que siempre extravías.
Fuera de su contexto puede no tener ningún sentido.
13/07/2012
Contents
Eliminar mensajes del syslog
Por obra y gracia de configuraciones poco habituales, o porque sencillamente queramos eliminar errores reiterativos conocidos, puede que nos interese eliminar ciertos mensajes de los logs.
He aquí una mini guía, en la que se utiliza como demonio de logs rsyslogd.
Sistemas utilizados
La operativa se ha probado en:
- Red Hat 5
- Debian Squeeze
Instalación de rsyslogd
La instalación de rsyslogd en Debian Squeeze no es necesaria, ya que es el demonio de log por defecto.
Instalación en red Hat 5
rsyslogd se encuentra en los repositorios de Red Hat, y para su correcto funcionamiento se debe deinstalar o desactivar el demonio syslogd estandar.
- Instalamos rsyslogd:
/usr/bin/yum install rsyslog
- Configuramos rsyslogd
sed 's/^SYSLOGD_OPTIONS.*/SYSLOGD_OPTIONS="-c3"/' /etc/sysconfig/rsyslog.bak > /etc/sysconfig/rsyslog
if ! (/bin/grep -q "^\$IncludeConfig" /etc/rsyslog.conf);then DATE=`/bin/date +%s` cp /etc/rsyslog.conf /etc/rsyslog.conf.${DATE} /bin/sed '1 i\\$IncludeConfig /etc/rsyslog.d/*.conf' /etc/rsyslog.conf.${DATE} > /etc/rsyslog.conf fi
- Desactivamos syslogd y activamos rsyslog
/sbin/chkconfig syslog off /sbin/chkconfig rsyslog on /sbin/service syslog stop /sbin/service rsyslog start
Eliminando el mensaje
En nuestro ejemplo deseamos eliminar unos molestos mensajes debidos a la configuración del bondig que se repiten cada segundo. Los mensajes tienen el siguiente aspecto:
Jul 13 12:01:37 zerutek01 kernel: bonding: bond2: link status definitely down for interface eth1, disabling it Jul 13 12:01:37 zerutek01 kernel: bonding: bond2: link status definitely up for interface eth0. Jul 13 12:01:37 zerutek01 kernel: bonding: bond2: link status definitely up for interface eth1. Jul 13 12:01:38 zerutek01 kernel: bonding: bond2: link status definitely down for interface eth1, disabling it Jul 13 12:01:38 zerutek01 kernel: bonding: bond2: link status definitely up for interface eth1. Jul 13 12:01:39 zerutek01 kernel: bonding: bond2: link status definitely down for interface eth1, disabling it Jul 13 12:01:39 zerutek01 kernel: bonding: bond2: link status definitely down for interface eth0, disabling it Jul 13 12:01:39 zerutek01 kernel: bonding: bond2: link status definitely up for interface eth0. Jul 13 12:01:39 zerutek01 kernel: bonding: bond2: link status definitely up for interface eth1. Jul 13 12:01:41 zerutek01 kernel: bonding: bond2: link status definitely down for interface eth0, disabling it Jul 13 12:01:41 zerutek01 kernel: bonding: bond2: link status definitely down for interface eth1, disabling it Jul 13 12:01:41 zerutek01 kernel: bonding: bond2: link status definitely up for interface eth0.
- Creamos el fichero /etc/rsyslog.d/bonding.conf con el siguiente contenido:
# Elimina los mensajes del bonding del log if $programname == 'kernel' and $msg contains 'link status definitely' then ~ /dev/null
- Reiniciamos el rsyslogd
Otro ejemplo, ahora con fechtmail
Para eliminar el mensaje de error de fetchmail:
fetchmail: Server CommonName mismatch: their.domain.name != mail.mydomain.name fetchmail: Server certificate verification error: self signed certificate
- Creamos el fichero /etc/rsyslog.d/fetchmail.conf
if $programname == 'fetchmail' and $msg contains 'Server CommonName mismatch' then ~ /dev/null