<br><tt><font size=2>nagios-users-bounces@lists.sourceforge.net wrote on
02/13/2008 11:29:06 AM:<br>
<br>
> <br>
> <br>
> > -----Original Message-----<br>
> > From: nagios-users-bounces@lists.sourceforge.net [</font></tt><a href="mailto:nagios-users-"><tt><font size=2>mailto:nagios-users-</font></tt></a><tt><font size=2><br>
> > bounces@lists.sourceforge.net] On Behalf Of mark.potter@academy.com<br>
> > Sent: Wednesday, February 13, 2008 10:48 AM<br>
> > To: nagios-users@lists.sourceforge.net<br>
> > Subject: [Nagios-users] How to explain active host checks to
boss<br>
> > <br>
> > <br>
> > Background: Due to management requirements we are using NagiosQL
as a<br>
> > configuration manager for our Nagios install. NagiosQL defaults
to<br>
> active<br>
> > checks enabled for hosts so this is how it's been done until
now. We<br>
> have<br>
> > the alerts coming as we want them. We are adding more hosts and<br>
> services<br>
> > weekly. I know that active host checks are not a good thing to
have<br>
> going<br>
> > forward as they are unnecessary. Please advise on the best way
to<br>
> explain<br>
> > this to the boss who is, at this moment, convinced that if we
turn off<br>
> the<br>
> > option in the config file then the host will never be checked
even if<br>
> a<br>
> > service is down. I can't find a good place in the documentation
to<br>
> point<br>
> > this out and would like to get these turned off in the near future
so<br>
> we<br>
> > don't run into issues later on down the road. Any help in pointing
me<br>
> in<br>
> > the right direction would be appreciated. Here is a sample host
cfg<br>
> from<br>
> > our environment:<br>
> <br>
> Assuming you're using 2.x. The main issue with host checks in 2.x
and<br>
> prior is that they are performed serially, not in parallel. While
a host<br>
> check is being run, nagios stops absolutely everything else, other<br>
> host/service checks, notifications, etc until that single host check
is<br>
> complete. To put this in perspective, assume that you have 100 hosts<br>
> checked with 10 pings over a 15 minute check_interval with a<br>
> max_check_attempts of 3. When every host is up, each host check will<br>
> take approximately 10 seconds to complete, during which nagios isn't<br>
> doing anything else except obsessing over that host --<br>
> <br>
> 100 hosts X 10 seconds = 1000 seconds <br>
> <br>
> As you can see, you've already exceeded your normal check interval
of<br>
> 900 seconds. Nagios cannot complete the host checks in the time interval<br>
> you've specified and you haven't even done any service checks yet.
Now,<br>
> nagios will attempt to interleave service checks between host checks
to<br>
> compensate but you've just introduced latency for both check types.<br>
> <br>
> Now imagine that you have a simple outage. 5 hosts are down that aren't<br>
> related via parenting. Your timing now looks like --<br>
> <br>
> (95 hosts X 10 seconds) + (5 hosts X 30 seconds) = 1100 seconds,<br>
> dedicated to host checks only.<br>
> <br>
> Because the host checks aren't related, nagios is able to interleave<br>
> some service checks between so the latency isn't as bad as it could
be.<br>
> Take the calculation above and determine the effects of a large outage.<br>
> Factor in parenting, where nagios will only being checking hosts up
the<br>
> tree without interleaving service checks and you start seeing big<br>
> problems at the time that your monitoring systems is most critical
and<br>
> useful. You could easily end up in a situation where hosts and services<br>
> aren't being checked for loooooooong intervals.<br>
> <br>
> <br>
> Nagios is smart. You don't need to schedule regular host checks because<br>
> nagios knows that if there is a problem with a service, it may be
caused<br>
> by an outage of the host or a parent of the host. Nagios will<br>
> automagically run the host check_command anytime there is a non-OK<br>
> result from a service check, assuming only that active_checks_enabled
is<br>
> on for the host and there is a valid check_command specified. It will<br>
> also follow the parents tree if the host check returns non-OK results<br>
> until nagios finds an OK parent or reaches the top of the tree. Even
so,<br>
> you want to have your host checks finish as quickly as possible; 1
ping<br>
> max_check_attempts 3 times is usually sufficient to determine status.<br>
> <br>
> Nagios-3 introduces parallel host check execution and there are some<br>
> benefits to running host checks there specifically for caching results<br>
> for possible use by the on-demand checks or if you're interested in<br>
> using host performance data for trending for example, but they aren't<br>
> necessary.<br>
> <br>
> Some documentation to help --<br>
> <br>
> </font></tt><a href=http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#host><tt><font size=2>http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#host</font></tt></a><tt><font size=2><br>
> <br>
> "check_interval:    NOTE: Do NOT enable regularly scheduled
checks<br>
> of a host unless you absolutely need to! Host checks are already<br>
> performed on-demand when necessary, so there are few times when<br>
> regularly scheduled checks would be needed. Regularly scheduled host<br>
> checks can negatively impact performance - see the performance tuning<br>
> tips for more information. This directive is used to define the number<br>
> of "time units" between regularly scheduled checks of the
host. Unless<br>
> you've changed the interval_length directive from the default value
of<br>
> 60, this number will mean minutes. More information on this value
can be<br>
> found in the check scheduling documentation."<br>
> <br>
> <br>
> </font></tt><a href=http://nagios.sourceforge.net/docs/2_0/networkreachability.html><tt><font size=2>http://nagios.sourceforge.net/docs/2_0/networkreachability.html</font></tt></a><tt><font size=2><br>
> <br>
> "The main purpose of Nagios is to monitor services that run on
or are<br>
> provided by physical hosts or devices on your network. It should be<br>
> obvious that if a host or device on your network goes down, all services<br>
> that it offers will also go down with it. Similarly, if a host becomes<br>
> unreachable, Nagios will not be able to monitor the services associated<br>
> with that host.<br>
> <br>
> Nagios recognizes this fact and attempts to check for such a scenario<br>
> when there are problems with a service. Whenever a service check results<br>
> in a non-OK status level, Nagios will attempt to check and see if
the<br>
> host that the service is running on is "alive". Typically
this is done<br>
> by pinging the host and seeing if any response is received. If the
host<br>
> check commmand returns a non-OK state, Nagios assumes that there is
a<br>
> problem with the host. In this situation Nagios will "silence"
all<br>
> potential alerts for services running on the host and just notify
the<br>
> appropriate contacts that the host is down or unreachable. If the
host<br>
> check command returns an OK state, Nagios will recognize that the
host<br>
> is alive and will send out an alert for the service that is<br>
> misbehaving."<br>
> <br>
> --<br>
> Marc<br>
> <br>
That is precisely the sort of explanation I needed. I think I have the
convincing done but there seems to be some concern about how this will
show up on tac.cgi and in other places. It will show as disabled if I am
not mistaken. I think management may be concerned about this for reasons
only management understands. Under the Hosts bar in tac.cgi it will show
all 309 hosts as being disabled correct? Since the documentation recommends
disabling active host checks for obvious reasons why is this shown on tac.cgi
under Hosts and again under Active Checks (in red nonetheless). I almost
wish I understood management at this point...<br>
</font></tt>