2.0 Nagios CVS - Service Dependencies Patch - bug fixes and new features

Mueller, Karl KMueller at netsuite.com
Tue Apr 20 19:16:56 CEST 2004


Ethan,

Sounds good!

One thing I thought about since I submitted the patch.  I'm not sure it will work with service_group definitions in the dependency like I said it would.  (We use hostgroups here instead to assign services)  If you or the list members here are interested, I can write additional functionality to handle them also.  I don't think it would be a lot more work.

-Karl


-----Original Message-----
From: nagios-devel-admin at lists.sourceforge.net
[mailto:nagios-devel-admin at lists.sourceforge.net]On Behalf Of Ethan
Galstad
Sent: Monday, April 19, 2004 9:34 PM
To: nagios-devel at lists.sourceforge.net
Subject: Re: [Nagios-devel] 2.0 Nagios CVS - Service Dependencies Patch
- bug fixes and new features


Hi Karl -

I'm a bit behind on applying some of the patches recently submitted 
to the list, but hope to have this incorporated into CVS by the end 
of the week.


On 19 Apr 2004 at 18:28, Mueller, Karl wrote:

> Hello All,
> 
> I wrote a few weeks ago the list asking some questions about service
> dependencies, because the way they are currently defined, I find them
> very hard to use for our typical needs.  A typical example is an
> Oracle SQL check which does something (perhaps checks redo log
> status).  It should not run the check if Oracle is down, right? 
> Service dependencies to the rescue!  Unfortunately, if you have a
> large group of host - we have 50 in this group, for example - you
> can't tell Nagios that every Oracle Redo Log check depends on its OWN
> Oracle check without defining 50 service dependencies.  That is a
> pain, and we probably have 6 or 7 dependencies on each host on its own
> services, if not more.
> 
> Instead of writing some kind of configuration script to do this for
> me, I decided to just write a patch to do it.  There are two main
> features to the patch:
> 
> 1) If a "host_name" entry in a servicedependency definition is "SELF"
> (any capitalization), then every host in the host_name, host_group, or
> service_group line will receive a dependency instance against ITSELF
> ONLY with the appropriate service name.  An example configs:
> 
> ####
> #### Depend on 'Oracle' service on our own service
> ####
> 
> 
> define servicedependency {
> 
>         use                             defaults
> 
>         dependent_service_description   Oracle Failed Logins
>         dependent_hostgroup_name        s_prod_oracle
> 
>         service_description             Oracle
>         host_name                       SELF
> 
> }
> 
> This creates dependencies for every host in "s_prod_oracle" on ITSELF
> for the "Oracle Failed Logins" service on the "Oracle" service.  It's
> exactly the same as if you took every host in "s_prod_oracle" and
> defined a servicedependency object with its own host_name in it.  ('N'
> objects)
> 
> 2) Something similar, but slightly different:  if you set a new config
> variable "peer_groups", indicating that the two groups you're going to
> specify are "peers" to each other, Nagios will create one to one
> dependencies instead of many to many dependencies.  Example:
> 
> 
> define servicedependency {
> 
>         use                             defaults
> 
>         dependent_service_description   Oracle Failed Logins
>         dependent_hostgroup_name        s_prod_oracle
> 
>         service_description             Oracle
>         host_name                       s_prod_oracle
> 
>    peer_groups				1
> 
> }
> 
> Is functionally equivilant to the first example.  If you have:
> 
> dependent_host_name	A, B, C, D
> host_name			M, N, O, P
> 
> Nagios would *normally* create dependencies: "A:M, A:N, A:O, A:P, B:M,
> B:N...", etc.
> 
> With "peer_groups" enabled, Nagios will now create: "A:M, B:N, C:O,
> D:P" ONLY.  
> 
> Of course, with this option set, the number of hosts that are
> eventually resolved from expansion of hostgroup(s)/servicegroup(s)
> MUST BE EQUAL.  
> 
> How is this useful?  Besides creating "self" dependencies as above
> (which are better handled through 'self'), you can reverse the group
> names or hosts, etc., to do some interesting things.
> 
> 3) Fixes a bug where inherits_parent was not initialized in
> xodtemplate_duplicate_servicedependency() in xodtemplate.c
> 
> 
> 4) Fixes a bug where value of inherits_parent() was not verified to be
> 0 or 1  (hiding bug #3 while I was verifying this patch :(  )
> (objects.c)
> 
> The patch is located at, and is made against the 2.0 CVS tree as of
> today:
> 
> http://www.xney.com/nagios/nagios-2.0-servicedep.patch
> 
> 
> I have tested this patch in positive and negative cases, but I'd love
> to hear if people could use it and have verified it works (or doesn't
> break anything).
> 
> -Karl
> 
> 
> 
> 
> 
> 
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: IBM Linux Tutorials
> Free Linux tutorial presented by Daniel Robbins, President and CEO of
> GenToo technologies. Learn everything from fundamentals to system
> administration.http://ads.osdn.com/?ad_id 70&alloc_id638&opÀick
> _______________________________________________ Nagios-devel mailing
> list Nagios-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nagios-devel



Ethan Galstad,
Nagios Developer
---
Email: nagios at nagios.org
Website: http://www.nagios.org



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=ick
_______________________________________________
Nagios-devel mailing list
Nagios-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-devel


-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click




More information about the Developers mailing list