I figured I should be more specific.
Consider this network layout. It is overly simplified to make things easier, but it’s not so far off from reality. Consider Router’s A, B , C and D, all interconnected redundantly. Nagios reaches the rest of the devices through router A, and Host Q is considered to be behind Router D.
Now, since this is a network, we imagine that there are several potential paths between Nagios and Host Q. The most direct path being:
[blockquote]Nagios -> A -> D -> Host Q.[/blockquote]
In that case, D’s parent would be A.
However, if the link from A to D drops, then we would use one of the following two routes to get from Nagios to Host Q:
[blockquote]Nagios -> A -> B -> C -> D -> Host Q[/blockquote]
[blockquote]Nagios -> A -> C -> B -> D -> Host Q[/blockquote]
In the first case, B would be the parent of C. But in the second case, C would be the parent of B. Both are valid routes.
The question, then, is, What happens if B and C suddenly blow up? Nagios might start by checking B, determining that it is down, then checking it’s parent C, to determine if it is down as well. But when it checks C, will it notice that B is its parent, and not bother to page down, since it considers itself unreachable?
Overall, this is a question of how I should best set up child/parent relationships for redundant networks. For complex network, with mutiple paths from one point to another, it almost seems that I would need to specify each path that traffic might take to get from nagios to every device, assuming any link might break.
So, then, I wonder if nagios will handle the parent definitions gracefully if B is the parent of C, while C is the parent of B. Will it send out any notifications? Perhaps it keeps a stack of some sort going so it does not get trapped in infinite recursion? Something I can test, I imagine. Just wondering how other people set up their parent relationships, and whether they ever have a case where the parent of one device is also listed as that device’s child.