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