[TIP] Loguear postfix en un archivo separado usando syslog-ng

Mas que TIP, es una nota mental, ya es la segunda vez que tengo que hacer esto y googlear al respecto por no acordarme como mierdas se suponde que debe uno hablarle a syslog-ng en su críptico idioma como se hace:

Por defecto postfix escupe todo su log en syslog, por costumbre uso como syslog la aplicación syslog-ng, cuando se usa syslog-ng toda la salida de postfix va a parar derecho a /var/log/messages.

Esto no tiene nada de malo cuando no se trata de monitorear /var/log/messages con frecuencia, pero cuando varias aplicaciones vuelcan toda su salida al mismo lugar y hay que estar pendiente del log en cuestión, el asunto se pone denso. Postfix en su versión menos verborrágica inunda el log con mensajes cuando el servidor SMTP tiene mucho tráfico. Por esto es que me interesaba separar el log de postfix a un archivo aparte.

Por convención usé /var/log/mail.log, syslog-ng deberá volcar en ese archivo toda la salida de postfix.

Como se hace:

Editar el archivo /etc/syslog-ng/syslog-ng.conf, agregar las siguientes líneas:

destination mail { file(“/var/log/mail.log”); };

filter mail { facility(mail); };

filter notmail { not facility(mail); };

log { source(src); filter(mail); destination(mail); };

Y no me pregunten que significa cada cosa ni por qué funciona, por que no tengo ni idea, ni ganas de investigar al respecto, ni tiempo para hacerlo, pero funciona, doy fe.

Maldito Nerd

Informático por elección, linuxero por convicción, viejo y choto por que no queda otra, el tiempo pasa. Escribo sobre lo que mas me gusta: La música y las computadoras.

More Posts - Website - Twitter - Facebook - Google Plus

1 comentario

  1. Buenos dias, lo primero decirte que he visto muy interesantes estas entradas acerca de syslog. Muchas gracias.

    Yo tengo un escenario en el cual quiero redirigir los logs que genera un apache (en mi caso)
    /var/log/virtualhost1apache.log y /var/log/virtualhost1apache.log
    el caso es que sólo quiero esos log (no necesito niguno mas del sistema). El server que uso para recepcionar todos esos syslog es ossim y en este ya tengo configurado en /etc/rsyslog.conf una regla para que todo lo que llegue desde la IP de mi server apache lo guarde en un fichero del tipo
    /var/log/server_apache.log. Hasta aqui todo ok, pero lo unico que no se como hacer es decirle al server apache que SOLO ENVIE los log que yo indique al otro host. ¿podrias ayudarme en esto?
    Muchas gracias

Deja un comentario

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