[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