Is it a fake website?

16 junio 2006

Integración Jabber vs Nagios

1. Script en perl de jabber para integrarlo con nagios.

########################################################
#!/usr/bin/perl
#
# Author David Cox
# Created from various code examples found on the web
# Last Modified 08/06/2002
# Feel free to use or modify as needed to suit your needs
#######################################################
# MAXWAIT is used because the send message function didn't seem to
# like being called to fast. The message would be sent unless I waited a second
# or so. You can experiment with it but I just went with 2 seconds.
#######################################################

use strict;
use Net::Jabber qw(Client) ;
use Net::Jabber qw(Message) ;
use Net::Jabber qw(Protocol) ;
use Net::Jabber qw(Presence) ;

my $len = scalar @ARGV;

if ($len ne 2) {
die "Usage...\n notify [jabberid] [message]\n";
}

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

use constant RECIPIENT => $ARGV[0];
use constant SERVER => 'icaro.cti.es';
use constant PORT => 5222;
use constant USER => 'nagios';
use constant PASSWORD => 'ShJRRUQg';
use constant RESOURCE => 'resource';
use constant MESSAGE => $ARGV[1];
use constant MAXWAIT => 2 ;

my $connection = Net::Jabber::Client->new();
$connection->Connect( "hostname" => SERVER,"port" => PORT ) or die
"Cannot connect ($!)\n";

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

foreach ( @field ) {
my $message = Net::Jabber::Message->new();
$message->SetMessage( "to" => $_,
"subject" => "Notification",
"type" => "chat",
"body" => MESSAGE);

$connection->Send($message);
sleep(MAXWAIT);
}
$connection->Disconnect();
exit;
######################################################

2. Paquetes de perl necesarios para que funcione;

-Authen-SASL-2.10
-Digest-HMAC-1.01
-Net-Jabber-2.0
-Net-XMPP-1.0
-XML-Stream-1.22

3. Modificaciones para integrarlo en nagios.

Modificar el archivo miscommands.cfg para añadir estas lineas:
# 'notify-by-jabber' command definition
define command{
command_name notify-by-jabber
command_line /usr/bin/perl /path/to/jabber/jabber-monitor.pl nagios@jabber_server.com "$HOSTSTATE$ alert for $HOSTNAME$!"
}

y

# 'host-notify-by-jabber' command definition
define command{
command_name host-notify-by-jabber
command_line /usr/bin/perl /path/to/jabber/jabber-monitor.pl nagios@jabber_server.com "$HOSTSTATE$ alert for $HOSTNAME$!"
}

Reiniciamos el servicio nagios.
Añadimos en nuestra cuenta el contacto nagios@jabber_server.com

NOTA: Usuario, host y password son de test, no válidos.

1 comentario:

Anónimo dijo...

HOla, estoy intentando implementar este script en mi server....

En el server tengo una cuenta jabber pedro@jabber.pri.jovenclub.cu y es ha esa cuenta a donde quiero q envie las notificaciones, pero no veo ningun resultado, como puedo comprobar que el script esta funcionando correctamente