Trying to develop a new perl plugin

Alexandro Conde Martínez acm at fonetglobal.com
Mon Jan 24 18:38:31 CET 2011


That's easy, just use the Getopt 

----- 
use Getopt::Long; 
use vars qw($opt_h $opt_C $opt_H); 

# Get the options 
Getopt::Long::Configure('bundling'); 
GetOptions 
("h" => \$opt_h, "help" => \$opt_h, # Help Flag 
"H=s" => \$opt_H, "hostname=s" => \$opt_H); # Hostname 

# Validate the options 
if ($opt_h) { 
&print_help(); 
exit $ERRORS{OK}; 
} 

$opt_H = shift unless ($opt_H); 
$host = $1 if ($opt_H && $opt_H =~ m/^([a-zA-Z][-a-zA-Z0-9]+(\.[a-zA-Z][-a-zA-Z0-9]+)*)$/); 
unless ($host) { 
print "No target host specified\n"; 
&print_usage(); 
exit $ERRORS{UNKNOWN}; 
} 
----- 



Eng. Alexandro Conde Martínez ---------> Alcon 
CTO, Fonet Global Inc. 
Phone: +1.972.749.9970 Voip: 523663800 
acm at fonetglobal.com http://www.fonetglobal.com 
Stop Spam: http://www.cauce.org 


----- Original Message ----- 
From: "Nibin VM" <nibin.vm at piserve.com> 
To: "Nagios Users List" <nagios-users at lists.sourceforge.net> 
Sent: Monday, January 24, 2011 9:16:51 AM 
Subject: Re: [Nagios-users] Trying to develop a new perl plugin 

Thanks for your reply folks.. :) 

Finally I have concluded that the portion which reads the argument has issues. 

$host=$ARGV[0]; 

It isn't taken correctly when its executed from nagios. Please somebody tell me what code should I put if I need to specify the host name like ./ test.pl -H "hostname"? 


On Sun, Jan 23, 2011 at 10:44 PM, Boyer, Timothy A. < Timothy.Boyer at opm.gov > wrote: 


Permissions problem? You're running the command line as root; try running the command line as your Nagios username. 
________________________________________ 
From: Nibin VM [ nibin.vm at piserve.com ] 
Sent: Sunday, January 23, 2011 10:46 AM 
To: nagios-users at lists.sourceforge.net 
Subject: [Nagios-users] Trying to develop a new perl plugin 




Hello guys, 

I am trying to write some nagios perl plugin to monitor some services I'm responsible for. Initially I tried to write custom plugin to monitor mail queue using the following script. 

=========== 
#!/usr/bin/perl -w 

use strict; 
use Net::SNMP; 
use Getopt::Long; 

use lib "/usr/lib64/nagios/libexec"; 
my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3); 
my $host = undef; 
my $result = undef; 
my @array = undef; 

$host=$ARGV[0]; 
$result=`/usr/lib64/nagios/plugins/check_snmp -H $host -C "community" -o extOutput.1`; 

@array = split(/\ /, $result); 
chomp($array[3]); 

if ( $array[3] le "19999" ) 
{ 
print "OK: current emails queue is $array[3]\n"; 
exit $ERRORS{"OK"}; 
} 

elsif ( $array[3] ge "20000" && $array[3] le "29999" ) 
{ 
print "Warning: current emails queue is $array[3]\n"; 
exit $ERRORS{"WARNING"}; 
} 

elsif ( $array[3] ge "30000" ) 
{ 
print "Critical: current emails queue is $array[3]\n"; 
exit $ERRORS{"CRITICAL"}; 
} 

else 
{ 
print "Unknown"; 
exit $ERRORS{"UNKNOWN"}; 
} 
================ 

As you can see, I use snmp to pull mail queue from the remote server. When I try the command from command line it work fine. 

]# ./ test.pl < http://test.pl > "server name" 

OK: current emails queue is 264 

But from the nagios from end it shows as critical and it shows "Critical: current emails queue is Unknown" error :( 

Please somebody help me to sort this out. Obviously its the first perl script that I ever wrote and I really interested to write more plugins in perl(I am in love with perl now :) ). 

Thanks in advance! 

-- 
Regards, 
Nibin. 







------------------------------------------------------------------------------ 
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! 
Finally, a world-class log management solution at an even better price-free! 
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d 
_______________________________________________ 
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 



-- 
Regards, 
Nibin. 







------------------------------------------------------------------------------ 
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! 
Finally, a world-class log management solution at an even better price-free! 
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d 
_______________________________________________ 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.monitoring-lists.org/archive/users/attachments/20110124/bcd03759/attachment.html>
-------------- next part --------------
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
-------------- next part --------------
_______________________________________________
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