Patching NMIS with 8.3.18G Update

NMIS 8.3.18G is being released for general availability, This release provides many bug fixes and a few new features.

Install CPAN Modules

NMIS8 now requires Net::Syslog, see the 8.3.9G patch for info on SMTP::SSL

cpan
install Net::SMTP::SSL # (required for 8.3.9G)
install Net::Syslog 

Patch NMIS8 code with the NMIS8.3.18G update

#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

#Unarchive the NMIS tarball
cd ~
mkdir patch
cd patch 
tar xvf ../nmis-8.3.18g.tar.gz

# Patch the Code Base
cp nmis8/admin/* /usr/local/nmis8/admin
cp nmis8/bin/* /usr/local/nmis8/bin
cp nmis8/cgi-bin/* /usr/local/nmis8/cgi-bin
cp -r nmis8/install/* /usr/local/nmis8/install
cp -r nmis8/lib/* /usr/local/nmis8/lib
cp -r nmis8/menu/* /usr/local/nmis8/menu
cp 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 

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/Users.nmis /usr/local/nmis8/conf
cp /usr/local/nmis8/install/BusinessServices.nmis /usr/local/nmis8/conf
cp /usr/local/nmis8/install/ServiceStatus.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
cp /usr/local/nmis8/install/users.dat /usr/local/nmis8/conf

Update Server Configuration

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.

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

    %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) 

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

    /usr/local/nmis/bin/nmis.pl type=apache > /etc/httpd/conf.d/00nmis.conf
    service httpd restart

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

Restart Daemons

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

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>