Docs Menu
Docs Home
/ /
Gestión

Rotar archivos de registros

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

logRotate no es un comando replicado. Debes conectarte a cada instancia de un set de réplicas y ejecutar logRotate para rotar los registros de los nodos del set de réplicas.

Para rotar las entradas de registro, debes realizar uno de estos pasos:

  • Envía una señal SIGUSR1 al proceso mongod o mongos.

  • Ejecuta el comando logRotate de 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.

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.

1
mongod -v --logpath /var/log/mongodb/server1.log

También puedes especificar explícitamente --logRotate rename.

2

En un terminal separado, enumera los archivos correspondientes:

ls /var/log/mongodb/server1.log*

Los resultados deberían incluir una entrada de registro, server1.log.

3

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.

4

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.

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.

1
mongod -v --logpath /var/log/mongodb/server1.log --logRotate reopen --logappend

Debes utilizar la opción --logappend con --logRotate reopen.

2

En un terminal separado, enumera los archivos correspondientes:

ls /var/log/mongodb/server1.log*

Los resultados deberían incluir una entrada de registro, server1.log.

3

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.

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.

1
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.

2

Almacena y rota la salida del registro con el mecanismo de rotación de registros por defecto del sistema.

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

Volver

Finalizar operaciones

En esta página