Página 1 de 2

Ayuda con logs en Postfix

Publicado: Mié, 25 Jun 2014, 12:04
por JuancaDJ
Buenas tardes a todos tengo un problema y necesito solucion de una forma o de otra, la pregunta es la siguiente uso postfix como servidor de correo pero como todos saben postfix genera varios log de esos solo me interesa el mail.log ahora el mail.log en su contenido tiene todo lo realizado por dias, bien yo necesito que postfix me genere 1 mail.log por dia pero por, separado, o sea mail.log1 o mail1.log y asi segun los dias algo estilo al Mdaemon que lo genera diario y los compacta usando la fecha de ese dia, en postfix eciste alguna configuracion para eso o toca hacerlo usando scripts?. Gracias

Re: Ayuda con logs en Postfix

Publicado: Mié, 25 Jun 2014, 17:41
por hugo
Se me ocurre que podrías modificar el logrotate. No lo he probado, pero en teoría debería funcionar.

Ahora, como Postfix por defecto no incluye un logrotate propio, podrías editar el archivo /etc/logrotate.d/syslog (o quizás rsyslog) y eliminar las siguientes entradas:

Código: Seleccionar todo

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
Entonces crear en el directorio /etc/logrotate.d/ un archivo llamado postfix (aunque igual podría simplemente agregarse una entrada al final de la configuración de rotación de syslog en lugar de crear un archivo separado) con un contenido como este:

Código: Seleccionar todo

/var/log/mail.* {
   daily
   missingok
   rotate 365
   compress
   delaycompress
   notifempty
   create 640 syslog adm
   postrotate
      reload syslog >/dev/null 2>&1 || true
   endscript
}
Esto básicamente indica que se roten y compriman diariamente los logs del servicio de correo, y se mantenga el histórico por un año.

Re: Ayuda con logs en Postfix

Publicado: Jue, 26 Jun 2014, 09:28
por JuancaDJ
Hugo esto es lo que tengo dentro del /etc/logrotate.d/syslog

Código: Seleccionar todo

/var/log/syslog
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog rotate > /dev/null
        endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                invoke-rc.d rsyslog rotate > /dev/null
        endscript
}
Ahora bien de ahi que debo quitar, modificar o agregar? y si no te es mucha molestia ni te roba mucho tiempo podrias explicarme que significa cada linea de estas:
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscrip t

Gracias :)

Re: Ayuda con logs en Postfix

Publicado: Jue, 26 Jun 2014, 20:04
por hugo
Mis instrucciones son claras, eliminas las líneas que menciono y creas el bloque que sugiero o bien al final del archivo o en un archivo separado con el nombre postfix. Realmente tienes que probar, de modo que por si acaso haz primero una salva de tu configuración actual.

En cuanto a la explicación que pides, ejecuta el siguiente comando en un emulador de terminal:

Código: Seleccionar todo

man logrotate
(En Linux todo o casi todo viene con manual)

Re: Ayuda con logs en Postfix

Publicado: Vie, 27 Jun 2014, 08:39
por JuancaDJ
Ah vale muchas gracias hugo, otro detalle en caso de que solo quiciera que rotaran y que no se compactaran solo debo quitar del script estas lineas:
delaycompress
compress

cierto?
y esto al final para que es?
invoke-rc.d rsyslog rotate > /dev/null
para reiniciar el servicio del rsyslog?
Otra cosita ahi me das para que los historicos se mantengan por 1 ano entonces esa rotacion como seguiria desde el 1 hasta el 365 ?
o desde el 1 hasta el 30 o 31 de cada vez? me refiero a la numeración que le asigna el logrotate a cada fichero

Re: Ayuda con logs en Postfix

Publicado: Vie, 27 Jun 2014, 19:10
por hugo
JuancaDJ escribió: ...en caso de que solo quiciera que rotaran y que no se compactaran solo debo quitar del script estas lineas:
delaycompress
compress

cierto?
Si, con eso debe ser suficiente para evitar la compresión.
JuancaDJ escribió: y esto al final para que es?
invoke-rc.d rsyslog rotate > /dev/null
para reiniciar el servicio del rsyslog?
No tanto reiniciarlo como hacer la rotación. Puede que no sea necesario, pero si el syslog originalmente lo lleva, por algo será, de hecho probablemente sea mejor usar esa línea en lugar de la que te puse (reload syslog >/dev/null 2>&1 || true).
JuancaDJ escribió: Otra cosita ahi me das para que los historicos se mantengan por 1 ano entonces esa rotacion como seguiria desde el 1 hasta el 365 ?
o desde el 1 hasta el 30 o 31 de cada vez? me refiero a la numeración que le asigna el logrotate a cada fichero
En el ejemplo que te puse la numeración se reinicia solo después de 365 días, si quieres menos días solo modifica el valor de la rotación.

Re: Ayuda con logs en Postfix

Publicado: Mar, 08 Jul 2014, 09:08
por JuancaDJ
Bueno hugo ya pasado 8 dias desde que hice lo que me dijiste con el logrotate no e tenido el resultado que esperaba, ayq eu yo pense que pasaado cada dia el me haria un mail.log.1 y asi sucesivamente pero nada lo que ha hecho es engordar el mail.log almacenando dentro todo lo relacionado por dias :(
Que hice mal o que falto?
Esto es lo que tengo en el fichero postfix dentro del logrotate.d

Código: Seleccionar todo

/var/log/mail.* {
   daily
   missingok
   rotate 31
   compress
   delaycompress
   notifempty
   create 640 syslog adm
   postrotate
      invoke-rc.d rsyslog rotate > /dev/null
   endscript
}

Re: Ayuda con logs en Postfix

Publicado: Jue, 10 Jul 2014, 18:08
por hugo
Aparentemente tu syslog no está detectando correctamente los logs, así que cambia la primera línea por esto a ver si te funciona:

Código: Seleccionar todo

/var/log/mail.log /var/log/mail.info /var/log/mail.warn /var/log/mail.err {

Re: Ayuda con logs en Postfix

Publicado: Sab, 12 Jul 2014, 11:28
por salbi
Aqui te pongo la conf del mio y trabaja al 100, lo hace como quieres,


Código: Seleccionar todo

/var/log/syslog
{
	rotate 370
	daily
	missingok
	notifempty
	delaycompress
	compress
	postrotate
		invoke-rc.d rsyslog reload > /dev/null
	endscript
}

/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
	rotate 4
	weekly
	missingok
	notifempty
	compress
	delaycompress
	sharedscripts
	postrotate
		invoke-rc.d rsyslog reload > /dev/null
	endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
{
        daily
        compress
        delaycompress
        rotate 1
        missingok
        create 0640 root adm
        sharedscripts
        prerotate
                #!/bin/bash
                /etc/init.d/postfix stop > /dev/null
        endscript
        postrotate
                #!/bin/bash
                fecha=`date -d "-1 days" +%Y-%m-%d`
                path="/mnt/datos/Datos/trazas/postfix"
                test -x $path/$fecha || mkdir -p $path/$fecha
                find /var/log/ -name "mail.*.gz" -exec mv -f {} $path/$fecha \;
                /etc/init.d/postfix start > /dev/null
                find $path/* -type d -ctime +365 -exec rm -f {} -R \;
		invoke-rc.d rsyslog reload > /dev/null
        endscript
}

Re: Ayuda con logs en Postfix

Publicado: Dom, 13 Jul 2014, 10:33
por hugo
Si pero eso generaria un log diario para todos los logs incluidos en syslog no?
Si entendi bien al colega, el desea un log diario solo para el correo.