¿Cuáles son los pros y los contras de logrotate vs rotatelogs con Apache?

11

Apache proporciona una herramienta llamada rotatelogs que tiene el beneficio de no reiniciar apache al rotar registros que ocurre con logrotate. No tengo suficiente experiencia para hablar si este es un criterio suficiente para usar rotatelogs sobre logrotate.

Mi pregunta es si alguien tiene experiencia en la vida real usando cualquiera de estas dos herramientas y ¿cuál sería su opinión?

¿Que recomendaria y porque?

Mohan Gulati
fuente

Respuestas:

7

Recomendaría logrotate para la mayoría de las personas, ya que eso es lo que rotará todos los demás registros (KISS: Keep it Simple Stupid). Logrotate no reinicia todo Apache, sino que simplemente le envía una señal que le dice que vuelva a abrir todos sus archivos de registro y reinicie los elementos secundarios. Esta señal puede ser SIGHUP, lo que hace que los niños se reinicien de inmediato (lo que interrumpirá las descargas) o SIGUSR1, que reinicia correctamente. Con SIGUSR1, debe retrasar el procesamiento del registro hasta que crea que todos los niños habrían muerto naturalmente. De cualquier manera, probablemente desee analizar sus registros y cronometrarlos para el período de tráfico más bajo en el día o la semana.

Los registros canalizados parecen ser la solución más poderosa. Una gran ventaja es que le permitirá utilizar un sistema de registro centralizado y cargar el servidor web. El manual en sí dice:

Al igual que con el registro condicional, los registros canalizados son una herramienta muy poderosa, pero no deben usarse donde esté disponible una solución más simple como el procesamiento posterior fuera de línea.

Aparentemente, no use el registro canalizado si no lo necesita . En el pasado, utilicé la canalización por canalización como una forma hacky de filtrar registros, y no tuve ningún problema.

Kyle Brandt
fuente
La secuencia de comandos postrotate con los archivos logrotate de Apache es enviar un SIGHUP, lo que hace que Apache finalice todos los elementos secundarios y se reinicie. Cualquier conexión activa en el momento se termina.
Warner
Leí un comentario en alguna parte que decía que el reinicio elegante no funciona muy bien con servidores que llevan una carga pesada. Pero realmente no creo que haya mucha alternativa.
Mohan Gulati
logrotate con SIGHUP es bastante estándar. Yo no me preocuparía por eso.
Warner
2

He usado ambos antes. Descubrí que el uso de rotatelogs es una herramienta muy útil para administrar registros de acceso y si no desea un tiempo de inactividad de Apache. En un sitio de alto volumen, recomendaría esto, el único problema que encontré fue que si desea administrar los registros, necesitará tener un cron de script separado para limpiar o mover los registros a un servidor de respaldo, obviamente esto Depende del requisito. Con logrotate, tiene más opciones sobre cómo se manejan los archivos de registro, el único problema es que cuando se ejecuta logrotate como se explicó en la respuesta anterior, deberá reiniciar Apache.

Básicamente, todo se reduce a la elección, si necesita un apache para ejecutarse sin interrupciones, gire los registros con un script cron externo para administrar, de lo contrario, logrotate será suficiente. Solo asegúrese de configurar el cron de logrotate para no rotar los registros cuando tenga mucho tráfico.

Por último, si desea tener un registro de apache en su registro del sistema, siempre puede usar el comando logger que se encuentra en Linux basado en Redhat.

Danie
fuente