Having recently gone through the process of evaluating the most prominent free and paid monitoring solutions, I can tell you that it is a significant challenge to review and select a monitoring tool from this field, which can be sometimes confusing and occasionally overlapping.

A tool-kit is probably the best way to describe most of the options because, out of the box, for the most part, there is a lot of work to do before you can see any results. This process of downloading, standing up, configuring, and testing will consume a substantial number of man-hours. You can read reviews and blogs all day, but until you've put your hands on these beasts yourself, you can't really appreciate the challenges that each of them presents.

The camps for each monitoring platform have staunch supporters who rally behind their chosen solution with an almost religious fervor. And that is the real reason you need to do your own evaluations.

That said, I chose Nagios Core. Yes, it is complex and challenging, and the config files are difficult to understand at first. But, if you invest the time to understand the host/service configuration files and if you adopt the available best practices surrounding the use of cfg_dir and the use of a sane directory structure and file naming, you can very quickly scale this monitoring solution up to track hundreds, if not thousands, of hosts and services.

For me, phase two of the process will be extending Nagios Core's functionality by leveraging a wide range of third-party tools to enhance the base feature set, most likely beginning with one or more data visualization tools.

Also, one thing I didn't mention earlier is that many of these tools, including Nagios Core, run on Linux. So having some skill in that realm is certainly beneficial not only for evaluating the options but, more importantly, for bringing one of them into a production environment.

I'd love to hear any feedback you may have on your experiences selecting and implementing one of these systems. I'm also curious to hear how you've approached isolating the monitoring environment from your production environment or integrating it into it.