Logo logo

SNM - System and Network Monitor

SNM v4.50

Supported by:

SNM is a tool to monitor, graph and alert the capacity of computing devices and applications. SNM runs on a Windows or Linux device on your network, 24 hours every day and constantly records the capacity parameters of any networked device using snmp (v1, v2c or v3), ping or custom modules. The recorded data is stored for later reference via a user friendly menu-driven web browser. E-mail alerts are raised if a user determined number of queries fail. Refer to the example for a sample screen.

The objective of SNM is to provide an easy-to-use front-end to Tobias Oetiker's RRDtool, similar to MRTG, that:

  • is complete as well as simple to implement and support (XML configuration files and no databases except RRD)
  • is flexible:
    • allowing a variety of devices, operating systems, applications, interfaces and sub-interfaces to be queried
    • providing ping, snmp and custom queries to any target to measure bandwidth, cpu, memory, disk, UPS battery, web statistics, tcp ports, etc
    • allowing a different query frequency for each template on each device
  • provides a web based, menu driven presentation of the graphical output
  • discover snmp attributes about each target
  • provides extensive manipulation of data to produce composite graphs
  • alerts via e-mail and/or syslog upon a user determined number of queries or threshold failures
  • creates daily, weekly, monthly and yearly graphs
  • multilingual

Examples of how SNM can be applied to monitor systems and networks include:

System Monitoring / System Management
  • Disk Space
  • Memory
  • CPU
  • Processes
  • Latency (ping)
  • Network Interfaces
Network Monitoring / Network Management
  • Latency (ping)
  • Network Interfaces
  • Network Errors
  • CPU (Cisco)
  • Packet Accounting (Cisco)
Application Monitoring
  • TCP ports (HTTP, SMTP, FTP, Telnet, etc)
  • MySQL Stats
  • MS Exchange Stats
  • DNS queries
  • Web Pages
  • Web Stats (Apache and IIS)
  • build your own custom module
Networked Devices
  • Printers
  • UPS, power
  • Environment (Temperature, Humidity)

SNM has been successfully tested on:

  • Win32 (W2000/2003/XP):
    Win2000/2003 and XP using IIS web server and Perl 5.8 or 5.10.
    Win2000/2003 and XP using Apache 2 web server and Perl 5.8 or 5.10.
  • Linux:/FreeBSD/MacOSX:
    Fedora 8 using Apache 2 web server and Perl 5.8.
    Ubuntu 8.10 using Apache 2 web server and Perl 5.10.
  • Browsers:
    • Linux and Windows Mozilla Firefox 2.0 and 3.0,
    • Windows IE 6 and 7.


  • Written in Perl
  • Tested on Win32 (Win2000/2003 and XP) using IIS web server with Perl 5.8 or 5.10
  • Tested on Win32 (Win2000/2003 and XP) using Apache 2 web server with Perl 5.8 or 5.10
  • Tested on Linux (Fedora 8 and Ubuntu 8.10) with Apache 2 web server and Perl 5.8 or 5.10
  • Easily ported to other operating systems (Mac OS X configuration included)
  • Tested on:
    • Linux and Windows Mozilla Firefox 2.0 and 3.0,
    • Windows IE 6 and 7 browsers
  • Query each target and each template at a different frequency
  • Menu driven
  • View daily, weekly, monthly and yearly graphs
  • One click to view most pages
  • Visual alert indicator, visible on all web pages
  • Automatic browser refresh
  • Multi-language capable
  • English is default, also Deutsch , Espa˝ol and Franšais are included
  • How to ... provides guidance on adding additional languages
  • Configure multiple metrics per graph
  • Combine values to graph composite values, eg: InBit/sec + OutBit/sec = TotalBit/sec
  • Configure graphs using color, line width, area and stacking
  • Display daily, weekly, monthly and yearly graphs
  • Graphs display current, average and maximum values
  • Configure horizontal lines on the graph to show average, maximum or 95th percentile values
  • Configure a fixed value horizontal line on the graph
  • Set the displayed maximum and minimum values of the graph
  • Ping any device and graph the minimum, average and maximum round trip response times

