Monitoring multi-homed host / host with multiple IPs?


What are you guys doing for monitoring hosts with multiple IPs/multi-homed hosts?

My situation is as follows: Of concern to Nagios, my network has 3 subnets (as 3 VLANs). One is for content, one is for management (iLO or another ethernet interface on some machines) and the last is for backups (dedicated Gig-E for backups only). Most of the “important” boxes have 3 interfaces, one on each of the networks. The Nagios box also sits on all 3 networks.

Here’s the rub - Nagios doesn’t really “understand” the host addresses, all of the logic is built into the check scripts. I don’t want to dump all of the check scripts, or prevent compatibility with others, so doing something like a comma-separated list for hostaddress is out of the question.

My only real idea so far is to add a host macro that’s a comma-separated list of IPs and then write a wrapper for check_ping that checks all of the listed IPs and only returns down if all of them are down. The down side to this is I’d need to also change all of my check commands to get rid of $HOSTADDRESS$ and create a service instance for each service on each network where services are duplicated (i.e. check DHCP 3 times, one for each network).

Has anyone thought of an easier way? At the moment I’m maintaining my configs by hand… has anyone found a code generator that will handle this?