[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rutina en logrotate para Apache2



Hola,
2011/1/15 Camaleón <noelamac@gmail.com>:
> Hola,
>
> Estoy buscando una rutina para la rotación de los registros de Apache2
> (lenny).
>
> La idea es que se genere un archivo cada mes con el siguiente formato:
>
> access.2011-01-yyyymmddhhmmss.log
> access.2011-02-yyyymmddhhmmss.log
> access.2011-03-yyyymmddhhmmss.log
> (...)
> error.2011-01-yyyymmddhhmmss.log
> error.2011-02-yyyymmddhhmmss.log
> error.2011-03-yyyymmddhhmmss.log
>
> Y que esos registros se compriman en un archivo único cada año:
>
> access.2011-yyyymmddhhmmss.log.gz
> access.2012-yyyymmddhhmmss.log.gz
> access.2013-yyyymmddhhmmss.log.gz
>
> ("yyyymmddhhmmss" sería la marca de tiempo de cuando se ejecuta la
> rotación)
>
> Tampoco quiero que borre automáticamente nada, es decir, que los
> registros anuales comprimidos permanezcan almacenados en su sitio con el
> contenido de todos archivos mensuales.
>
> Ahora mismo tengo:
>
> ***
> /etc/logrotate.d/apache2
>
>        /var/log/apache2/*.log {
>        monthly
>        missingok
>        compress
>        delaycompress
>        notifyempty
>        create 640 root adm
>        sharedscripts
>        postrotate
>                [...]
>        endscript
> ***
>
> Pero al ejecutar un simulacro ("/usr/sbin/logrotate -d") veo algo que no
> me gusta ("old logs are removed") por lo que me parece que estoy poniendo
> algo mal. Y por otra parte, no sé cómo decirle que los registros
> mensuales no se compriman sino que se genere un archivo comprimido sólo
> cada año, con todos los meses.
>
> La otra duda que tengo es quién se encarga de poner el nombre+coletilla
> de la fecha a los archivos ¿Apache2 -con la variable CustomLog/ErrorLog-
> o de eso se encarga "logrotate"?
En Debian tratan de homogenizar las cosas usando logrotate, hay
algunos programas que tradicionalmente han rotado sus logs por su
cuenta, pero hay esfuerzos de que los paquetes debian confien en
logrotate.

En el caso particular de apache, podrías configurarlo como dicen en la
página de apache [1], con un script llamado rotatelogs (tendrías, por
supuesto, que desconfigurar el logrotate). Yo veo mejor usar
logrotate.

Creo que te faltaría poner la opción "nocompress" (y quitar la
opuesta), ya que no quieres que se compriman los logs

>
> De momento, los archivos de registro que genera Apache2 mantienen el
> nombre de "access.log, error.log", aunque supongo que hasta febrero no se
> creará el archivo nuevo.
>
> ¿Sugerencias? :-)

Cuéntanos si consigues hacer exactamente lo que quieres sólo con
logrotate, yo creo que más bien me haría un cutre-script ... sobre
todo para comprimir todos los logs del año en un fichero .. quizás
como han comentado por aquí usando el postrotate (comprobar que no
exista un fichero comprimido de ese año y luego generarlo)

Saludos
[1] http://httpd.apache.org/docs/2.0/programs/rotatelogs.html


Reply to: