Circular parent/child dependencies

Peter Westlake peter.westlake at pobox.com
Fri Feb 23 18:13:52 CET 2007


I am trying to write a configuration for a network with a lot of
redundant connections. It doesn't work at the moment, because nagios
complains about the circular parent/child dependencies. If the cycles
were around the edge of the network, I could fake it with dummy hosts.
For instance:

A   B
|   |
C<->D
|   |
E   F

Here A and B are connected to the rest of the network, C has parent A,
D has parent B, E parent C, F parent D.

E is normally reachable via C and A, and F is via D and B.
If A breaks down, E gets connectivity via C, D, and B.
If B breaks down, F gets connectivity via D, C, and A.

Nagios won't let me make C the parent of D and vice versa.
I can work round this by inventing C-via-D and D-via-C,
so E has parents C and C-via-D, C-via-D has parent D.
Likewise for D-via-C.

However! This doesn't work when the host is a switch in the core of
the network, or when there are multiple redundancies. So I need to
change Nagios itself. Here's what I think needs to be done.

1. Remove the cycle detection for parents in the pre-flight checks.

2. In check_host, remember which hosts have been visited when going
   through parents and children.

3. Likewise, avoid looping in the CGIs.

4. Allow for upward links in the tree-style status maps.

5. Some extra work might be needed in cgi/outages.c over and above
   allowing for loops, but I doubt it would be much.

Have I missed anywhere? Are there any obvious flaws in this plan?

Peter.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV




More information about the Developers mailing list