Query any snmp OID, including:

  • snmp v1, v2c and v3 (no Auth no Priv)
  • Interfaces and sub-interfaces (Ethernet, Frame Relay, IP, errors, dropped packets, etc)
  • Host resources (cpu, memory, disks, etc)
  • Applications (mail, web, database, etc)
  • Appliances (print servers, UPS, SAN, NAS, etc)
  • Standard and device dependent snmp socket
Custom Modules

Query anything using a module. Build your own module. Examples include:

  • Apache statistics
  • MySQL performance
  • DNS queries
  • TCP ports (ftp, http, smtp, telnet, etc)
  • Web page monitoring
  • custom snmp modules
  • SNM provides %ip_address%, %community% and %interface% as optional variables for the modules
  • Alerts via e-mail and/or syslog upon a predetermined number of query failures or thresholds
  • Option to alert when the query returns from DOWN to UP
  • Users are alerted to query failures via the web interface
  • Option to alert if a query value fails a criteria test (eg: free disk space < 10%)
  • Option to e-mail/syslog alerts on a device by device basis
Discover Attributes
  • Discover SNMP attributes about each target including interfaces, storage volumes and memory.
  • Customise the attributes to discover
  • Customise the frequency of discovery
Installation and Operation
  • Easy to install (Perl + RRDtool + SNM)
  • Easily configurable using XML files
  • Use test and verbose modes for easy diagnosis
  • Install as a service
  • GPL License

History and plans for SNM and SICM

  • SICM was developed in keeping with the 'Simple ...' part in it's name. Over the past few years a number of feature requests have challenged this 'Simple' part of SICM, this built to a point in time where either:
    • a name change was appropriate (drop the 'Simple' from SICM), or
    • keep SICM and develop a new application.
  • The decision made was to keep SICM and develop a new application, SNM. The objective is to build and maintain the two applications as siblings:
    • The emphasis of SICM will be on simplicity and the introduction of open source management to the user
    • The emphasis of SNM will be on providing the user with empowering features and enhanced flexibility
  • Needless to say, after the introduction of SNM, additional features are planned, also enhancements to SICM are planned to improve alignment with SNM as well as improve ease-of-use.

Current comparison of SNM and SICM

version v0.95 v3.50+
Web Compliance HTML 4.0 Transitional XHTML 1.0 Transitional
Graph Generation Graphs generated after each scheduled target query Graphs generated only upon user web request
Web menu depth 2 3
Presentation of data in graphs Simple manipulation of data, with one plot per data series Complex manipulation of data is possible including combining of multiple data sets into one plot
snmp versions 1 and 2c 1, 2c and 3 (noAuthNoPriv)
Discover target attributes not available Discover attributes of targets using snmp. Configure the frequency of discovery as well as the attributes to discover
Alerting e-mail e-mail and/or syslog
Internationalization English only English, Deutsch, Espa˝ol and Franšais included

