Upgrading NMIS to 8.5G
We recommend that you use the automated installer script for all upgrades.
Automated Patching using the installer script
One of the new features available since 8.4.8G is an automated installation and upgrade script which can perform all of the automatable steps listed below on your behalf.
Once you've unpacked the NMIS tarball you will see install.pl
in the NMIS source directory. Running ./install.pl -h
will show you what options it offers.
A simple invocation of ./install.pl
will prompt you for a few bits of necessary information and confirmations, after which the tool will backup your current NMIS installation and then perform the upgrade or installation steps. Please note that the installer script does not overwrite your existing models or configuration items, so a (semi-)manual comparison of your local changes (if any) will still be required.
To help with this procedure NMIS provides the helper program admin/diffconfigs.pl
. As an example, to check your Config.nmis against the one included with a new NMIS release you would use the tool like this:
cd /usr/local/nmis8 ./admin/diffconfigs.pl install/Config.nmis conf/Config.nmis Comparing install/Config.nmis to conf/Config.nmis Output format: "Config Key Path: - Status in install/Config.nmis + Status in conf/Config.nmis" /system/threshold_period-pkts_hc: - -15 minutes + -5 minutes ...possibly lots more changes... Difference Summary: /authentication/auth_user_name_regex /system/threshold_period-interface /system/threshold_period-pkts /system/threshold_period-pkts_hc
The diffconfigs
tool also works for model files.
At the end of the installation or upgrade run the installer script will save a log of the actions performed in install.log
in the NMIS source directory.
If you don't want to use the installer script please follow the procedure listed below.
Upgrading NMIS8 code with an NMIS patch release
If you are patching from a version earlier than 8.4.6G, there are a few extra steps, none of them are distruptive, so we have left them all together.
The new script, install/update_config_defaults.pl
needs to be run at the end of the configuration upgrade to ensure required changes to Config.nmis are made (specifically for this release a newer version of jQuery is being used); if you use the automated installer script this will be taken care of for you.
We have made some improvements to the NMIS dash performance by improving the volume of data loaded, for people with over 500 nodes this will help, if you have over 1500 nodes it is a MUST have feature.
#Backup current NMIS code and config including models DATE=`date "+%Y-%m-%d-%H%M"` cd /usr/local/nmis8 tar cvf ~/nmis8-backup-$DATE.tar ./admin ./bin ./cgi-bin ./conf ./install ./lib ./menu ./mibs ./models #Make sure NMIS is working before you patch it. /usr/local/nmis8/bin/nmis.pl type=collect debug=true node=<node to test> #Get CP working right. (no prompts) unalias cp #Set NMIS version nmisver=8.4.8a #Unarchive the NMIS tarball cd ~ tar xvf nmis$nmisver.tar.gz mkdir -p /usr/local/nmis8/models-install # Patch the Code Base cp nmis$nmisver/admin/* /usr/local/nmis8/admin cp nmis$nmisver/bin/* /usr/local/nmis8/bin cp nmis$nmisver/cgi-bin/* /usr/local/nmis8/cgi-bin cp -r nmis$nmisver/mibs/* /usr/local/nmis8/mibs cp -r nmis$nmisver/install/* /usr/local/nmis8/install cp -r nmis$nmisver/lib/* /usr/local/nmis8/lib cp -r nmis$nmisver/menu/* /usr/local/nmis8/menu cp nmis$nmisver/models-install/* /usr/local/nmis8/models-install
Checking Model Changes
Recent releases have included many device modelling enhancements, improved graphs and more, if you have made no changes to your models you can overwrite your existing models, otherwise you will need to merge the new models with the existing models, that requires consideration outside this document (git could be your friend here). To overwrite your existing models:
cp /usr/local/nmis8/models-install/* /usr/local/nmis8/models
Patch NMIS8 Config
Your NMIS installation may have settings that you have changed from the default installation. If you would like to keep these changes you will need to merge the additional fields that have been added into the stock configuration into your custom configuration. NMIS provides a tool called updateconfig.pl to help you do this:
# merge changes for new NMIS Config options. /usr/local/nmis8/admin/updateconfig.pl /usr/local/nmis8/install/Config.nmis /usr/local/nmis8/conf/Config.nmis /usr/local/nmis8/admin/updateconfig.pl /usr/local/nmis8/install/Access.nmis /usr/local/nmis8/conf/Access.nmis # update default config options that have been changed: /usr/local/nmis8/install/update_config_defaults.pl /usr/local/nmis8/install/Config.nmis
Most of the config files will likely be the same as the install version, for these you can just copy the new versions
# copy newer configuration files (check that you don't have local changes to these files before running) cp /usr/local/nmis8/install/Tables.nmis /usr/local/nmis8/conf cp /usr/local/nmis8/install/Table-*.nmis /usr/local/nmis8/conf cp /usr/local/nmis8/install/Logs.nmis /usr/local/nmis8/conf cp /usr/local/nmis8/install/Services.nmis /usr/local/nmis8/conf cp /usr/local/nmis8/install/License.nmis /usr/local/nmis8/conf cp /usr/local/nmis8/install/Modules.nmis /usr/local/nmis8/conf cp /usr/local/nmis8/install/Escalations.nmis /usr/local/nmis8/conf cp /usr/local/nmis8/install/Portal.nmis /usr/local/nmis8/conf cp /usr/local/nmis8/install/logrotate.conf /usr/local/nmis8/conf
If you haven't changed your users you can update these:
cp /usr/local/nmis8/install/Users.nmis /usr/local/nmis8/conf cp /usr/local/nmis8/install/users.dat /usr/local/nmis8/conf
Update Server Configuration
Crontab
The new crontab which you generate by running this command /usr/local/nmis8/bin/nmis.pl type=crontab
MAILTO=WhoeverYouAre@yourdomain.tld ###################################################### # NMIS8 Config ###################################################### # Run Statistics Collection */5 * * * * /usr/local/nmis8/bin/nmis.pl type=collect mthread=true maxthreads=10 ###################################################### # Run Summary Update every 2 minutes */2 * * * * /usr/local/nmis8/bin/nmis.pl type=summary ##################################################### # Run the interfaces 4 times an hour with Thresholding on!!! # if threshold_poll_cycle is set to false, then enable cron based thresholding #*/15 * * * * nice /usr/local/nmis8/bin/nmis.pl type=threshold ###################################################### # Run the update once a day 30 20 * * * nice /usr/local/nmis8/bin/nmis.pl type=update mthread=true maxthreads=10 ###################################################### # Check to rotate the logs 4am every day UTC 5 20 * * * /usr/sbin/logrotate /usr/local/nmis8/conf/logrotate.conf ################################################## # save this crontab every day 0 8 * * * crontab -l > /usr/local/nmis8/conf/crontab.root ######################################## # Run the Reports Weekly Monthly Daily # daily 0 0 * * * /usr/local/nmis8/bin/run-reports.pl day health 10 0 * * * /usr/local/nmis8/bin/run-reports.pl day top10 30 0 * * * /usr/local/nmis8/bin/run-reports.pl day outage 40 0 * * * /usr/local/nmis8/bin/run-reports.pl day response 45 0 * * * /usr/local/nmis8/bin/run-reports.pl day avail 50 0 * * * /usr/local/nmis8/bin/run-reports.pl day port # weekly 0 1 * * 0 /usr/local/nmis8/bin/run-reports.pl week health 10 1 * * 0 /usr/local/nmis8/bin/run-reports.pl week top10 30 1 * * 0 /usr/local/nmis8/bin/run-reports.pl week outage 40 1 * * 0 /usr/local/nmis8/bin/run-reports.pl week response 50 1 * * 0 /usr/local/nmis8/bin/run-reports.pl week avail # monthly 0 2 1 * * /usr/local/nmis8/bin/run-reports.pl month health 10 2 1 * * /usr/local/nmis8/bin/run-reports.pl month top10 30 2 1 * * /usr/local/nmis8/bin/run-reports.pl month outage 40 2 1 * * /usr/local/nmis8/bin/run-reports.pl month response 50 2 1 * * /usr/local/nmis8/bin/run-reports.pl month avail ###########################################
NMIS Configuration
You will need to verify the following configuration options have been set correctly or removed. You can edit the configuration through the NMIS UI or with your favorite editor "vi /usr/local/nmis8/conf/Config.nmis"
nmis_summary_poll_cycle
There are some updates to improve UI and polling synchronisation. Check the following configuration option for nmis_summary_poll_cycle, it should be set to false and the summary update added to the crontab.
'nmis_summary_poll_cycle' => 'false',
global_nocollect_noDescription
This needs to be set to blank unless you intentionally want it to be "true"
'global_nocollect_noDescription' => '',
fastping_node_poll
We have found this is better set to a lower number, but if your experience has been otherwise, you do not need to change it.
'fastping_node_poll' => '200',
tables_case_sensitive_keys
This config setting "tables_case_sensitive_keys" is redundant, it is being done in the Tables.nmis file now.
File Permissions
Change Config.nmis to tell NMIS to use the new file permission scheme
%hash = ( --SNIP-- 'system' => { --SNIP-- 'os_execperm' => '0770', 'os_fileperm' => '0660',
Authentication
We recommend updating the authentication system from apache to htpasswd (so NMIS does authentication instead of Apache). 3 steps need to be taken to change this.
Change Config.nmis to tell NMIS to use htpasswd
%hash = ( --SNIP-- 'authentication' => { --SNIP-- 'auth_method_1' => 'htpasswd', # <= change this FROM apache TO htpasswd
Backup old apache configGenerate new apache configuration (if you have customised yours edit it and remove the auth portions instead of generating a new one)
#backup old config cd /etc/httpd/conf.d/ cp 00nmis.conf 00nmis.conf.pre-8.4.6G.bak
Create new config to replace old config and restart apache
/usr/local/nmis8/bin/nmis.pl type=apache > /etc/httpd/conf.d/00nmis.conf service httpd restart
Setup SNMP Trap Daemon
NMIS 8.4.6 includes some Cisco and Generic MIBS and has the ability to view the SNMP traps in the NMIS logging tool.
You will need to copy the options file to the right location and restart the daemon.
cp /usr/local/nmis8/install/snmptrapd.options /etc/sysconfig/snmptrapd service snmptrapd restart
You can test the MIB resolution with this command
snmptranslate -m ALL -M /usr/local/nmis8/mibs/traps 1.3.6.1.4.1.9.9.43.1.1.6.1.5.34
Which should result in:
CISCO-CONFIG-MAN-MIB::ccmHistoryEventConfigDestination.34
Fix Data Type for Some Counters
Fix Data Type on mib2ip Counters
Run this command to make all the DS's COUNTER instead of GAUGE
/usr/local/nmis8/admin/rrd_tune_mib2ip.pl run=true change=true
Fix Data Type on TopChanges Counters
Run this command to make TopChanges the DS's COUNTER instead of GAUGE
/usr/local/nmis8/admin/rrd_tune_topo.pl run=true change=true
Restart Daemons
/usr/local/nmis8/bin/fpingd.pl restart=true
Remove Old PID files
rm /usr/local/nmis8/var/nmis-Config.pid rm /usr/local/nmis8/var/nmis-Config.nmis.pid
Update the Font Cache
In order to make RRD run faster it really helps to update the font cache
fc-cache -f -v
Clean up and Test
# optionally audit your config /usr/local/nmis8/bin/nmis.pl type=audit # fix your config /usr/local/nmis8/bin/nmis.pl type=config # fix permissions /usr/local/nmis8/admin/fixperms.pl # test polling /usr/local/nmis8/bin/nmis.pl type=collect debug=true node=<node to test>