NMIS - Network Management Information System

NMIS has a new Home @ OPMANTEK
NMISV8 has been released download @ opmantek.com
NEW NMIS Wiki @ https://community.opmantek.com

Last updated 12 July 2013

NMIS's New Home - We are moving the support and related information to opmantek.com and here you will find the latest information on NMIS.

NMIS 8.4.2 General Release is available, you can get if from Opmantek.com

All new NMIS releases will be available from Opmantek.com

NMIS is 14 years old

Table of Contents NMIS was originally written by Keith Sinclair and Eric Greenwood, it is maintained by the Development team at Opmantek.com with a help from a collection of contributors around the world.

Download NMIS 8.3.1 18 September 2011

The software has been released to the Public Domain under the GPL License. This means that it is free if you agree to the terms of the GPL License. If you would like the software under a different agreement please contact Keith Sinclair.

NB: NMIS began as a hobby for Keith Sinclair.  Keith says "I have released this software as I wanted to contribute something back to the Network Management Community which has helped me.  Guys like Tobias Oetiker!" Development continues at SourceForge (see above).

For more Cisco oriented NMS software try Cisco-centric Open Source Exchange Community. RRDTool

RFC 1876 Now NMIS assists with maintaining DNS LOC records RFC1876

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 RRDToolRRDTool 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 GPL software, please ensure that you read the license as by using this software you are bound by it.

  • NMIS 4 is available via cvs on sourceforge!

  • NOTE: Lots of NMIS has been deprecated!  Things that I wanted to do have been done, code simplified, filenames changed and lots of things.  This has been done to improve and simplify NMIS but will be that if you have an existing NMIS running you will need to implement the new NMIS carefully. 


  • NOTE: Changes now tracked in the Change Log.

  • With all the changes NMIS appears to be HEAPS faster!

  • Many new config options and configuration items exist.

  • Configuration validation routine for ensuring that NMIS is configured properly.

  • Updated whole bunches of nmiscgi.pl, updated the style and revamped it a little bit, looks a bit better now.

  • Updated logs.pl with a better parsing algorithm, handles the weird messages in syslog which routers and switches send.

  • Added map.pl which enables NMIS to display group status colored icons for each group on a HTML map using CSS.  Icons will change color with group status, also display summary network metrics and allows drill in to NMIS for each group. (not auto-discovery or drag and drop).  Adds a bunch of config.dat elements and requires setting up map.csv with icon placement co-ordinates.

  • Added summary.pl which is a very basic NMIS CGI interface for WAP and Palm type devices or low bandwidth connections.

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.

NMIS has had many updates and changes since this sample was produced but this is still representative of what NMIS looks like and does.

Contributors - NMIS development has been assisted by (in no particular order): Eric Greenwood, Jean Cologne, Ivan Brunello, Andrew Sinclair, Greg Ferro, Wade Miller, Russell Miller, Richard Kuehnle, Brian M Estep, Gary Veum, Dave Packham and Stephane Monnier
Contributions - NMIS was orginally developed by Keith Sinclair, since then quite a few people have contributed to its development.  If you are interested in contributing to the development you are most welcome to just send your code, ideas, suggestions to the User Group.
User Group - To assist in keeping interested parties in sync I have created a NMIS user group on Yahoo Groups.
Post message: nmis_users@yahoogroups.com
Subscribe: nmis_users-subscribe@yahoogroups.com
Unsubscribe: nmis_users-unsubscribe@yahoogroups.com
List owner: nmis_users-owner@yahoogroups.com
URL for the user group: http://groups.yahoo.com/group/nmis_users
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 or problems please let the team know @ nmis_users@yahoogroups.com so the team can catch the comments and make some more permanent changes for future releases.

NMIS is often run on Linux PC platforms but has also been run on higher end Sun Microsystems machines.  Memory is more important then CPU in this case.  Performance for polling is dependant on many things but usually limited by how long it actually takes to poll each device for the required SNMP statistics.  Generally speaking any Pentium II or UltraSparc should be able to manage about 100 to 200 nodes.  The faster the machine the more memory should equal more nodes.  This will obviously reach some sort of law of diminishing returns.

Recommended hardware for 100 nodes (highly conservative, would probably do a few more):
  • Solaris I386 or Linux (or anything you want to support)
  • Pentium III 800 Mhz
  • 256 Megs of Memory 
  • 20 Gig of disk (cheap) 
  • Fast Ethernet connection to the network.
Browser - The CGI scripts of NMIS have been written with HTML 4.01 and CSS2 W3C recommendations in mind.  NMIS in general relies heavily on Cascading Style Sheets (CSS), so some of the older browsers do not work quite write, for example Netscape 4.x do not render the web pages properly and look quite terrible.  NMIS has been tested with the following Windows browsers:
  • Internet Explorer 5.x
  • Netscape 6.x
  • Opera 5.11

NMIS attempts to be fully validated HTML but does not promise to comply completely at present due to the large amount of HTML embedded in the CGI scripts.


Why write yet another piece of Network Management Software?  Simple, most Network Management Software does one thing, focuses on an element from the OSI Network Mangement Reference Model.  This means that you end up with lots of different bits of software running, all of them polling the network and they all have to be integrated.  NMIS is trying to meet the requirements of several functional areas from the OSI network management model.

At the moment this is Performance Management and Fault Management and a little Configuration Management.  That is why NMIS was written, to fill in the gaps and provide one system which will meet a large number requirements and functions of network management.  NMIS is also aiming to be proactive, provide reporting and give the status of the network "at a glance fashion".

The at a glance is a dashboard of the network with operational status of all network devices and the groups which those devices belong to.  NMIS could be considered an API for network management, get the polling engine to collect and monitor, using RRDTool as the database, then access this information in any way you like to display status, statistics, etc.

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.

Package Version
Author Download
Perl 5.6.0 Larry Wall http://www.cpan.org/ports/index.html
RRDTool 1.0.33 Tobi Oetiker http://ee-staff.ethz.ch/~oetiker/webtools/rrdtool/download.html
SNMP Session 0.77 Simon Leinen ftp://ftp.switch.ch/software/sources/network/snmp/perl/
SNMP Simple   Alan Nichols http://sins.com.au/public/SNMP_Simple.tar.gz
(already patched)
Time::ParseDate 99.111701 David Muir Sharnoff Time-modules-99.111701.tar.gz 
Time::HiRes 1.20 Douglas E. Wegscheid  Time-HiRes-01.20.tar.gz
Apache 1.3.11 Apache Project http://www.apache.org/dist/
Image Info 0.04 Gisle Aas http://www.perl.com/CPAN/authors/id/GAAS/Image-Info-0.04.tar.gz
Statistics::Lite 1.02 Brian Lalonde http://search.cpan.org/CPAN/authors/id/B/BR/BRIANL/Statistics-Lite-1.02.tar.gz
Net::SNPP 1.13 Derek J. Balling http://search.cpan.org/CPAN/authors/id/D/DR/DREDD/Net-SNPP-1.13.tar.gz
libnet 1.13 Graham Barr http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/libnet-1.12.tar.gz
NET-SNMP   NET-SNMP Project NET-SNMP IS NOT REQUIRED FOR NMIS, it is however a VERY handy tool for Network Mangement. http://sourceforge.net/project/showfiles.php?group_id=12694
All new NMIS releases will be available from Opmantek.com
If you require any older versions for some obscure reason please ask on the nmis_user yahoo group.
SNMP_Simple_NMIS.tar.gz SNMP Simple NMIS Edited version
mibs.tar.gz MIBs - A collection of publicly available MIBs sort of ready to use in general and with NET-SNMP.