Table of Contents
NB: NMIS is still under development and that development is limited by fulltime work and life commitments. I have released it earlier then originally intended as I wanted to contribute something back to the Network Management Community which has helped me. |
NMIS Version 0.8c is written and maintained by Keith Sinclair keith@sinclair.org.au
It is available @ SINS - Sinclair InterNetworking Services The software has been released to the Public Domain under the GNU License. This means that it is free if you agree to the terms of the GNU License. If you would like the software under a different agreement please contact Keith Sinclair. |
||||||||||||||||||||||||||||||||||||||||
ANNOUNCEMENT - Last updated
10 February 2001
|
|||||||||||||||||||||||||||||||||||||||||
| Sample Screens - these "screen shots" are output from a production system but edited to protect the innocent. Some of the hyperlinks have been removed. A real system would have many hyperlinks to itself. | |||||||||||||||||||||||||||||||||||||||||
| FAQ - Frequently Asked Questions. The questions and answers which people have asked. Please read before asking for help. | |||||||||||||||||||||||||||||||||||||||||
| Supported Platforms - NMIS is written in Perl so theoretically if your toaster runs Perl and has an IP address it can run NMIS. Nearly all the development of NMIS has taken place on Solaris for Sparc and i386. NMIS should work on all versions of Unix, and if you have any feedback on how the install went, problems please let me know on feedback@sins.com.au so I can make some more permanent changes for future releases. | |||||||||||||||||||||||||||||||||||||||||
| Introduction NMIS stands for Network Management Information System. It is a Network Management System which performs multiple functions from the OSI Network Management Functional Areas, those being, Performance, Configuration, Fault. It started as a SNMP polling and statistics viewer front-end to Tobi Oetiker's RRDTool. RRDTool replaces MRTG but doesn't include a front end and backend to handle SNMP polling and display resulting web pages etc. The original NMIS evolved quite rapidly to meet demands of production environments. The backend, polling engine, uses SNMP to collect interface and health statistics for Cisco Routers, certain Cisco Catalyst Switches and Generic SNMP devices every 5 minutes. The backend stores the statistics in RRD's (Round Robin Databases) and ensures that devices are up, issues alerts, etc. The front end accesses the information stored in the RRD's and displays statistics the resulting graphs, reports, etc. Both the front and back ends are highly extensible and features are easy to add as the structure is learnt. For example the backend was just collecting interface statistics every poll cycle, it was easy to add collection of health (cpu, memory, buffer, etc) and response time, availability. I will continue to spell out more about NMIS but for now, have a look at the Features and Benefits, Install it and see what it can do. NMIS is released as GNU software, please ensure that you read the license as by using this software you are bound by it. |
|||||||||||||||||||||||||||||||||||||||||
Features
and Benefits
|
|||||||||||||||||||||||||||||||||||||||||
|
The packages listed in the required packages first following the instructions for each of these packages, some of these packages will have there own dependencies. After the required packages are installed you will need to unpack (if you already haven't) the NMIS distribution. The base directory <BASE> is up to you a Solaris way is to use /opt/<PROGRAM> like /opt/nmis. I use /data/nmis myself. The file system which has the database is going to need a lot of space. You can have the program and library files stored in one file system or directory and the data files stored in another directory. File locations are controlled with the config.dat file, this is the link for the program files to read your configuration you can modify the source to have a different config file but all other directories and control files are stored in this files the default is /data/nmis/files/config.dat Extract the distribution from the compressed tar file Uncompress the distribution gunzip <nmis distribution gz file> Pick a base directory for the NMIS distribution like /data or /opt and untar the files tar xvf <nmis distribution tar file> Directory Structure The basic directory structure is:
At the moment you should make all directories listed in this file, might automate this later on. Might be a good idea to decide on a location for the data files and keep it separate from the program files as you are likely to upgrade to new program versions. Create nmis users and groups Not a bad idea to have someone own nmis from the unix permissions point of view, I create a NMIS user and group and put my own userid the HTTPD user and whoever else in the group of nmis and then administration becomes a little easier. I have already set the distribution to be owned by userid 4200 and groupid 4200. For Solaris: groupadd -g 4200 nmis useradd -u 4200 -g nmis -c "NMIS User" nmis Setting the location of Perl in the scripts So that NMIS runs properly you will need to edit all the perl scripts and change the top line which tells the script which shell to use currently this line would read: #!/usr/local/bin/perl This should work for 99% of people as this is the usuall location of Perl. If your executable lives somewhere else then you would need to change this ie: #!/usr/bin/perl5 This should be done in nmis.pl, nmiscgi.pl, reports.pl, logs.pl and admin.pl. Setting up Ping Currently you must edit the ping subroutine to point to your platforms ping program, I am working on fixing this. For Linuks a user suggested the following patch: host$ diff NMIS.pm NMIS2.pm
2444,2445c2445,2446
< my $ping = "/usr/sbin/ping";
< my $result = `$ping $node $timeout 2>/dev/null`;
---
> my $ping = '/bin/ping -c 1 -w 10';
> my $result = `$ping $node 2>/dev/null`;
2447c2448
< if ( $result =~ /alive/i ) { $result = 100 }
---
> if ( $result =~ /time=/i ) { $result = 100 }
Adding devices to the device list The nodes.dat file lists all the devices you want to manage, this is a CSV file where each line defines node,community,net,type,role,group,collect. Where:
Adding links to the links list More on this later, working on generating a lisk of Point to Point Links automatically. Running NMIS Setting up web access Apache should already be working, easiest thing to do is add aliases for the relevant directories ie: Alias /nmis/ "<BASE>/web/" ScriptAlias /cgi-nmis/ "<BASE>/cgi-bin/" Add these entries to the apache configuration generally /usr/local/apache/conf/httpd.conf and restart apache either with the command or a kill -HUP on the daemon PID. Keep in mind file permissions for the HTTPD daemon and NMIS, I usually create a group called nmis and put myself and the HTTPD user into it. Now all the CGI scripts and base docs and style sheets will be linked in. You should be able to see something at http://<HOST>/cgi-nmis/nmiscgi.pl and wallah you should have something there. Event Management and SNMP Tools The NET-SNMP nee UCD-SNMP has a bunch of great SNMP tools, obtaining and setting up this package compliments NMIS quite well. Some work is being done to investigate the use of the NET-SNMP Perl SNMP module in place of the current SNMP API. More info on NET-SNMP and setting it up is here. Setting up SYSLOG for Cisco SYSLOG Add the following entry to syslog local7.debug /var/log/cisco.log If the log matches the one in logs.pl you will be able to browse the cisco syslog messages and see what is happening. Setting up LOG Log is a tool which allows viewing of the logs which NMIS and syslog generate. It color codes and allows searching, filtering of the log files. The config file is /data/files/logs.dat, A sample is included in the NMIS distribution. Automate the whole lot with CRON Add the following entries to run NMIS bits and pieces. ###################################################### # Run the Reports Weekly Monthly Daily ###################################################### 54 23 * * * /data/nmis/bin/run-reports.sh day health 55 23 * * 0 /data/nmis/bin/run-reports.sh week health 5 0 1 * * /data/nmis/bin/run-reports.sh month health 0 18 * * * /data/nmis/bin/run-reports.sh day response 57 23 * * 0 /data/nmis/bin/run-reports.sh week outage ###################################################### # Run Statistics Collection 5,10,15,20,25,30,35,40,45,50,55 * * * * /data/nmis/bin/nmis.pl type=collect ###################################################### # Run the update twice a day 30 7,20 * * * /data/nmis/bin/nmis.pl type=update # Run the interfaces once and hour with Thresholding on!!! 10 * * * * /data/nmis/bin/nmis.pl type=threshold
|
|||||||||||||||||||||||||||||||||||||||||
| Required
Packages The following packages and versions are what NMIS was built on, it is highly likely that other versions of the same programs will work but I have not performed the regression tests. The following MOD needs to be made to SNMP_MIB sub_loadoids.html this code can be added to the SNMP_MIB.pm file in the SNMP Simple Package.
|
|||||||||||||||||||||||||||||||||||||||||
To Do
|
|||||||||||||||||||||||||||||||||||||||||