An understanding of xml, ip networking and snmp is assumed.

  • Editing Tool:
    Komodo is used to develop SNM, hence is recommended if you do not already have a preferred editor.
  • snmp Query Tool:
    Getif for Win32 or net-snmp for Linux are recommended for the snmp querying of devices to assist in determining OIDs, etc.
  • SNM v1.00 - May 2006
    • initial release
  • SNM v2.00 - June 2006
    • Added new feature, Attribute Discovery
    • Added snmp v3 (no Auth no Priv)
    • Added autoscale to graphs
    • Modified layout of alert table in Web page. Detail added to alert.
    • Configuration file (e.g. config.xml) properties modified. Now logically grouped
    • SNM Web page now varies in size to align with changes in the image width. Thanks bw
    • Improved XML file parsing and error handling in snm.cgi
    • Corrected error when snmp v2 64-bit counters set value to -1 once they exceed 2^32.
    • Many thanks to John Strunk for his ideas, contributions and testing.
  • SNM v2.10 - July 2006
    • Improved logging of e-mail alerts
    • Modified SNM to warn on O/S not recognised instead of fail
    • Added <comments> to <graph>
    • Added <translate> to <value> in Attribute Discovery
    • Multiple attributes="" are now permitted in <target>
    • Added <calculate> to <value> and <column> in Attribute Discovery
    • Added option to authenticate to SMTP e-mail server
    • Added capability of multiple target files - thanks John Strunk
    • Thanks to Graham King for his ideas in Attribute Discovery.
  • SNM v2.20 - August 2006
    • Added Webmon module to monitor web pages
    • Added option to alert when a status changes from down to up
  • SNM v2.30 - September 2006
    • Gerard has joined as a developer, welcome aboard!
    • Added <attributes convert=""> option to convert SMI DateAndTime to a readable format
    • Corrected <attributes frequency=""> error
    • Improved SNMP attributes query by increasing message size
    • Improved attributes scheme display - thanks Graham King
    • Added DNScheck module - thanks Stephen Russell
    • Added MySQL Status module - thanks Stephen Russell
    • Improved input of module results - thanks Stephen Russell
  • SNM v3.00 - January 2007
    • Added multi-language capability
      • Deutsch - thanks Doan
      • Espa˝ol - thanks Oscar
      • Franšais - thanks Vivien and IanarÚ
    • Added test for existence of Time::HiRes module during startup
    • Added multi-file capability for targets and graphs - thanks Philippe
    • Added IP address table to discover.xml - thanks Steve
    • Simplified initial targets.xml and graphs.xml
    • Added Mac OS X documentation - thanks Peter
  • SNM v3.01 - February 2007
    • SNM v3.01 resolves some Win XP install issues
    • Added snm.log to the build
    • Added test for existence of font during startup
    • Added permissions configuration to the IIS install process
    • <short_label>s are now optional
    • Remove character restrictions in descriptions
    • Filter non-print characters from RPN expressions
  • SNM v3.50 - March 2008
    • Added support for FreeBSD, thanks Anon
    • Added alert to syslog server capability
    • Added script for basis of unix daemon, thanks Dmitry
    • Translations - thanks Doan, Oscar and Vivien
  • SNM v4.00 - July 2008
    • Added Status page and modified menu
    • Updated ping library
    • Modified SNM code to align with recommendations
    • Tested on fedora 8 (been on fedora 3 for too long)
    • Fixed missing email subject for international languages
    • Fixed a number of minor language issues
  • SNM v4.01 - August 2008
    • Fixed module parse error - thanks Dan
    • Language (Espa˝ol) corrections - thanks Oscar
  • SNM v4.10 - September 2008
    • Moved attributes from menu to Status table
    • Simplified menu
    • Tested on Firefox 3
    • Added SHOUTcast DNAS server monitoring module - thanks Stephen
    • Additional alignment with recommendations
  • SNM v4.20 - October 2008
    • Layout modified to allow for long target names - thanks Garth
    • Simplified language management
    • Updated multi file examples
  • SNM v4.21 - October 2008
    • Fixed 'can't call maketext' error - thanks Michael
  • SNM v4.22 - November 2008
    • Added support for Perl 5.10 on *nix platforms
    • Additional testing with Ubuntu
    • Fixed additional 'can't call maketext' error - thanks Mike
    • Additional alignment with recommendations
  • SNM v4.50 - December 2008
    • improved *nix daemon file (snmd) - many thanks Mike
    • has been added to make installation easier
    • Note: changes to the folders in occurred as a result of
    • Note: changes to config.xml occurred as a result of
  • SNM v4.50 - January 2009
    • rrdtool-1.2.30-win32-perl510 has been released and is supported by the existing SNM v4.50
    • install documentation has been updated to include Perl 5.10 on Win32.