A continuación, desarrollaremos los pasos a seguir para la compactación de base de datos de mongo y así poder liberar espacio en el filesystem /data, en el caso de NMIS 8.
Situación previa
El cliente comenta que la partición /data tiene demasiado espacio utilizado y está provocando que NMIS y sus módulos funcionen de manera incorrecta.
Se recomienda realizar la compactación de la base de datos si es que no le interesa un histórico más allá de un año.
Pasos a seguir para la compactación
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.
Se ejecutan los comandos siguientes, adaptando el Epoch a la fecha deseada:
mongo -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. Se compactan cada una de las colecciones purgadas para liberar el espacio en disco, mediante la ejecución de los siguientes comandos:
mongo -u opUserRW -p op42flow42 nmis
db.runCommand({compact: 'events'})
db.runCommand({compact: 'rawlogs'})
db.runCommand({compact: 'actionlog'})
3. Al final, se logra la reducción de /data a 70%: