[Nagiosplug-devel] check_rta (aka check_icmp 0.9)
Andreas Ericsson
ae at op5.se
Mon Jan 24 06:54:23 CET 2005
Hello all.
Sorry for cross-posting, and sorry for posting twice to nagiosplug-devel
(just thought I'd bring it in in a fresh thread).
After an almost complete rewrite of check_icmp, I'm looking for some
testers of the check_rta plugin. check_rta is basically the work-name of
the next check_icmp release, so if you're using check_icmp you might
want to try this one instead. It would be particularly useful for me if
you could get it to work on something other than GNU/Linux systems.
You can find it at http://oss.op5.se/nagios which will be the only point
of distribution until I'm satisfied enough with it to relinquish CVS
control to the official developers, at which point it should take the
place of the now-present check_icmp plugin.
Feedback would be extremely welcome.
Features in general (also found in check_icmp)
----------------------------------------------
It doesn't spawn an external process to read the output of another
program (like check_ping and check_fping does) and should thus be more
portable (at least easier to port), more lenient on CPU cycles and a bit
faster.
New features (not found in check_icmp)
--------------------------------------
Faster DOWN determination. It can properly interpret icmp messages from
other hosts (routers usually) and foresee when a host will be down
definitely. Try strace ./check_rta 193.201.96.145 (which doesn't exist)
to see what I mean.
Faster UP determination. If a host responds promptly to a ping packet
and has no packets on the wire, check_rta will pelt it with packets as
fast as it can. Sending of pings won't be delayed as long as the host
hasn't got any packets en route, but it will wait the packet interval
(-i flag) before sending a new if any previous packet hasn't either come
back or generated an icmp error somewhere along the route.
Sourcequench backoff. Intervals are increased when routers/hosts
advertise they are loosing packets due to high send ratio (currently
hardcoded backoff factor, but I'll fix that later).
check_host mode. ln -s check_rta check_host. check_host will ping all
the resolved IP-addresses for the host (if fed a DNS name, or all given
IP-addresses otherwise) and will return OK on any packet received what
so ever, making it superfast for host checks. This overrides -w and -c.
perfparse output for multiple hosts/addresses.
Bug fixes
---------
RTA precision is now more accurate. No u_sleep() calls are made, which
would obfuscate rta values in check_icmp, causing them to be higher for
a higher packet interval (since the program sometimes was in u_sleep()
when packets came in).
Code is cleaner and compiles without warnings with stricter rules on all
GCC's from 2.95.3 through 3.4.3. It should never try to do anything that
is forbidden on any system (like call select(2) with bad args) and tries
hard to only use portable functions and system calls (no asprintf() or
other gnu extensions here).
Please download a copy and try it out. I need to know if it works
properly on the OS'es supported by nagios plugins before I drop the old
check_icmp in favor of this one and relinquish CVS control of it to the
official plugin developers.
Developers;
The get_timevar() and get_timevaldiff() functions might be useful in
utils.c, although they deal in micro-seconds.
--
Andreas Ericsson andreas.ericsson at op5.se
OP5 AB www.op5.se
Lead Developer
More information about the Devel
mailing list