LINUX

Cómo configurar la rotación de registros en MongoDB 3.4

rotación de registro mongodb

En este artículo, hablaré sobre la rotación de registros de MongoDB. Los registros son archivos de texto que pueden incluir registros informativos, de advertencia o de error mientras se ejecuta nuestro programa. Necesitamos realizar la rotación de registros ya que estos archivos pueden volverse demasiado grandes y usar demasiado espacio en el disco. Además, los archivos grandes tardan más en abrirse y analizarse. Los archivos de registro antiguos también se pueden comprimir para reducir su tamaño.

Voy a usar la máquina virtual CentOS 7 creada en VMware Workstation con 1 vCPU, 1 GB de RAM y 20 GB de espacio en disco y MongoDB 3.4.

Por defecto, los registros de MongoDB se encuentran en / var / log / mongodb. Puede cambiar la ubicación del archivo de registro iniciando el servicio MongoDB con –logpath

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

La forma más sencilla de realizar la rotación de registros es ejecutar manualmente

# kill -SIGUSR1 $(cat /var/lib/mongo/mongod.lock)

y eliminar registros

# rm -rf /var/log/mongodb/mongod.log.*

o comprimirlos para liberar algo de espacio en disco

# tar -cf /var/log/mongodb/mongod.log.*

La señal SIGUSR1 se envía al proceso mongod y realiza la rotación de registros.
Otra forma de hacer la rotación de registros es ingresar a la consola mongo escribiendo ‘mongo’ en la línea de comandos. Luego, en la consola de la base de datos, ejecute

    > use admin
    > db.runCommand( { logRotate : 1 } )

La salida debe ser

    { "ok" : 1 }

También puede especificar el comportamiento del comando logRotate iniciando mongo con el –logRotate llave. Debe especificar la opción para cambiar el nombre de esta clave o volver a abrirla. Por defecto, se utiliza la opción de cambio de nombre. La opción de cambio de nombre simplemente cambia el nombre del archivo de registro. La opción Reabrir cierra y vuelve a abrir el archivo. Esta opción debe usarse con –logappend clave y logrotate utilidad para evitar la pérdida de datos.

Para la rotación automatizada podemos utilizar logrotate utilidad.
En primer lugar, crea un archivo

# vi /etc/logrotate.d/mongodb

e inserta allí

/var/log/mongodb/mongodb.log {
    daily
    rotate 30
    compress
    missingok
    sharedscripts
    postrotate
        	kill -SIGUSR1 $(cat /var/lib/mongo/mongod.lock)
    endscript
}

Solo unas pocas palabras sobre este archivo de configuración. ‘Diariamente’ significa que los registros se rotan todos los días, ‘rotar 30’: los registros se guardarán durante 30 días antes de enviarse por correo electrónico o eliminarse, ‘comprimir’: los registros antiguos se comprimen con gzip, ‘missingok’: omita cualquier error en falta algún archivo de registro, ‘sharedscript’s: scripts que se ejecutan un script una vez,’ postrotate ‘y’ endscript ‘- ejecutan el script después de la rotación del registro.

Los registros también se pueden enviar al archivo de registro del sistema host ejecutando mongo instanse con –syslog. Esta opción no es apoyado en hosts de Windows.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar