Recently I have been checking out a number of different solutions for monitoring remote servers and alerting or warning depending on certain metrics. For this I have looked at a number of different solutions including Server Density, Cloudkick, Cacti, Nagios and some others. Each of these has various advantages and disadvantages.Which I will give a very brief run down of below.

Server Density
The Good

  • iPhone Application
  • Push Notifications for iPhone Application
  • Easy to Deploy Agent

The Bad

  • Costs Per Server for Full Version
  • Limited Services it can monitor.

The Good

  • Incredibly easy to setup monitoring of multiple hosts if your with one of the supported providers. I was using when I tried them out and it worked very well.
  • Very good metric monitoring.
  • Very nice interface.

The Bad

  • Limited to monitoring of supported providers.
  • Need to hand over API key for it to work.
  • In my opinion incredibly expensive.

The Good

  • SNMP Integration
  • Great Interface
  • Very good metric support
  • Cost – Free

The Bad

  • Not Really a Remote Monitoring Solution as does not provide alerting. I know that it was never designed to be but definitely has potential to be expanded on.

The Good

  • Highly Configurable
  • Support for Custom Monitoring Scripts
  • Great Alerting Configuration
  • Cost – Free

The Bad

  • Complicated to configure even for basic monitoring
  • Runs on single host meaning all network monitoring lost of host goes down.

Since none of the above solutions exactly suite my needs I have decided to produce my own monitoring solution. To do this I am going to take advantage of the fact that phpSysInfo provides the majority of the statistics that I wish to monitor and I already run it on most of my servers. phpSysInfo can supply its data in XML form this is that data I can use for monitoring.
So I plan to develop my own solution in Python to read the XML data from multiple remote hosts and then take a defined action if a rule is matched. Since I needed a name for this project I decided to call it SysInfoRM or System Information Remote Monitor.

Here is the basic feature plans for now

Initial Release Features for SysInfoRM

  • Parsing of 1 – n XML from either phpSysInfo or pySysInfo (Since it can supply data in same XML format and should be good for remote monitoring of non web hosts).
  • Ability to define monitoring rules and actions for when they are matched.
  • Easy / Understandable Configuration.
  • Heart Beat Monitoring of Script Itself. Basically run the script in two locations if the Primary fails the other should take over the monitoring.
  • Can be run as a Daemon or as interactive script.

Future Planned Features for SysInfoRM

  • Curses interface for viewing and configuration.
  • Web interface for viewing and configuration.

Python Libraries

  • urllib2
  • smtplib

I am hoping to have something working in the next couple of days just need to get my Python skills up to scratch. I am going to attempt to incorporate all the best bits from the other currently available monitoring tools and as few of the bad bits as possible. I should also mention I was inspired by and am drawing on another good monitoring script from the tomubuntu blog. Tom has done a really good job with this script and I suggest people check it out its a good simple script that can monitor Load Average, Memory and other stats; it can then alert using sSMTP.

That is all for now please check back soon I’ll be providing updates on the progress of SysInfoRM as I develop it and will post the SVN or Git Repos once I get one set up.

Share this post

Leave a Reply

CAPTCHA (required) Time limit is exhausted. Please reload CAPTCHA.