Apologies on the late response here, I could have sworn I had notifications on...
jdalrymple wrote:You'd think that one of your other services might have an issue with the missing L drive?

Haha yeah, for the most part you're right, but we've had a couple failures recently that don't really have a service directly dependent on them. The thought crossed my mind that I could also implement other types of checks, but it's all to easy to fall into some pretty hairy options along that line of thought when it comes to scalability and upkeep.
jdalrymple wrote:I think you're going to be reduced to bolting on the additional service check, one for which I see plausible candidates if you were talking Linux on the Exchange, but not Windows. I would expect a simple script to be pretty easy to powershell up.
I had a similar thought, but I grapple with what the actual method would be. I envisioned being able to have a script that enumerates what volumes and partitions are available, but falter in figuring out how to make it gracefully (if not automatically) handle newly added drives while also alerting if such a drive were to disappear.
Box293 wrote:What you could do is:
Create separate hostgroups for hosts with each drive letter.
Create individual service checks for each drive and assign them to the relevant hostgroup.
Create a "All Disks OK" service that uses a custom perl/python/php plugin that:
a) executes check_nrpe request to the windows server which executes a local script that reports all the fixed drive letters
b) plugin takes that nrpe result and then queries nagios using json query
c) json query gets all the services for the host
d) compares the nrpe result of known fixed drives against existing drive services for that host
e) if there is a mismatch then return a critical state
There's a bit of work there but it's quite possible to make it happen.
I've put some thought into those lines, but then I have concerns over the manual nature of it when it comes to keeping it current as new drives are added. Though, in reading your method and thinking about it more fully, it would seem that such a method would return a critical state not only if a drive is missing that shouldn't be but also if a drive exists that didn't before. It's a tiny bit clunky, but I really like that it would still handle both failure cases as such and thus removes the concern of "missing" a drive.
I am woefully unfamiliar with how to create custom plugins for Nagios and with the overall idea of json queries. Is there a good source of documentation online that I can use to bring myself up to speed on such?