<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE>NMIS - Change Log</TITLE> <META HTTP-EQUIV="Content-Language" CONTENT="en-us"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252"> <STYLE TYPE="text/css"> TD { font-size : small; border-width : 1px; border-style : solid; border-color : #aaaaaa; } TD.blank { font-size : small; border-width : 0px; } TABLE { color : Black; background : White; border-width : 1px; border-style : solid; border-color : #aaaaaa; width : 100%; } TABLE.blank { color : Black; background : White; border-width : 0px; } P { font-family : Arial; } BODY { font-style : normal; font-variant : normal; font-size : small; color : white; background-color : #190032; text-decoration : none; font-family : Arial; } A:active { color : red; background-color : White; text-decoration : none } A:link { color : blue; background-color : White; text-decoration : underline } A:visited { color : blue; background-color : White; text-decoration : underline } A:hover { color : red; background-color : White; text-decoration : underline } .heading { font-style : normal; font-weight : bold; font-size : x-large; font-family : "Arial Rounded MT Bold"; background-color : #190032; color : White; } </STYLE> </HEAD> <BODY> <div class="heading">NMIS - Change Log</div> <table> <tr> <td width="33%">Last updated 21 June 2001</td> <td width="33%"> <p align="center"><a href="http://www.sins.com.au/nmis/nmis-changes.html">Online Version</a></p> </td> <td width="33%"> <p align="center"><a href="http://www.sins.com.au/nmis/">NMIS Home Page</a></p> </td> </tr> <tr> <td width="100%" colspan="3"><b><a name="Announcement">Changes</a></b> <ul> <li><p>LOTS of tidy up in general.</li> <li><p>Stopped loading MIBS all the time.</li> <li><p>NMIS support multiple config files ALOT better, it was basically fine for nmis.pl but not the CGI stuff, should be fine now.</li> <li><p>Simplified the algorithm calculating group status. This is now done by weighting each status level and adding them together and then averaging. You can tweak the results in the overallNodeStatus subroutine.</li> <li><p>Fixed up reports.pl and run-reports.sh, I would actually like to rewrite the entire reporting subsystem, but it won't happen in a hurry.</li> <li><p>Deprecated some config elements and subroutines which were redundant.</li> <li><p>Escalation now done based on Group instead of sysLocation, more logical! Maybe notification should too!</li> <li><p>Converted links to CSV! Careful with conversion, should be fairly easy.</li> <li><p>Fixed links functionality!</li> <li><p>Added checkConfig subroutine and type=config nmis directive which checks the nmis configuration file and makes sure everything is OK. This will be run every time type=update is run but passively.</li> <li><p>Added printApache subroutine and type=apache nmis directive which displays a sample Apache configuration for the NMIS configuration file.</li> <li><p>Added metrics.pl which is a tiny dash with just the basic NMIS network metrics.</li> <li><p>Multilevel debug now, debug is 0-9 where 0 is false, and then the level of debugging you would like. This means more debugging can be added at varying levels of verbosity.</li> <li><p>Lots of code tidy ups, indenting, whitespace, etc to make it a little easier to follow.</li> <li><p>Zoomed up nmiscgi.pl a little by adding arrow icons for metrics, ie red is decreasing, green increasing. I have put this through all metrics, to help indicate where problems are coming from.</li> <li><p>Added config entries for icons and changed all icons in cgi scripts to reference config file.</li> <li><p>Changed getGroupSummary to handle statics which might be NaN, this was effecting color display for valid stats. </li> <li><p>Reweighted getGroupSummary total, so that reachability is 40%, health is 40% and availability is 20%. This should produce a slightly truer metric.</li> <li><p>ifTypes are now handled as a CSV file, this had removed the need for loadInterfaceTypes in NMIS.pl. It is necessary to ensure that iftypes.csv is copied to the conf directory and the ifTypes table entries are included in the nmis.conf, samples have been included in the nmis-sample.conf. This allows new interface types to be added without changing the code or compiling new MIBS.</li> <li><p>Updated whole bunches of nmiscgi.pl, updated the style and revamped it a little bit, looks a bit better now.</li> <li><p>Now using "auto directory finding option" so don't have to edit scripts as much on install, uses Perl FindBin.</li> <li><p>Many new config.dat options and configuration items exist and now called nmis.conf and in <nmis base>/conf</li> <li><p>Added a Generic event type to handle any new UP/Down events you might like, also created event.pl, a CGI script for distributed event management, or creating events in NMIS for a device from other processes, like Unix daemon down/up. Proactive events are already generic ie any event starting with "Proactive" passed with a level=whatever will create an event, and passed with level=normal will close it. Could be handy.</li> <li><p>Simple SNMP error checking in updateUptime which creates an SNMP Down event and checks for SNMP Down if SNMP is up. Prevents problems with people changing the SNMP community string or disabling SNMP. Assumes that if SNMP is up for UpTime ie working for system SNMP variables then it should be working for everything.</li> <li><p>NMIS now has Web based configuration using view.pl. View.pl allows editing of the CSV configuration files. Will hopefully add abilitiy to edit the nmis.conf file too.</li> <li><p>Health metric now includes interface component, all interface input and output utilisation are each subtracted from 100, added together and then averaged, this number is the interface weight, this will contribute 20% of the health metric and should be quite responsive to interface utilisation. I also think this will assist in pinpointing link utilisation problems through the use of the health metric.</li> <li><p>Health metrics have been re-weighted to better suit pinpointing network problems with the health metric. Weighted as follows:</li> </ul> <blockquote> <blockquote> <ul> <li> <p>reachability is 30% </li> <li> <p>interface utilisation is 20% </li> <li> <p>response time is 20% </li> <li> <p>availability is 10% </li> <li> <p>CPU is 10% </li> <li> <p>MEM is 10% </li> </ul> </blockquote> </blockquote> <ul> <li><p>Updated logs.pl with a better parsing algorithm, handles the weird messages in syslog which routers and switches send.</li> <li><p>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.</li> <li>Changed the way events are handled by implementing eventPolicy subsystem, all event levels and notifications are now controled through the events.csv file.</li> <li>Added real escalation subsystem with escalationPolicy and runEscalate, modularised stuff a bit more to support this.</li> <li>Optimised the runThreshold subroutine a little bit.</li> <li>Added in-addr.arpa and DNS LOC entries to the DNS function in nmiscgi.pl.</li> <li>Error checking added to csv.pm to validate data in each record.</li> <li>logs.pl fixed up to do handle unknown records a little better parse.</li> <li>nmiscgi.pl now displays summary stats for each group and a raising falling indicator for metric (could do with some graphics I am sure but more to do).</li> <li>Improved support for the Cisco Catalyst IOS switches, not really tested.</li> <li>NMIS Large Dash now has a config option.</li> <li>NMIS and nmiscgi.pl now uses embedded PNG graphics generated at runtime, this should improve polling scaling. This also assists in distributed management, etc. All automatic graphing has been turned off in nmis.pl by setting the $graph = "false". This just improved the poll cycle from real 0m10.33s, user 0m6.72s, sys 0m0.43s to real 0m5.61s, user 0m2.31s, sys 0m0.32s.</li> <li>Automatically handling of interfaces which have been shutdown between update cycles, this will recreate the interface files on demand.</li> <li>Added query.pl to enable NMIS to be used in a distributed manner, returns easily passed text data over HTTP. Eg query.pl?query=list or query.pl?query=status&group=Sydney.</li> <li>Added summary.pl to enable NMIS to be accessed by ANY HTML device like WAP! Just provides basic lists and summary information.</li> <li>query.pl and summary.pl show how easy it is to develop mini NMS apps which use the NMIS "api" to easily access all the collected information.</li> <li><p>Added email field to contacts table.</li> <li><p>Added support for default locations and contacts for devices without sysLocation and sysContact being set.</li> <li><p>notify subroutine now uses the email field from the contacts table to issue notifications.</li> <li><p>Added CGI graphing to nmiscgi.pl which does the NMIS graphing on the fly, cool, now you can embed NMIS graphs where ever you want! Have started embedding this into all CGI scripts which display graphs. All NMIS graphs will be drawn on the fly.</li> <li><p>Changed the loadConfiguration subroutine to handle variables in the configuration file. This will make installation a little easier for people.</li> <li><p>Added Interface thresholding for input utilisation, output utilisation and interface availability.</li> <li><p>Updated the nmiscgi.pl with a summarised dash and left the nmisMenuLarge as another option. Also created a new summary for each group, allows a little more the concept of drill in!</li> <li><p>Enhanced NMIS documentation.</li> <li><p>Brian gave NMIS a logo.</li> <li><p>Tested with RRDTool 1.0.33.</li> <li><p>Added IP addresses to interface info and fixed up the "find" function so that you can search the interfaces for an IP address (this could be handy for big networks).</li> <li><p>New PING routine using Perl Ping with ms timeout too! Code provided by Richard Kuehnle (this requires root privilages for the NMIS programs)</li> <li><p>Added support for a enterprises file for identifying vendors. </li> <li><p>Worked on createInterfaceFile and added ability to capture IP addresses from the ipAddrTable MIB. </li> <li><p>Added a view table function which allows the easy integration of other data sources.</li> <li><p>Added Locations and Contacts Tables which use the view table script.</li> <li><p>Did a fairbit of Cascading Style Sheet Integration into nmiscgi.pl. This means if you want to change the way NMIS looks you can just edit the NMIS Style Sheet nmis.css and wallah. </li> <li><p>Fixed up that a node with collect = false would not store response time stats. </li> <li><p>Fixed up SNMPv2 Support, now getNodeInfo tests for SNMPv2 support and then if available caches as part of system attributes. </li> <li><p>Added more MIBs to the OID files, and enhanced the existing MIBS to include other common interesting things. </li> <li><p>Fixed it so that the nodeType, netType, and role from the nodes file overrides the getNodeInfo information. </li> <li><p>NMIS is considerable modularised. This is to make the system a little easier to improve with new changes only being added in one file not effecting other files. This includes new packages: <ul> <li> <p>ip.pm</li> <li> <p>func.pm</li> <li> <p>csv.pm</li> <li> <p>ping.pm</li> <li> <p>web.pm (replacing htmllib.pm)</li> </ul> </li> <li><p>Added an IP subnetting program to assist with those nasty subnetting calculations.</li> <li><p>Memory stats now contribute to health statistics.</li> <li><p>Added a notification method for paging. There is now a sendPagerMessage to integrate into an existing paging system.</li> <li><p>SNMP_Simple now included in the NMIS distribution library directories (much easier).</li> <li><p> This includes several minor fixes to the logic and some more considerable changes like using SNMPv2 for collection on Routers and Switches. New options in the config file.</li> <li><p>NMIS now produces a single metric which summarises the network.</li> <li><p>The first version of the <a href="nmis-doc.html">documentation</a> has been added.</li> <li><p><a href="nmis-faq.html">FAQ's</a> added.</li> <li>The PING routine seems to be the biggest problem and I am working on a better cross platform fix but for now Linux users will have to apply there own patch as there seems to be some vast differences to PING across Solaris and Linux.</li> <li>NMIS has been tested and updated to work with RRDTool 1.0.27, I found some unexplained core dumps with 1.0.28 so have decided to go back one and investigate those further.</li> <li> Thanks to the <a href="index.html#Contributors">Contributors</a> for assisting in the debugging and development of NMIS. </li> </ul> </td> </tr> </table> </BODY> </HTML>