Dependencies in redundant networks and services: a idea for Nagios 4

Jochen Bern Jochen.Bern at LINworks.de
Mon May 23 01:45:03 CEST 2011


Matthew Pounsett wrote:
> Imagine a web service (call it W) which depends on two separate
> databases (call them database A and database B), where both
> databases have redundant backups and the web service can contact
> either the primary or backup for each database and still do its
> job (A1, A2, B1, B2).  Doing this without a more flexible
> dependency system requires either some very complicated
> combinatorial setup where we have W1 dependent on A1,B1, W2
> dependent on A1,B2, W3 on A2,B1, etc.  or one very complicated
> custom check script which implements the dependencies itself.

Just to put the practical workarounds of today onto the table:

1. The "traditional" method, as I call it, is to introduce additional
services representing the overall state of "Database A" and "Database B"
and to make "Web Service" depend on them. The check for these additional
services can process the current states of the A1 and A2, resp. B1 and
B2, services already known to Nagios (and available via on-demand
macros). The check_cluster* family of plugins and the more recent
check_multi can do the actual computation.

Pro: You IMHO want a bird's view onto the databases for the webmaster's
perusal, anyway.

Con: Higher latency until the actual A1..B2 checks' results can act on
notifications for "Web Service". The usual problems in hiding services
from someone who shouldn't see that much detail, but still is a
legitimate contact for the host (checks).

2. check_multi AFAIK also allows to do the entire computation in one
fell swoop, obviating the additional services.

Con: One copy of the redundancy logic to be maintained in every
"ultimate dependent" service's config.

Kind regards,
								J. Bern

------------------------------------------------------------------------------
What Every C/C++ and Fortran developer Should Know!
Read this article and learn how Intel has extended the reach of its 
next-generation tools to help Windows* and Linux* C/C++ and Fortran 
developers boost performance applications - including clusters. 
http://p.sf.net/sfu/intel-dev2devmay




More information about the Developers mailing list