¿Qué herramienta de rotación de registros prefiere?
¿Qué herramienta de rotación de registros prefiere?
Respuestas:
En mi experiencia, logrotate es genial. Es muy flexible y funciona bien con la mayoría de los programas.
Sin embargo, hay algunos problemas con él, y dado que cronolog es principalmente una función de rotación de registros web, escribiré mi experiencia con logrotate + apache que fue problemático:
Al rotar registros, debemos notificar a Apache que se está rotando un registro, ya que incluso si logrotate cambia el nombre de access.log a access.log.1, apache continuará escribiendo en access.log.1, ya que está escribiendo en el inodo, y cambiar el nombre del archivo no afecta el número de inodo.
En debian etch (y probablemente muchas otras distribuciones), logrotate se está utilizando para rotar los registros de apache. Ahora, apache tiene un reinicio elegante que aconseja que los procesos secundarios apache salgan una vez que terminen de servir las conexiones existentes, apache luego vuelve a leer su configuración, genera nuevos procesos secundarios, que comienzan a escribir en un nuevo archivo de registro (en caso de que el anterior fuera rotado).
Esto suena como una gran solución, sin embargo, el reinicio elegante no siempre funciona en ciertas condiciones (como una carga pesada), por lo que los desarrolladores de Debian decidieron usar un reinicio apache en lugar de un reinicio elegante, en la configuración apache logrotate. Desafortunadamente, esto hace que todas las conexiones se caigan de una vez, lo cual es muy malo para sitios con mucha carga. Además, el reinicio de Apache también puede causar problemas como la detención y el no inicio de Apache (también en ciertas situaciones de carga), consulte los enlaces de errores a continuación para obtener más detalles.
La conclusión es que logrotate es excelente, pero puede generar ciertos problemas para ciertos programas. No tengo mucha experiencia con cronolog, pero como escribe registros a través de una tubería, no requiere ninguna recarga de Apache cuando está rotando archivos de registro, lo que básicamente resuelve todo lo que se describe anteriormente.
Errores relacionados con logrotate / apache debian:
Prefiero cronolog, pero no es una preferencia realmente fuerte.
logrotate donde se inicia cron, y si un sistema está inactivo por algún motivo cuando la rotación debería haber ocurrido, entonces sus archivos de registro no se rotarán.
También me gusta que los archivos de registro tengan la fecha (% Y% m.combined.access.log) en el nombre porque guardo esos registros durante mucho tiempo. En la mayoría de los sistemas, por defecto, apache logrotate nombrará los archivos access.log, access.log.1, etc. Es posible utilizar una fecha en los archivos de registro con logrotate, pero no pude averiguar cómo hacerlo la última vez que busqué.
Solo se utiliza logrotate. Es lo que Debian usa por defecto y nunca he tenido ninguna queja con él.
Casi exclusivamente utilizo cronolog
más logrotate
.
logrotate
viene con Debian, y le permito seguir trabajando para los servicios del sistema, como los registros del servidor de correo. Pero para Apache y los lighttpd
archivos de registro, es todo cronolog
.
Una de las razones por las que uso cronolog
es que toda la configuración ocurre en la línea del archivo de registro de la configuración del servidor web
por ejemplo, en un lighttpd
archivo de configuración, podría poner:
accesslog.filename = "|/usr/bin/cronolog --symlink=/var/log/webs/access.log /var/log/webs/%Y/%W-access.log"
Y todos obtienen un nuevo archivo de registro cada semana sin ninguna otra configuración. O podrías ser creativo y hacer algo como:
accesslog.filename = "|/usr/bin/cronolog --symlink=/var/log/webs/access.log /var/log/webs/%Y/%m/%a-access.log"
Y obtenga un archivo de registro que muestre el tráfico por día de la semana. Por ejemplo, todos los domingos, todos los martes.
Lo mejor es que, incluso si el servidor está inactivo durante un período de tiempo prolongado, el archivo de registro correcto se usará al reiniciar.