SICM Simple Infrastructure Capacity Monitor Logo logo

SICM - Simple Infrastructure Capacity Monitor

SICM v0.95

Update: SICM now has a sibling application System and Network Monitor (SNM).
A comparison of the two applications is on the SNM Home Page.


SICM ( pronunciation: 'sik-em ) is a tool to monitor, graph and alert the capacity of computing devices and applications. SICM 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, 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 SICM 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
  • alerts via e-mail upon a user determined number of queries or threshold failures
  • creates daily, weekly, monthly and yearly graphs
  • requires only single entry of configuration data (template architecture to minimise data entry)

Applying SICM

Examples of how SICM can be applied to monitor capacity 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
  • Web Stats (Apache and IIS)
  • build your own custom module
Networked Devices
  • Printers
  • UPS, power
  • Environment (Temperature, Humidity)


SICM has been successfully tested on:

  • Win32 (W2000/2003/XP):
    Win2000/2003 and XP using IIS web server and Perl 5.8.
    Win2000/2003 and XP using Apache 2 web server and Perl 5.8.
  • Linux:
    Fedora Core 3 and RedHat 9 with Apache 2 web server and Perl 5.8.
  • Browsers:
    • Linux Mozilla 1.2,
    • Linux and Windows Mozilla Firefox 1.0 and 1.5,
    • Windows IE 5 and IE 6.

Prerequisites and Tools

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

  • Editing Tool:
    ConText was used to develop SICM, 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.

Community Links


  • SICM v0.95 - March 2006
    • Modified module to support Perl 5.8.8
    • Enhanced modules documentation
  • SICM v0.94 - March 2006
    • Improved error handling when snmp query result is non numeric: Argument "noSuchObject" isn't numeric in sprintf...
    • Added an internal ping function. The use of the operating systems ping file is no longer mandatory. Efficiency and speed are improved - thanks Jan Vergouwe
    • Modified Windows CPU in the template file (e.g. templates.xml)
    • Added Win2003 CPU to the template file (e.g. templates.xml)
    • Added Win2003 Memory to the template file (e.g. templates.xml)
    • Added documentation on modules
    • Added Win2003 install documentation
  • SICM v0.93 - February 2006
    • Added ability to modify the format of the numbers in the legend <number_format>
    • Added unix load average to the template file (e.g. templates.xml)
    • Minor refactor of query subroutine
  • SICM v0.92 - January 2006
    • Added ability to send alert e-mail to multiple recipients
    • Added option to configure Linux/Unix user ID, group ID and process ID for SICM - thanks anon
    • Added option to configure the font of the graph <graph_font>
    • Added option to configure the font color of the graph <graph_font_color>
    • Added option to configure the back color of the graph <graph_back_color>
    • Added option to configure the canvas color of the graph <graph_canvas_color>
    • Added option to configure the tab space of the graph legend <graph_tab>
    • Refactored scheduling engine to improve code efficiency and allow for future expansion
  • SICM v0.91 - December 2005
    • Corrected error where <input_max> and <input_min> in the .rrd files could be updated with the incorrect value
    • Added option to configure Average, Maximum or 95th Percentile lines to each graph - thanks anon
    • Improved alignment of the graph legend

Note: As of SICM v0.91, only rrdtool v1.2.10 and above are supported.

  • SICM v0.90 - December 2005
    • Added module to ping any TCP port (HTTP, SMTP, FTP, Telnet, etc)
    • Added <version>, where the snmp version (1 or 2c) can be set for snmp queries
    • Added <log_purge> where each day, SICM purges the log file of entries that exceed the nominated age (in days). Log file maintenance is eliminated!
    • Modified log format to align with purge feature
    • Added log graph to monitor the number of log entries per day
    • Added validation of <input_max> and <input_min> against .rrd files each time SICM starts. If the values in the .rrd files do not match those in the .xml file, then SICM changes the .rrd files and records the event in the log file
    • Added Processes to the template file (e.g. templates.xml)
    • Added MS SMTP (Exchange) Stats to the template file (e.g. templates.xml)
    • Updated to Net::SNMP-5.2.0
  • SICM v0.81 - October 2005
    • Corrected error where alerts were not properly handled for data_source_type="COUNTER" - thanks Beecham.
  • SICM v0.80 - September 2005
    • Added capability to use custom modules for queries. It is now possible to monitor anything which can be queried using a perl script.
    • Added module to query Apache server statistics
    • Added module to query MySQL database statistics
    • Added module to query % disk usage of volumes
    • Added option to left or center align the web user interface
    • Added documentation of IIS configuration setting to allow auto refresh of images
    • Improved validation of frequency in RRD files
    • Improved synchronisation of RRD files and queries
    • <upper_limit> and <lower_limit> properties changed to <graph_max> and <graph_min> respectively
    • Added optional <input_max> and <input_min> properties to validate the query input value
    • Added optional <create_graph> property. This instructs SICM to create (or suppress) the graphical image
    • Uses latest version of XML::Simple 2.14
    • RRDtool v1.2.10 added to documentation
    • Added 'How to...' to the web site, a collection of information, tips and answers to improve the operation of SICM
  • SICM v0.70 - June 2005
    • added <metric_alert>, provides an option to alert and e-mail if a snmp value fails a criteria test (eg: free disk space < 10%)
    • added <get_sysuptime>, provides an option to not query the target for 'sysUptime'
    • added <consolidate>, provides an option to show the average or maximum of the consolidated data - thanks Sam Wigley
    • modified unix processor (cpu) utilisation in template file (e.g. templates.xml)
    • created new web user interface
    • simplified the configuration file (e.g. config.xml). Removed <alert_threshold>
    • modified the target file (e.g. target.xml). Replaced <alert_threshold> and <alert_email> with <interface_alert>
    • improved web error handling (sicm.cgi) if alert file is missing or deleted
    • works with rrdtool v1.2.6
  • SICM v0.61 - April 2005
    • improved alert file validation when initiated or deleted
    • replaced method for configuring SICM as a windows service
  • SICM v0.60 - March 2005
    • added ability to e-mail upon query failures
    • the e-mail address and query failure sensitivity can be configured on a per device basis
    • added % unix processor (cpu) utilisation to template file (e.g. templates.xml)
    • more detailed information added to each alert
  • SICM v0.50 - December 2004
    • added ability to query snmp sub-interfaces, eg: frame relay
    • added frame relay congestion FECN and BECN into template file (e.g. templates.xml) - thanks Tim Cimarusti
    • query frequency can now be varied for each template on each device
    • tested successfully with Mozilla Firefox
    • alert date/time stamp added to each alert
  • SICM v0.40 - July 2004
    • if 'interface' in the target file (e.g. target.xml) is not defined, SICM now defaults to '0'. This allows for simpler target files
    • improved clarity of Windows and Linux installation instructions in readme.html
    • added references to snmp agent installation and configuration instructions in readme.html
    • added validation of <target_desc> in the target file (e.g. target.xml)
    • added IIS Web Service to template file (e.g. templates.xml)
    • added Windows Disk FreeSpace% to template file (e.g. templates.xml)
    • added Windows CPU Processor Time to template file (e.g. templates.xml)
    • modified Windows Memory in template file (e.g. templates.xml)
    • tested successfully with Net:SNMP 5.0.0
    • tested successfully with rrdtool 1.0.48
  • SICM v0.30 - February 2004
    • allow snmp interface numbers with high values (was 3 digits, now Integer32)
    • provide option for each target to have an snmp agent port number
    • allow up to 100 lines of the log file (if configured) to be viewed via the SICM web interface
    • tested on Win32 with Apache 2 web server
  • SICM v0.21 - December 2003
    • correct error in sicm.cgi when single target
    • align Linux install with FHS
    • corrected cisco_nbar template
  • SICM v0.20 - November 2003
    • CGI error handling - improved notice to users
    • additional templates
    • additional Linux service configuration option
    • Main program - improved error handling of target file format
    • Main program - improved error handling of template file format
    • Added option of horizontal rule on graphs
  • SICM v0.10 - October 2003
    • initial release
SICM v0.95 Copyright 2003-2006 Thomas Price