Jabber notification

Ian Davidson idavidso at juniper.net
Fri Jul 18 19:33:27 CEST 2003


I THINK I'm making progress with this. I've devised a slightly different
perl script which when run manually produces the correct jabber output.

	# ./test3.pl idavidso at jabber.company.net  "Test Message"
	We are connected to the server...
	We are disconnected from the server...
	[root at fangio ~/jabber-test]#

At this point a chat window appears with the message "Test Message" in.

However I can't work out what command_line is miscommands.cfg to put to
get an alert generated properly. I've setup a contact with a pager email
address (idavidso at jabber.company.net) which I'm hoping would appear as
$ARG[0].

I've tried...

	command_line    /usr/local/nagios/test3.pl $CONTACTPAGER$
"Service: $SERVICEDESC$, 	Host: $HOSTNAME$, State: $SERVICESTATE$,
Date: $DATETIME$"

...and also tried putting some stuff in manually...

	command_line    /usr/bin/printf "%b" "Nagios report" |
/usr/local/nagios/test3.pl 	idavidso at jabber.company.net "Test
Message"

...but absolutely nothing happens.

Here's the script...


#!/usr/bin/perl
#use strict;
use Net::Jabber qw(Client);
use Net::Jabber qw(Message) ;
use Net::Jabber qw(Protocol) ;
use Net::Jabber qw(Presence) ;

#These are the variables called later in the script
use constant RECIPIENT => $ARGV[0];
use constant SERVER    => 'jabber.company.net';
use constant PORT      => 5223;
use constant USER      => 'my-username';
use constant PASSWORD  => 'my-passwd';
use constant RESOURCE  => 'my-nickname';
use constant MESSAGE   => $ARGV[1];
use constant MAXWAIT   => 2 ;


my $len = scalar @ARGV;

#if there are no arguements given in the command, display the format
if ($len ne 2) {
   die "Usage...\n notify [jabberid] [message]\n";
}

my @field=split(/,/,$ARGV[0]);

$Con = new Net::Jabber::Client();

$Con->Connect(hostname=>"jabber.juniper.net",port=>5223,ssl=>1);

if ($Con->Connected()) {
print "We are connected to the server...\n";
}

# Verify authentication has occured correctly
my @result = $Con->AuthSend( "username" => USER,"password" =>
PASSWORD,"resource" => RESOURCE );
if ($result[0] ne "ok") {
 die "Ident/Auth with server failed: $result[0] - $result[1]\n";
}

#Send message
$Con->MessageSend(to=> RECIPIENT,
                  subject=>"Notification",
                  body=>MESSAGE,
                  type=>'chat',
                  thread=>"ABC123"
                  );



#my $message = Net::Jabber::Message->new();
#$message->SetMessage( "to"           => "icatlin at jabber.juniper.net",
#                      "subject"      => "Notification",
#                      "type"         => "chat",
#                      "body"         => MESSAGE);
#
#   $Con->Send($message);

sleep(MAXWAIT);

$Con->Disconnect();
print "We are disconnected from the server...\n";
exit;

> -----Original Message-----
> From: Skip Montanaro [mailto:skip at pobox.com] 
> Sent: 15 July 2003 17:04
> To: Ian Davidson
> Cc: Fred Jordan; nagios-users at lists.sourceforge.net
> Subject: RE: [Nagios-users] Jabber notification
> 
> 
> 
>     Ian> But when I execute this script...
>     Ian> [root at fangio ~/jabber-test]# perl test1.pl 
>     Ian> You requested that XML::Stream turn the socket into 
> an SSL socket, but
>     Ian> you don't have the correct version of 
> IO::Socket::SSL v0.81. at
>     Ian> /usr/lib/perl5/site_perl/5.6.1/Net/Jabber/Client.pm line 196
> 
> Sounds like you need to use CPAN to update the version of the 
> IO::Socket::SSL package installed on your system.
> 
>     Ian> [root at fangio ~/jabber-test]# rpm -qa | grep ssl
>     Ian> openssl-0.9.6b-18
>     Ian> docbook-style-dsssl-1.76-1
>     Ian> mod_ssl-2.8.7-4
>     Ian> openssl-devel-0.9.6b-18
> 
> None of these relate directly to the Perl IO::Socket::SSL 
> module. IO:Socket::SSL is layered upon the libraries and 
> header files in the
> openssl* rpms.
> 
> To update/install that package, you can do one of two things.  
> 
> 1. Run CPAN:
> 
>       perl -MCPAN -e shell
> 
>    At the CPAN prompt, issue this command: 
> 
>       install IO::Socket::SSL
> 
>    If you've never run CPAN before it will gather some 
> initial information
>    about how you like doing things and what CPAN mirrors you 
> want to use
>    before you get to the CPAN's shell prompt ("cpan> ").
> 
>    CPAN usually works well, though it can be tricky at times. 
>  For instance,
>    while writing this I tried the above install command.  
> IO::Socket::SSL
>    depends on Net::SSLeay, which it dutifully tried to install.  That
>    generated this warning:
> 
>       *** /usr/bin/openssl appears to be compiled with gcc 
> ... while perl is
>           compiled with cc. Both must be compiled with the 
> same compiler and
>           flags. Mixing and matching compilers is not supported. at
>           Makefile.PL line 137.
> 
>    However, gcc and cc are the same thing on that computer:
> 
>       # cc -v
>       Reading specs from 
> /usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/specs
>       gcc version 2.96 20000731 (Mandrake Linux 8.1 2.96-0.63.1mdk)
>       # gcc -v
>       Reading specs from 
> /usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/specs
>       gcc version 2.96 20000731 (Mandrake Linux 8.1 2.96-0.63.1mdk)
> 
>    Such is life.
> 
> 2. Assuming there is an RPM on your distribution CD which contains the
>    relevant Perl module, you can track it down and install 
> it.  My Mandrake
>    8.1 system doesn't have it, but then I don't do anything with SSL
>    either. ;-)
> 
> -- 
> Skip Montanaro
> Got gigs? http://www.musi-cal.com/
> Got spam? http://spambayes.sf.net/
> 


-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
_______________________________________________
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