Having some problems at work were some of our units in the field are having communication issues. IS says it’s an IT problem, IT says it’s an IS problem, a vicious cycle indeed
In order to help narrow the problem down, I (representing the IS team), and my co-worker Mark (representing the IT Team, although in this case, he’s really on my side) have installed some monitoring software on our home PC’s to assist in the diagnosis. We needed something that was free and easy to setup for our little test, and Servers Alive fit the bill.
The free/trial version of Servers Alive allows you to monitor up to 10 entries, with an entry being a 1 IP and 1 check. There are a large number of checks available, with the ones being used for our test tonight being, TCP Port Connect, FTP, HTTP URL, and Ping. I pretty much used up all 10 of my free entries, 8 of which were set to monitor stuff at work, and 2 were set to monitor 2 other external web sites (this blog, and msn.com), to serve as a baseline comparison.
Servers Alive has excellent alerting capabilities, as well as a pretty extensible reporting engine, in the form of log files, and HTML generation based on templates. For our test, I’m using a sample template contributed by a member of the Server’s Alive community, and then publish it via FTP (included functionality in SA) to my web site. I also have turned on the file logging capability and set it to maximum.
I encourage you to check out Servers Alive, it’s Features, and Free add-ons.
After getting Servers Alive up and running, I turned to doing some research on other monitoring software that was available. One of the key requirements I was looking for, was a open source monitoring framework, something I could build my own monitors for and tweak stuff as needed. My Google search led me to a site at Standford that lists a plethora of monitoring and other network administration tools. I quickly scanned thru the list and picked out one commercial one that I had heard of before, and the gem I found in Polymon.
GFI: GFI makes several commercial products, including the linked application, Network server monitor (NSM). NSM has tons of monitoring, reporting and alerting capabilities out of the box. There is support for using SQL as a data store, and you can extend and add your own monitors using VBScript. Pricing is based per IP, which makes it cheaper then MOM. With the SQL data store option, you could easily create a web site, or integrate it into an existing web site/portal. GFI states that no client apps need to be installed on the machines you are monitoring.
Polymon: Polymon is an open source project on CodePlex, that meets my needs in that it is an open source monitoring framework, with a good deal of out of the box functionality, and it’s based on the .Net Framework. Just looking at the screen shots, shows the amount of time that has been put into this project so far, and the project roadmap shows the developer has put some thought into this for the future.
Out of the box, there are a good deal of monitors, although not as many as a commercial solution. The monitors in green are the ones required to replace our current commercial monitoring solution (if we choose that route). Even if we don’t do it at work, I’ll be looking to get this running on my new server.
- CPU
- Disk
- File (Age and Counts)
- Windows Performance Counters
- Ping
- PowerShell Scripting
- SQL Monitor via Stored Procedures
- SNMP
- TCP Port
- URL
- Windows Service Monitor
- WMI Monitor
Polymon is extensible in several different ways, and you should check out some of the samples available. First, you can add performance counters, and WMI information to your applications. This approach allows you to switch to a different monitoring solution down the road, including MOM, as WMI is widely supported. From a SQL server standpoint, anything you can do in a stored procedure, can be monitored and reported on. Third, there is PowerShell, which in case you didn’t know, gives you the power of the .Net Framework from a command prompt, so basically, you can write a script to do just about anything you want. Finally, you can make your own monitor by extending from an included interface and adding the assembly to the install folder.
For our current project, I see a definite need f0r the existing monitors we are using (highlighted in green above), add in WMI for BizTalk, and we are a good way thru our monitoring requirements. One thing I see missing, is a email monitor, but this could be added via a PowerShell script, or custom assembly. Another thing missing, is a way to kick off a process (actually something missing from other monitoring software as well). Monitoring is great, but it can’t tell you something is wrong if it doesn’t know it’s supposed to check something.
Something that might be interesting, would be to add a set of wrappers around the BizUnit tasks and turn them into monitors. This would give me more support for BizTalk, add missing support for email, and add support for staring a process for automated tests. I need to look into Polymon more to make sure that there is functionality for manually invoking a monitor, as well as monitoring different things at different intervals. If it doesn’t well, it’s open source, so I can always add it.
My only concerns are comments people have made about database performance and size. There is an item in the roadmap to help address the size issue, and some work around for performance. I guess I just need to get it installed and see how it runs. Again, it’s open source, so changes can be made, ideally, back to the project itself to help foster it’s growth.