Obviously it'd be crazy not to take advantage of Nagios object inheritance, but I'm having a hard time figuring out the sanest way to organize all the stuff we have. In fact, I'm really struggling to even explain what I mean, just with words, so I've drawn a visio diagram of a simplified portion of our infrastructure, in the hope that it is understandable.
The diagram shows kind of how I have it in my head as to the various relationships between hosts and services, but my issue is that I don't really understand how to convert that into the exact way to configure Nagios to match our requirements.
In the example below, I have 2 platforms, with basically the same infrastructure components, so it stands to reason that we should be able to configure things so that "ABC MTA" can be placed into a (host-group/host-template/service-group/service-template the trouble is, I don't know which), which causes the host to inherit all the service checks which are appropriate.
In this example: -
"ABC MTA" should get: -
"XYZ MTA" should get: -Linux OS Services
* Disk Usage /, /var
* Load Average
MTA Services
* SMTP 25
* MTA SNMP checks
Global Admins will see: -Linux OS Services
* Disk Usage /, /var
* Load Average
MTA Services
* SMTP 25
* MTA SNMP checks
XYZ Customer Specific Host/Service Details
* Bespoke check intervals
Customer Contacts will see: -* Everything
Generic services such as "SMTP 25" will be valid for any MTA, so can be shared by any appropriate <this-is-the-bit-that-eludes-me>...* Only their own platform
My goal is to make it so that when we add new platforms, the basic monitoring structure is already in place & we just need to add some customer-specific host-groups(?), contact-groups(?) and hosts into the correct <this-is-the-bit-that-eludes-me>...
I need to be able to document it so that any of my colleagues (or in fact me) adding a new "MTA", have some really simple instructions to follow.
OMG, I almost don't understand what I've written here. Bonus points for reading my mind.