Just a very quick update I have setup a Git Repository for my SysInfoRM project.
It can be found at http://github.com/mtdavidson/SysInfoRM/
Oversimplifying
Just a very quick update I have setup a Git Repository for my SysInfoRM project.
It can be found at http://github.com/mtdavidson/SysInfoRM/
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.
Cloudkick
The Good
- Incredibly easy to setup monitoring of multiple hosts if your with one of the supported providers. I was using vps.net 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.
Cacti
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.
Nagios
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
Future Planned Features for SysInfoRM
Python Libraries
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.