Nagios: mudar notificaciones XMPP de GoogleTalk a Openfire

 Hoy me dediqué a reconfigurar las notificaciones IM de Nagios de GoogleTalk a Openfire (un servidor XMPP). Para la instalación de Openfire, para la configuración de las notificaciones a través del plugin notify_via_jabber.pl

Una vez tengamos el servidor Openfire instalado creamos por lo menos dos usuario; uno recibirá las notificaciones de Nagios, el segundo las enviará.

Suponiendo que el servidor Openfire esté instalado en un servidor con dominio: openfire.org, el plugin notify_via_jabber.pl va modificado de la siguiente manera (CentOS 64bit)

nano /usr/lib64/nagios/plugins/notify_via_jabber.pl

Modificamos las siguientes líneas para que queden:

## Configuration
my $username = "voztovoice";
my $password = "sesamo";
my $resource = "nagios";
## End of configuration

  • voztovoice: usuario creado en openfire que enviará las notificaciones desde Nagios
  • sesamo: contraseña del usuario
  • nagios: un nombre que queremos asociar a este recurso

my $hostname = 'openfire.org';
my $port = 5222;
my $componentname = 'openfire.org';
my $connectiontype = 'tcpip';
my $tls = 1;

  • openfire.org: nombre de dominio donde se encuentra instalado Openfire
  • 5222: puerto estándar para la conexión al servidor Openfire
  • openfire.org: nombre que se asigna a este componente
  • tcpip: protocolo de conexión al servidor Openfire
  • 1: se utilizarán conexiones seguras.

Se guardan los datos y con el segundo usuario conectado desde otro cliente XMPP se realiza una prueba (admin es el usuario al que se quiere enviar el mensaje):

/usr/lib64/nagios/plugins/notify_via_jabber.pl admin "hola, como estás"

La primera vez me salió este error:

Can't use an undefined value as a HASH reference at /usr/share/perl5/XML/Stream.pm line 1165

Se soluciona abriendo este archivo:

nano /usr/share/perl5/XML/Stream.pm

y comentando esta línea:

delete($self->{SIDS}->{$currsid});

de modo que quede:

#delete($self->{SIDS}->{$currsid});

Volviendo a realizar una segunda prueba:

/usr/lib64/nagios/plugins/notify_via_jabber.pl admin "hola, como estás"

Esta vez me salió este error:

ERROR: Authorization failed: error - not-authorized

Se soluciona modificando este archivo:

nano /usr/share/perl5/Net/XMPP/Protocol.pm

y comentando este bloque:

if($self->{STREAM}->GetStreamFeature($self->GetStreamID(),"xmpp-sasl"))
{
      return $self->AuthSASL(%args);
}

para que quede:

#    if($self->{STREAM}->GetStreamFeature($self->GetStreamID(),"xmpp-sasl"))
#    {
#        return $self->AuthSASL(%args);
#    }

Se guardan los cambios y se realiza una nueva prueba:

/usr/lib64/nagios/plugins/notify_via_jabber.pl admin "hola, como estás"

Si no aparece ningún error, debería estar funcionando. De hecho en el cliente:

Captura1

Ahora nada más modificar la configuración de Nagios.

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo

1 comentario

Suscribirse a Comentarios de "Nagios: mudar notificaciones XMPP de GoogleTalk a Openfire" Suscribirse a VozToVoice - Todos los comentarios