In this guide we will migrate the data from NMIS8 and OMK Applications to nmis9 and OMK Applications.
Please note that, to make use of some utility versions for the migration, at least these versions are needed:
We first need to make sure all the daemons are stopped in the destination server:
sudo service nmis9d stop sudo service omkd stop sudo service opeventsd stop sudo service opchartsd stop sudo service opconfigd stop |
There are a couple of options to move configuration files:
Copy - just - the configuration files customised from the source server:
rsync -r root@myserver.com:/usr/local/nmis8/conf/Config.nmis /usr/local/nmis9/conf rsync -r root@myserver.com:/usr/local/nmis8/conf/users.dat /usr/local/nmis9/conf ... |
We can move all the files except the Table-tablename.nmis.
We need to make some adjustments to the Config file.
(Number of nodes x AVG Collect time) / 300 |
300 _ Default polling time.
/usr/local/omk/bin/opcommon-cli.pl act=compare_configs nmis8=/tmp/nmis8.nmis nmis9=/tmp/nmis9.nmis |
/usr/local/omk/bin/opcommon-cli.pl act=compare_custom default=/usr/local/nmis9/conf-default/Config.nmis custom=/usr/local/nmis9/conf/Config.nmis |
/usr/local/nmis9/bin/nmis-cli act=fixperms |
More information here
More information here
Copy the configuration directory from the source server.
Create a conf backup first:
mv /usr/local/nmis9/conf /tmp/nmis9/conf |
This can be done really easy with rsync:
rsync -r root@myserver.com:/usr/local/nmis8/conf /usr/local/nmis9 |
We need to make some adjustments to the file. This is:
'database' => { 'db_name' => 'nmisng', 'db_password' => 'op42flow42', 'db_port' => '27017', 'db_query_timeout' => 5000, 'db_server' => 'localhost', 'db_username' => 'opUserRW', 'db_never_remove_indices' => [ 'nodes' ], }, ... '<nmis_base>' => '/usr/local/nmis9', '<url_base>' => '/nmis9', '<cgi_url_base>' => '/cgi-nmis9', .. 'nmisd_max_workers' => 10, # set to zero to disable multiprocessing 'nmisd_worker_cycle' => 100, # workers sleep no longer than X between cycles 'nmisd_scheduler_cycle' => 10, # the supervisor daemon sleeps no longer than X between cycles 'nmisd_fping_worker' => 'true', # if true, at dedicated worker for fping use used 'postpone_clashing_schedule' => 30, # if positive, clashing jobs are retried N seconds later, otherwise clashing jobs are discarded |
(Number of nodes x AVG Collect time) / 300 |
300 _ Default polling time.
/usr/local/omk/bin/opcommon-cli.pl act=compare_configs nmis8=/tmp/nmis8.nmis nmis9=/tmp/nmis9.nmis |
/usr/local/nmis9 cp conf-default/Table-* conf |
/usr/local/nmis9/bin/nmis-cli act=fixperms |
Even with the daemon stop, we can check if the configuration is working. We can access the GUI:
http://server/cgi-nmis9/nmiscgi.pl
If we see any 500 Error, we can review the apache logs, usually in the path /var/log/apache2/error.log
We can move all the model customisations in the models-custom directory. We can use rsync for this again.
Some models may need to be adjusted. Specially if they are using nmis internal functions.
We have moved the conf/plugins directory using rsync. But the custom plugins need to be adapted to NMIS9.
Here you can find further information.
This can be done really easy with rsync:
rsync -r root@myserver.com:/usr/local/nmis8/database/nodes /usr/local/nmis9/database |
Then fix permissions:
/usr/local/nmis9/bin/nmis-cli act=fixperms |
This script will adapt nmis8 rrd names to nmis9 (From nmis 9.2.1):
/usr/local/nmis9/admin/node_admin.pl act=move-nmis8-rrd-files {node=nodeX|ALL|uuid=nodeUUID} [remove_old=1] [force=1] |
We have copied the nodes file from nmis8 using rsync. We would need to import the nodes now:
/usr/local/nmis9/admin/node_admin.pl act=import_bulk nodes=/usr/local/nmis9/conf/Nodes.nmis debug=true |
We can start nmis9d. Depending on the number of nodes, we should leave it running for more or less time.
We can open nmis9 and you should see the nodes with the rrd information:
There are a couple of options to move configuration files:
Copy - just - the configuration files customised from the source server:
rsync -r root@myserver.com:/usr/local/omk/conf/opCommon /usr/local/omk/conf ... |
And all the customised files/folders (If needed).
opConfig:
command_sets.d compliance_policies config_parsers config_plugins config_sets.d phrasebooks schedule |
opEvents:
EventActions.nmis EventDB.nmis EventEmails.nmis EventListRules.nmis EventNmisRules.nmis EventParserRules.nmis EventRules.nmis EventSyslogRules.nmis EventTivoliRules.nmis EventTrapRules.nmis parser_plugins |
And users.dat file:
ln -s ../nmis9/conf/users.dat conf/users.dat |
It can be done with the following command:
/usr/local/omk# /usr/local/omk/bin/opcommon-cli.exe act=convert_json_dir dir=conf |
Update opCommon.json checking the customised item. You can use an useful script for that:
/usr/local/omk/bin/opcommon-cli.pl act=compare_custom default=/usr/local/omk/install/opCommon.json custom=/usr/local/omk/conf/opCommon.json |
Copy the configuration directory from the source server.
Create a conf backup first:
mv /usr/local/omk/conf /tmp/omk/conf |
This can be done really easy with rsync:
rsync -r root@myserver.com:/usr/local/omk/conf /usr/local/omk |
It can be done with the following command:
/usr/local/omk# /usr/local/omk/bin/opcommon-cli.exe act=convert_json_dir dir=conf |
Update opCommon.json:
"database": { "db_name": "omk_shared", ... "nmis": { "<nmis9_dir>": "/usr/local/nmis9", "<nmis9_logs>": "/usr/local/nmis9/logs", "nmis9_cgi_url_base": "/cgi-nmis9", "nmis9_dir": "/usr/local/nmis9", |
Create symbolic link to nmis9 users file:
ln -s ../nmis9/conf/users.dat conf/users.dat |
opEvents:
mkdir /data/mongodump mongodump -u=opUserRW -p=op42flow42 --out=/data/mongodump |
rsync -r root@myserver.com:/data/mongodump /data |
mongorestore -u opUserRW -p op42flow42 /data/mongodump/ |
opCharts uses the same database.
Run the cli option to restore indexes:
/usr/local/omk/bin/opcharts-cli.exe act=setup-db debug=1 |
In order to upgrade the information about monitored services, we would need to also run the following:
rsync -r root@myserver.com:/usr/local/nmis8/var/service_status /tmp /usr/local/omk/bin/opcharts-cli.exe act=migrate-monitored-services dir=/tmp/service_status debug=1 |
In order for this to work, nmis9 should have run and created the inventory with the monitored services there.
Update database name in opCommon.json:
"opevents_db_name": "nmis", |
Run migration scripts:
/usr/local/omk/bin/opevents-cli.exe act=migrate-nodes debug=8 /usr/local/omk/bin/opevents-cli.exe act=migrate debug=8 |
Then, you should be able to see all the events:
Run ensure indexes:
/usr/local/omk/bin/opevents-cli.pl act=setup-db debug=1 |
Update database name in opCommon.json:
"opconfig_db_name": "nmis", |
Also, to migrate activation, os_info and connection info information, we would need to run an additional script:
/usr/local/omk/bin/opconfig-cli.pl act=migrate-nodes debug=9 |
Run ensure indexes in the db:
/usr/local/omk/bin/opconfig-cli.pl act=setup-db debug=1 |
NMIS8 opReports and NMIS9 opReports work the same way:
If you followed the instructions above, your Report Schedules are back in place, as you've copied over the entire omk-old/conf directory in step five. The /data/omk/var reports directory should still be where it was at the beginning of the upgrade, as it was never changed.
We can copy the opreports and reports directories into the new application to move all the reports:
rsync -r root@myserver.com:/usr/local/omk/var/reports var/ rsync -r root@myserver.com:/usr/local/omk/var/opreports var/ |
opHA 3 works different from opHA 2. The peers would need to be imported manually using the GUI or the cli, using nmis8/conf/Servers.nmis file.
Further information can be found here.
Run ensure indexes in the db:
/usr/local/omk/bin/opconfig-cli.pl act=setup-db debug=1 |
sudo service nmis9d start sudo service omkd start sudo service opeventsd start sudo service opchartsd start sudo service opconfigd start |
We can use rsync for this:
rsync -r root@myserver.com:/usr/local/nmis8 /usr/local |
We can follow the guide for this.
The installer will import the nodes from nmis8 automatically.
When done, stop the nmis9 service. Let's do other changes before keeps running.
sudo service nmis9d stop |
Some of the nodes may not be imported, if you see that message in the logs:
OUTPUT: Error saving node teide: given roleType 'BGP' is not a known type: 'default,core,distribution,access' |
Please make sure to copy all this configuration items from nmis8 to nmis9:
"roletype_list" "nettype_list" "nodetype_list" |
And run the script again:
/usr/local/nmis9/admin/node_admin.pl act=import_bulk nodes=/usr/local/nmis8/conf/Nodes.nmis info=true |
We need to make some adjustments to the Config file.
(Number of nodes x AVG Collect time) / 300 |
300 _ Default polling time.
/usr/local/omk/bin/opcommon-cli.pl act=compare_configs nmis8=/tmp/nmis8.nmis nmis9=/tmp/nmis9.nmis |
/usr/local/omk/bin/opcommon-cli.pl act=compare_custom default=/usr/local/nmis9/conf-default/Config.nmis custom=/usr/local/nmis9/conf/Config.nmis |
/usr/local/nmis9/bin/nmis-cli act=fixperms |
We can move all the model customisations in the models-custom directory. We can use rsync for this again.
NOTE Some models may need to be adjusted. Specially if they are using nmis internal functions.
We have moved the conf/plugins directory using rsync. But the custom plugins need to be adapted to NMIS9.
Here you can find further information.
Link to Step 3 Copy RRDs above
Run the installers for each application. All the data should be automatically migrated.
Same steps as the other procedure.
Run the migration script:
/usr/local/omk/bin/opconfig-cli.pl act=migrate-nodes debug=9 |
Same steps as the other procedure.
Run the migration script:
/usr/local/omk/bin/opcharts-cli.exe act=migrate-monitored-services dir=/usr/local/nmis8/var/service_status debug=1 |