Monitoring 64-bit and 32-bit servers - plugin path problem

Tom Throckmorton throck at gmail.com
Thu Sep 25 04:29:44 CEST 2008


On Sep 23 08:18, Kenneth Holter wrote:
> Hello all.
> 
> 
> I've set up Nagios to monitor a few 64-bit machines, and this seems to be
> working correctly. For example, my command for checking a remote disk is
> defined like this:
> 
> 
> define command{
>         command_name    check_remote_disk
>         command_line    /somepath/check_by_ssh <args> -C
> "/usr/lib64/nagios/plugins/check_disk <remote args>"
> }
> 
> This command executes /usr/*lib64*/nagios/plugins/check_disk on the remote
> system. On 32-bit systems, on the other hand, the path to the plugin is
> /usr/*lib*/nagios/plugins/check_disk. It thus looks like I have to
> differentiate between 32-bit and 64-bit commands, and in effect devide the
> configuration itself in a 32-bit section and 64-bit section.
> 
> I'm sure there is a neat way of solving this, and could use some advice. I
> guess I could symlink all over the place to get things going, but there are
> probably a better way of doing this.

Kenneth,

Here are two more ideas for you:

1) You could add some test logic into your command def, like so:

$USER1$/check_by_ssh <args> -C "if [ -e /usr/lib64/nagios/plugins/ ] ; then /usr/lib64/nagios/plugins/check_disk <remote args> ; else /usr/lib/nagios/plugins/check_disk <remote args> ; fi"

Rather ugly, but I think that would do what you want.

2) configure the remote ssh client to know it's local path to the plugins; you
could do this either in the public key, by using something like
'environment="NAGIOSPATH=/usr/lib64/plugins' after your command and host
restrictions (you _are_ using command and host restrictions in your public
keys, right? ;-), or in ~/.ssh/environment on the remote host.  Note that to
use either of those, you'd need to set PermitUserEnvironment=yes in your
sshd_config - see sshd(8) and sshd_config(5).  Once that's set, you should be
able to run:

$USER1$/check_by_ssh <args> -C "\$NAGIOSPATH\/check_disk <remote_args>"

...which would also get you there, I think.

Couple of disclaimers...
- allowing user environments to be set via sshd can be a security risk
- I've only tried this from the command line; you'll likely need to do some
  interesting escaping to get it to work correctly.

Also,

Gavin Carr wrote:
> We've found it easier to just leave the plugin invocations unqualified and
> add the relevant nagios plugins directory to the $PATH for the remote nagios
> user.  Works nicely here.

+1 on that one, too - simple is good.

Cheers,

-tt

-- 
Tom Throckmorton

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. 
::: Messages without supporting info will risk being sent to /dev/null





More information about the Users mailing list