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:
(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.