Eliminar mensajes del syslog

From zerutek.com
Jump to: navigation, search

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

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

Referencias

http://www.rsyslog.com/doc-rsyslog_conf_filter.html