Proceso de migración de mongodb NMIS8 a NMIS9
En el siguiente apartado se describe el procedimiento para realizar un mongodump desde el servidor con NMIS 8, una copia de la carpeta creada /mongodump hacia NMIS 9, ajuste de archivos de mongo en NMIS 9 y mongorestore en NMIS 9 desde la carpeta /mongodump.
Prerrequisitos
Debemos contar con un servidor de NMIS 8 que ya tenga nodos colectando. De igual forma, necesitamos un servidor con NMIS 9 que tenga suficiente espacio para que pueda recibir la carpeta /mongodump que se creará en NMIS 8. Adicional, debemos poder acceder vía ssh entre cada una de nuestras máquinas virtuales para poder realizar de una manera más fácil la copia de la carpeta.
Procedimiento
1.- Para comenzar, debemos crear una carpeta llamada mongodump en nuestro servidor NMIS 8, de preferencia la creamos en el directorio /data que es donde tenemos más espacio disponible la mayor parte de las veces.
[root@opmantek ~]# cd /data/ [root@opmantek data]# mkdir mongodump [root@opmantek data]# cd mongodump/ [root@opmantek mongodump]# pwd /data/mongodump
2.- Después, es preferible detener servicios para que el servidor no tenga algún problema de recursos. Acto seguido, ejecutamos un mongodump como sigue, esto es para poder exportar todo el contenido de nuestra base de datos de mongo en NMIS 8:
[root@opmantek mongodump]# service omkd stop [root@opmantek mongodump]# service opeventsd stop [root@opmantek mongodump]# service opconfigd stop stop [root@opmantek mongodump]# mongodump -u=opUserRW -p=op42flow42 --out=/data/mongodump
3.- Ahora, ejecutamos un scp para poder copiar nuestra carpeta creada en NMIS 8 hacia NMIS 9, de preferencia también hacia la carpeta /data en NMIS 9:
[root@opmantek mongodump]# scp -r /data/mongodump/ root@X.X.X.X:/data/
4.- Una vez que concluya el proceso de transferencia, corroboramos que las carpetas ya se encuentren en NMIS 9:
[root@omk-vm9-cva ~]# cd /data/ [root@omk-vm9-cva data]# ll total 68 drwxr-xr-x 6 root root 4096 Dec 8 01:11 mongodump [root@omk-vm9-cva data]# cd mongodump/ [root@omk-vm9-cva mongodump]# ll total 16 drwxr-xr-x 2 root root 4096 Dec 8 00:18 admin drwxr-xr-x 2 root root 4096 Dec 8 01:11 flows drwxr-xr-x 2 root root 4096 Dec 8 01:11 nmis drwxr-xr-x 2 root root 4096 Dec 8 01:11 opcharts
5.- Cuando el proceso concluya, podemos ver que se han creado varias carpetas en /data/mongodump, las cuales contienen toda la información de cada base de datos de NMIS 9 y sus módulos:
[root@opmantek mongodump]# ll total 16 drwxr-xr-x 2 root root 4096 Dec 8 00:05 admin drwxr-xr-x 2 root root 4096 Dec 8 00:05 flows drwxr-xr-x 2 root root 4096 Dec 8 00:05 nmis drwxr-xr-x 2 root root 4096 Dec 8 00:05 opcharts
6.- Procedemos a realizar algunas configuraciones antes de realizar el mongorestore en nuestra máquina virtual de NMIS 9. Primero, creamos una carpeta llamada mongodb en la ruta /data, que es en donde almacenaremos toda la información de la base de datos de mongo de ahora en adelante:
[root@omk-vm9-cva ~]# cd /data/ [root@omk-vm9-cva data]# mkdir mongodb [root@omk-vm9-cva data]# cd mongodb [root@omk-vm9-cva mongodb]# ll total 0
7.- Ahora, debemos de cambiar los permisos de la carpeta mongodb que hemos creado para que sea mongod:mongod en vez de root:root; esto lo realizamos mediante un chown:
[root@omk-vm9-cva data]# ll total 72 drwxr-xr-x 2 root root 4096 Dec 8 18:11 mongodb … [root@omk-vm9-cva data]# chown mongod:mongod mongodb/ [root@omk-vm9-cva data]# ll total 72 drwxr-xr-x 2 mongod mongod 4096 Dec 8 18:13 mongodb …
8.- Después, modificamos el archivo /etc/mongod.conf comentando la línea dbPath: /var/lib/mongo y poniendo en su lugar la línea dbPath: /data/mongodb, esto es para que toda la información de la base de datos de mongo se vaya hacia la carpeta que creamos anteriormente:
# Where and how to store data. storage: #dbPath: /var/lib/mongo dbPath: /data/mongodb journal: enabled: true # engine: # mmapv1: # wiredTiger: …
9.- Si accedemos a la carpeta /data/mongodb, podemos observar que no tenemos información alguna, para que se comiencen a crear las colecciones, simplemente reiniciamos mongod y ejecutamos el pl. Después de esto, tendremos que ver archivos .wt ya creados de forma automática:
[root@omk-vm9-cva data]# cd mongodb/ [root@omk-vm9-cva mongodb]# ll total 0 [root@omk-vm9-cva mongodb]# service mongod restart Redirecting to /bin/systemctl restart mongod.service [root@omk-vm9-cva mongodb]# /usr/local/omk/bin/setup_mongodb.pl setup_mongodb.pl version 4.150.0 Reading configuration file /usr/local/omk/bin/../conf//opCommon.json... Checking authentication status for db_server localhost... MongoDB on localhost:27017 is running in non-authenticated mode. INFO: server version is 3.4.24, using new auth model. INFO: adding user opUserRW to admin db INFO: adding user opUserRW to database flows INFO: adding user opUserRW to database opconfig INFO: adding user opUserRW to database omk_shared INFO: adding user opUserRW to database opcharts INFO: adding user opUserRW to database opaddress INFO: adding user opUserRW to database flowsp INFO: adding user opUserRW to database opha INFO: adding user opUserRW to database optrend INFO: adding user opUserRW to database opevents WARNING: Authentication should be enabled for production use! Currently your MongoDB server at localhost:27017 operates without authentication. This is MongoDB's default, but is not recommended for production use. You should add the setting auth=true (for 2.4-style config) or authorization: enabled (for YAML config format) to your /etc/mongodb.conf or change your init script to include --auth. Hit enter to continue: [root@omk-vm9-cva mongodb]# ll total 64 -rw-r--r-- 1 mongod mongod 4096 Dec 8 14:48 collection-0-4757025178356315371.wt -rw-r--r-- 1 mongod mongod 4096 Dec 8 14:48 collection-2-4757025178356315371.wt drwxr-xr-x 2 mongod mongod 4096 Dec 8 14:48 diagnostic.data -rw-r--r-- 1 mongod mongod 4096 Dec 8 14:48 index-1-4757025178356315371.wt -rw-r--r-- 1 mongod mongod 4096 Dec 8 14:48 index-3-4757025178356315371.wt -rw-r--r-- 1 mongod mongod 4096 Dec 8 14:48 index-4-4757025178356315371.wt drwxr-xr-x 2 mongod mongod 4096 Dec 8 14:48 journal -rw-r--r-- 1 mongod mongod 4096 Dec 8 14:48 _mdb_catalog.wt -rw-r--r-- 1 mongod mongod 5 Dec 8 14:48 mongod.lock -rw-r--r-- 1 mongod mongod 4096 Dec 8 14:48 sizeStorer.wt -rw-r--r-- 1 mongod mongod 95 Dec 8 14:48 storage.bson -rw-r--r-- 1 mongod mongod 49 Dec 8 14:48 WiredTiger -rw-r--r-- 1 mongod mongod 4096 Dec 8 14:48 WiredTigerLAS.wt -rw-r--r-- 1 mongod mongod 21 Dec 8 14:48 WiredTiger.lock -rw-r--r-- 1 mongod mongod 842 Dec 8 14:48 WiredTiger.turtle -rw-r--r-- 1 mongod mongod 4096 Dec 8 14:48 WiredTiger.wt
10.- Por último, ejecutamos el mongorestore para restablecer toda nuestra base de datos de NMIS 8 en NMIS 9:
[root@omk-vm9-cva mongodb]# mongorestore -u opUserRW -p op42flow42 /data/mongodump
11.- Cuando concluya el mongorestore, reiniciamos los servicios y verificamos que NMIS continúe funcionando de manera normal:
[root@omk-vm9-cva mongodb]# service omkd stop [root@omk-vm9-cva mongodb]# service mongod stop [root@omk-vm9-cva mongodb]# service nmis9d stop [root@omk-vm9-cva mongodb]# service mongod start [root@omk-vm9-cva mongodb]# service omkd start [root@omk-vm9-cva mongodb]# service nmis9d start