...
Nota: en algunos casos, la información se encuentra en /var/lib/mongo; si se desea realizar el cambio del path, debe modificarse /etc/mongod.conf.
Advertencia: si se modifica el path del archivo, este proceso eliminará los datos históricos de la interfaz gráfica de NMIS y sus módulos.
Depuración de la base de datos de mongo
El procedimiento referido en este punto es recomendado para cuando la partición /data tiene demasiado espacio utilizado. Esto está provocando que NMIS y sus módulos funcionen de manera incorrecta.
...
En el ejemplo actual, se describe el procedimiento para mantener el histórico del último año, por lo cual el equipo de Opmantek LATAM recomienda realizar la compactación de la base de datos a partir de la fecha que se indica en los siguientes pasos.
Proceso
Nota: no es necesaria la detención de los demonios del servidor, este proceso puede aplicarse directamente en el servidor deseado.
1. Para este ejemplo, se purgan las colecciones de mongo "events", "actionlog" y "rawlogs", removiendo todo lo anterior a la fecha del miércoles 1 de enero de 2020 (1579651200 en formato Epoch). Esta fecha debe acordarse con cada cliente y se recomienda utilizar la página web https://www.epochconverter.com/ para poder realizar la conversión.
Se ejecutan los siguientes comandos, uno por a uno:
mongo
> use opevents
> -u opUserRW -p op42flow42 nmis --eval ' db.getCollection("'events"').remove({time: {$lt: 1579651200}})'
> mongo -u opUserRW -p op42flow42 nmis --eval ' db.getCollection("'actionlog"').remove({time: {$lt: 1579651200}})'
> mongo -u opUserRW -p op42flow42 nmis --eval ' db.getCollection("'rawlogs"').remove({time: {$lt: 1579651200}})'
2. A continuación, se compactan cada una de las colecciones purgadas para liberar el espacio en disco, mediante la ejecución de los siguientes comandos, uno por a uno:
mongo -u opUserRW -p op42flow42 nmis
> use opevents
> db.runCommand({compact: 'events'})
> db.runCommand({compact: 'rawlogs'})
> db.runCommand({compact: 'actionlog'})
3. Al final, se logra la reducción de /data a 70%:
...
Base de datos correcta: copia y restauración
Importante: Este proceso aplica cuando la base de datos
...
funciona de manera correcta y solo se desea realizar una copia para restaurarla posteriormente, ya sea en el mismo servidor o en otro.
El procedimiento referido en este punto es recomendado cuando mongod no pueda iniciarse de manera correcta, lo cual puede deberse a una corrupción de la base de datos. Esto está provocando que NMIS y sus módulos funcionen de manera incorrectase desea realizar una copia de la base de datos y una restauración.
Proceso
Ejecutar el siguiente comando para generar un mongodump, lo cual creará una carpeta que contendrá las bases de datos del servidor:
Code Block |
---|
mongodump -u=opUserRW -p=op42flow42 --out=/data/mongodump |
Borrar el contenido de la carpeta de mongo:
Code Block |
---|
cd /data/mongo o cd /var/lib/mongo #según aplique
rm -rf * |
Ejecutar el setup de mongo para que se genere nuevamente la base de datos (este script debe activar el demonio mongod):
Code Block |
---|
/usr/local/omk/bin/setup_mongodb.pl |
Ejecutar el siguiente comando para restaurar la base de datos, lo cual va a restaurar las bases de datos que se generaron con en el primer comando:
Code Block |
---|
mongorestore -u=opUserRW -p=op42flow42 /data/mongodump |
Base de datos corrupta: procedimiento para restauración
Importante: Cuando la base de datos se corrompe no es posible recuperar los datos y únicamente es posible reiniciarla desde cero.
Advertencia: si se realiza este procedimiento, se creará una nueva base de datos y todo el histórico del servidor se perderá.
El procedimiento referido en este punto es recomendado cuando mongod no pueda iniciarse de manera correcta, lo cual puede deberse a una corrupción de la base de datos. Esto está provocando que NMIS y sus módulos funcionen de manera incorrecta.
Proceso
Detener nmis9d y mongod.
Code Block |
---|
[root@noc ~]# service nmis9d stop [root@noc ~]# service mongod stop |
...
Situarse en la carpeta de mongo y eliminar todo su contenido:
Code Block |
---|
cd /data/mongo o cd /var/lib/mongo #según aplique rm -rf * |
Eliminar los archivos .lock y .sock de mongo (si es que existen):
Code Block |
---|
rm /data/mongodb/mongod.lock o /var/lib/mongo/mongod.lock #según aplique rm /tmp/mongodb-27017.sock |
...
El procedimiento referido en este punto es recomendado para cuando mongod utiliza demasiados recursos del servidor, como puede verse en los siguientes ejemplos:
Proceso
Ejecutar los siguientes comandos, uno a uno:
...