2011-02-15 13 views

Respuesta

7

rotar los registros usted mismo

http://www.mongodb.org/display/DOCS/Logging

o utilizar 'logrotate' con una configuración apropiada.

+4

"con una configuración adecuada": esa es exactamente la pregunta ... ¿Cuál es la configuración adecuada? Su respuesta (y la documentación de MongoDB) no son claras sobre este tema. – jmcollin92

5

Si cree que 32 megas son demasiado grandes para un archivo de registro, es posible que también quiera mirar dentro de lo que contiene.

Si los registros parecen en su mayoría inofensivas ("conexión abierta", "relación estrecha"), entonces es posible que desee comenzar con el interruptor mongod--quiet. Esto reducirá algunos de los registros más detallados.

+4

O, a partir de 2.0, agregue 'quiet = true' a su archivo de configuración ('/etc/mongod.conf' en algunos sistemas). –

48

Puede usar logrotate para hacer este trabajo por usted.

poner esto en /etc/logrotate.d/mongod (suponiendo que el uso de Linux y tienen logrotated instalado):

/var/log/mongo/*.log { 
    daily 
    rotate 30 
    compress 
    dateext 
    missingok 
    notifempty 
    sharedscripts 
    copytruncate 
    postrotate 
     /bin/kill -SIGUSR1 `cat /var/lib/mongo/mongod.lock 2> /dev/null` 2> /dev/null || true 
    endscript 
} 
+0

Solo FYI, instalé desde las rpms oficiales de 10gen y el logro fue configurado automáticamente. –

+0

Útil saber. Las instalaciones que he hecho anteriormente no tenían eso. – pdwalker

+4

Gracias por el archivo de configuración. Sin embargo, asegúrese de verificar las rutas en esta secuencia de comandos, en mi caso fue/var/log/mongodb/y/var/lib/mongodb. –

0

Usando logrotate es una buena opción. mientras tanto, generará 2 archivos de registro que fmchan comentó, y deberá seguir la sugerencia de Brett de "agregar una línea a su secuencia de comandos posterior para eliminar todos los registros rotados de mongod style".

También copytruncate no es la mejor opción. Siempre hay una ventana entre copiar y truncar. Algunos registros de mongod pueden perderse. Podría verificar la página man de logrotate o consultar this copytruncate discussion.

Simplemente proporcione una opción más. Puede escribir un script que envíe la señal de rotación a mongod y elimine los archivos de registro anteriores. mongologrotate.sh es un script de referencia simple que he escrito. Puede escribir un simple trabajo cron o script para llamarlo periódicamente, como cada 30 minutos.

Cuestiones relacionadas