Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

...

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 requiredif 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:

Code Block
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.

...

Code Block
themeEmacs
#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:

Code Block
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:

...

Code Block
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

Code Block
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.

Code Block
 'nmis_summary_poll_cycle' => 'false', 

global_nocollect_noDescription

This needs to be set to blank unless you intentionally want it to be "true"

Code Block
'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.

Code Block
'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

Code Block
%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.

  1. Change Config.nmis to tell NMIS to use htpasswd 

    Code Block
    %hash = (
    --SNIP-- 
     'authentication' => {
     --SNIP--
       'auth_method_1' => 'htpasswd',  # <= change this FROM apache TO htpasswd
  2. 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) 

    Code Block
    #backup old config
    cd /etc/httpd/conf.d/
    cp 00nmis.conf 00nmis.conf.pre-8.4.6G.bak
  3. Create new config to replace old config and restart apache 

    Code Block
    /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.

...

Code Block
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

...

Code Block
/usr/local/nmis8/admin/rrd_tune_topo.pl run=true change=true

Restart Daemons

Code Block
/usr/local/nmis8/bin/fpingd.pl restart=true

Remove Old PID files

Code Block
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 

Code Block
fc-cache -f -v

Clean up and Test

Code Block
# 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>