At work, we use Nagios XI for monitoring our Windows and Linux servers, and various network devices. Works a treat, as expected, but we are moving to Microsoft’s System Center [that hurts to type if you aren’t American] Operations Manager, SCOM to its friends.
Very different beast and it would not be fair to compare the two products. One gripe – nagios provides a great deal of configurability for scheduling monitoring tasks; SCOM provides very little. Basically, you can set how often you want it run – no time specification, no days, months, whatever. I know some people have made such things which I am yet to investigate, but why not provide something as simple as the normal OS task scheduler functionality? Anyway, this is not about comparing. This is about SCOM using a Nagios plugin.
One of the great things about Nagios on the Linux front is the wide array of plugins that are available and how easy it is to write your own. One cannot say the same thing about SCOM. On our main Linux server we have a number of things we monitor, one of which I have written about earlier. I was not looking forward to trying to figure out how to do the same thing in SCOM. Fortunately, you don’t have to. If you have a nagios plugin that works for you it is a VERY simple exercise to configure SCOM to use the same plugin with no changes necessary to the plugin. You just need to know how to use SCOM, rather than think in the nagios mindset – different toolsets, different frameworks.
One plugin we use checks the age of the most recent file in a specified directory and raises a warning or critical alert (notification in SCOM speak) if it is more than a set amount of time old. The plugin is check_newest_file_age. The original version had a slight bug which is easily fixed (see my comment here) and it works perfectly once you set IFS. Add this line to the plugin:
So how do I use the same plugin? Well, it’s simple. SCOM lets you execute Unix commands. This page provides very good instructions for using Nagios plugins with SCOM. The only thing I did differently was to NOT change the plugin – it’s unnecessary. Rather than configuring the SCOM monitor error, warning and health states to equal CRITICAL, WARNING or OK, make it use a regular expression: ^CRITICAL*, ^WARNING*, ^OK*.
All done. Big thanks to the two guys who wrote the material I used.