SOLVED: RE: Plugin error: Remote cisco command via SSH notworking

Javier Castillo Alcibar Javier.Castillo at a-e.es
Thu Nov 16 17:13:46 CET 2006


Hello,

I think I solved the problem. Notice this command in my perl script: 
"$ENV{'HOME'} = '/var/lib/nagios';"
 
Nagios process was executing the plugin with HOME env varible set to "/root" ¿?¿?.  This made ssh fails when trying to read $HOME/.ssh/config files.... (root folder is not readable by other users)

Finally, my contribution to nagios world: check_cisco_ping_ssh (ping from cisco routers, using ssh):

#!/usr/bin/perl
# Net::SSH de http://www.stupidfool.org/perl/net-ssh/
#
# Use: usr/local/sbin/check_cisco_ping_ssh <host> <port> <user> <pass> <ip> <warn> <crit>
#
use strict;

use Net::SSH::Perl;

$ENV{'HOME'} = '/var/lib/nagios';
 
my $router=$ARGV[0];
my $port=$ARGV[1];

my $user=$ARGV[2]; 
my $pass=$ARGV[3]; 

my $ip=$ARGV[4]; 

my $warn=$ARGV[5]; 
my $crit=$ARGV[6]; 



my $sesion_ssh = Net::SSH::Perl->new($router, protocol=>1, cipher=>'DES', port=>$port, debug=> 'false'); 
$sesion_ssh->login($user, $pass);

my $comand="ping $ip";

my($output, $output_error, $value_exit) = $sesion_ssh->cmd($command);

$output =~ /Success rate is (\d*) (.*)/;

my $rate=$1;

if ( $rate <= $crit ) {
        print "PROBLEM: Rate=$rate%\n";
        exit 2;
}

if ( $rate <= $warn ) {
        print "WARNING: Rate=$rate%\n";
        exit 1;
}

if ( $rate <= 100 ) {
        print "OK: Rate=$rate%\n"; 
        exit 0;
}

exit 3;

 

Enjoy it.
Regards
 	
Javier Castillo Alcíbar (2404)
Alhambra Eidos.
+34 91 787 23 00 javier.castillo at a-e.es
 	
 
 
 
 
 

-----Mensaje original-----
De: Andreas Ericsson [mailto:ae at op5.se] 
Enviado el: jueves, 16 de noviembre de 2006 16:59
Para: Javier Castillo Alcibar
CC: nagios-users at lists.sourceforge.net
Asunto: Re: [Nagios-users] Plugin error: Remote cisco command via SSH notworking

Javier Castillo Alcibar wrote:
> 
> Hello all,
>  
> I have some cisco routers that can only be managed using SSH. I wrote 
> an script, to do remotely some PING's from these routers, integrated 
> in nagios.
> 
> My problem is very strange:
> 	- if a execute this script from the command line by myself, it works 
> as expected.
> 	- if nagios process executes the script, it does not work. It looks 
> like ssh process didn't return anything....
> 
> I think it's a problem related with ttys.....but I'm not sure.
> 
> This is my (perl) script:
> 
> #!/usr/bin/perl
> #
> # Uso: usr/local/sbin/check_cisco_ping_ssh <host> <port> <user> <pass> 
> <ip> <warn-rate> <crit-rate> # use Net::SSH::Perl;
> 
> $router=$ARGV[0];
> $port=$ARGV[1];
> $user=$ARGV[2];
> $pass=$ARGV[3];
> $ip=$ARGV[4];
> $warn=$ARGV[5];
> $crit=$ARGV[6];
> 
> my $sesion_ssh = Net::SSH::Perl->new($router, protocol=>1, 
> cipher=>'DES', port=>$port); $sesion_ssh->login($user, $pass);
> 
> $command="ping $ip";
> 
> my($output, $output_error, $val_exit) = $sesion_ssh->cmd($command);
> 
> $output =~ /Success rate is (\d*) (.*)/; $rate=$1;
> 
> if ( $rate <= $crit ) {
>         print "PROBLEM: PING Rate=$rate%\n";
>         exit 2;
> }
> if ( $rate <= $warn ) {
>         print "WARNING: PING Rate=$rate%\n";
>         exit 1;
> }
> if ( $rate <= 100 ) {
>         print "OK: PING Rate=$rate%\n"; 
>         exit 0;
> }
> exit 3;
> 
> 
> Any help is welcome!!.
> 

Have you compiled nagios with embedded perl support? If so, use /usr/bin/perl /path/to/your/script.pl

instead of just

/path/to/your/script.pl

in the command definition.

Other than that, make sure that the nagios-user has access to execute the script and try it from the command-line *as the nagios user*. If that works, you've made some mistake in your configuration.

-- 
Andreas Ericsson                   andreas.ericsson at op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
 
--------------------------------------------------------
Alhambra-Eidos ha cambiado su dominio de correo electrónico. Por favor revise sus contactos, y proceda a actualizar nuestras direcciones a @a-e.es. 


 
Muchas gracias.
Alhambra-Eidos. We solve IT, we solve it
--------------------------------------------------------

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
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