Overview
Cuando se utiliza con el --logpath opción o En la configuraciónsystemLog.path, las instanciasmongodymongosreportan un registro en tiempo real de toda la actividad y las operaciones en un archivo de registro. Al reportar datos de actividad a un archivo de registro, MongoDB solo rota los registros de forma predeterminada en respuesta al comandologRotateo cuando el procesomongodomongosrecibe una señal SIGUSR1 del sistema operativo. Tanto los registros del servidor como los de auditoría se pueden rotar con el comandologRotate, ya sea juntos o por separado.
El enfoque estándar de rotación de registros de MongoDB archiva la entrada de registro actual y comienza una nueva. Para ello, la instancia mongod o mongos cambia el nombre de la entrada de registro actual mediante la incorporación de una marca de tiempo UTC al nombre del archivo, en formato ISODate. Luego, abre un nuevo archivo de registro, cierra el archivo de registro antiguo y envía todas las nuevas entradas de registro al nuevo archivo de registro.
También puedes configurar MongoDB para que admita la utilidad Linux/Unix logrotate si se configura systemLog.logRotate o --logRotate para reopen. Con reopen, mongod o mongos se cierra la entrada de registro y luego se vuelve a abrir una entrada de registro con el mismo nombre, y se espera que otro proceso haya renombrado el archivo antes de la rotación.
Por último, puedes configurar mongod para que envíe datos de registro a syslog con la opción --syslog. En este caso, puedes aprovechar herramientas alternativas de rotación de registros.
Nota
Para rotar las entradas de registro, debes realizar uno de estos pasos:
Ejecuta el comando
logRotatede MongoDB.Ejecuta la utilidad Linux/Unix
logrotate.
Consulta los ejemplos más adelante en esta página.
Tip
Para obtener información sobre el registro, consulta la sección Registro de procesos.
Comportamiento de rotación de registro por defecto
Por defecto, MongoDB utiliza el comportamiento --logRotate rename. Con rename, mongod o mongos renombra la entrada de registro actual y agrega una marca de tiempo UTC al nombre del archivo, abre una nueva entrada de registro, cierra la entrada de registro antigua y envía todos los nuevos registros a la nueva entrada de registro.
Iniciar una instancia de mongod.
mongod -v --logpath /var/log/mongodb/server1.log
También puedes especificar explícitamente --logRotate rename.
Rota la entrada de registro
Para girar la entrada de registro, emite el comando logRotate desde la base de datos admin en mongosh:
db.adminCommand( { logRotate : "server" } )
Si la función de auditar está activada, puedes especificar del 1 al logRotate (en lugar de server) para rotar ambos registros del servidor y de auditar al mismo tiempo, si lo deseas. El registro de auditoría se rotará de la misma manera que el registro del servidor, según la configuración --logRotate.
Nota
No puedes ejecutar este comando en un árbitro para un set de réplicas autenticado.
Consulta las nuevas entradas de registro
Enumera las nuevas entradas de registro para ver el registro recién creado:
ls /var/log/mongodb/server1.log*
Debe haber dos entradas de registro enumeradas: server1.log, que es la entrada de registro que mongod o mongos crearon cuando reabrieron la entrada de registro, y server1.log.<timestamp>, la entrada de registro original renombrada.
La rotación de entradas de registro no modifica las entradas de registro rotadas “antiguas”. Cuando rotas un registro, cambias el nombre del archivo server1.log para incluir la marca de tiempo y un nuevo archivo server1.log vacío recibe todas las nuevas entradas del registro.
Rotación de registros con --logRotate reopen
La rotación de registro con --logRotate reopen cierra y abre la entrada de registro en función del comportamiento típico de rotación de registro en Linux/Unix.
Iniciar una instancia de mongod, especificando el comportamiento reopen --logRotate.
mongod -v --logpath /var/log/mongodb/server1.log --logRotate reopen --logappend
Debes utilizar la opción --logappend con --logRotate reopen.
Rota la entrada de registro
Para girar la entrada de registro, emite el comando logRotate desde la base de datos admin en mongosh:
db.adminCommand( { logRotate : "server" } )
Deberías cambiar el nombre de la entrada de registro mediante un proceso externo, en función del comportamiento típico de rotación de registros de Linux/Unix.
Rotación de registros de Syslog
Con la rotación de registro de syslog, mongod envía datos de registro a syslog en lugar de escribirlos en un archivo.
MongoDB incluye el componente en sus mensajes de registros para syslog.
Iniciar una instancia mongod con la opción --syslog .
mongod --syslog
No incluyas --logpath. Dado que --syslog le indica a mongod que envíe datos de registro al syslog, especificar un --logpath generará un error.
Para especificar el nivel de instalación utilizado al registrar mensajes en el syslog, utiliza la opción --syslogFacility o la configuración systemLog.syslogFacility.
Forzar una rotación de registros con SIGUSR1
En los sistemas basados en Linux y Unix, puedes utilizar la señal SIGUSR1 para rotar los registros de un solo proceso.
Por ejemplo, si una instancia de mongod en ejecución tiene un ID de proceso (PID) de 2200, el siguiente comando rota la entrada de registro de esa instancia en Linux:
kill -SIGUSR1 2200