Instalar Nagios en Debian 7 – Parte II
En esta parte de la guía nos vamos a centrar en configurar nuestro Nagios para que sea capaz de realizar llamadas VoIP.
Esto surge de la necesidad de poder ser avisado de una forma de la que no tengamos que estar revisando el correo constantemente.
Así que si estáis dispuesto a realizar el sacrificio espero que os lo paguen muy bien en el trabajo, por que si no… lo siento por vosotros.
Importante mencionar que necesitamos una cuenta de algún proveedor VoIP, ya que sin ella se hará imposible :P
Vamos a usar PJSIP/PJSUA así que empezamos instalando subversion y nos copiamos localmente el repositorio de pjproject.
apt-get install subversion svn checkout http://svn.pjsip.org/repos/pjproject/trunk |
Instalamos las dependencias necesarias
apt-get install build-essential automake autoconf libtool libasound2-dev libpulse-dev libssl-dev libsamplerate0-dev libcommoncpp2-dev libccrtp-dev libzrtpcpp-dev libdbus-1-dev libdbus-c++-dev libyaml-dev libpcre3-dev libgsm1-dev libspeex-dev libspeexdsp-dev |
Nos vamos al directorio donde hemos descargado el repo y configuramos, compilamos e instalamos:
cd trunk ./configure && make dep && make clean && make && make install |
Copiamos el ejecutable en /usr/bin/
cp pjsip-apps/bin/pjsua-i686-pc-linux-gnu /usr/bin/pjsua |
Configurar pjsua.
Creamos el archivo de configuración llamado pjsuarc en /etc con la siguiente plantilla (los detalles dependerán del proveedor voip):
nano /etc/pjsuarc |
--null-audio --registrar sip:IPSERVIDOR:PUERTO --realm=* --id sip:<username>@<IPSERVIDOR>:PUERTO --username <username> --password <password> |
Ahora podemos probar a realizar una llamada, y si todo funciona bien podemos seguir.
/usr/bin/pjsua --config-file=/etc/pjsuarc sip:<TELEFONOALQUELLAMAR>@<IPSERVIDOR>:PUERTO |
Volvemos con Nagios, recordando que los archivos de configuración estan en la carpeta:
/usr/local/nagios/etc/objects
Necesitamos editar commands.cfg y contacts.cfg.
nano /usr/local/nagios/etc/objects/commands.cfg |
Y añadir al final
define command{ command_name notify-host-by-sip command_line (sleep 30 && echo q) | /usr/bin/pjsua --config-file=/etc/pjsuarc sip:$CONTACTEMAIL$ } define command{ command_name notify-service-by-sip command_line (sleep 30 && echo q) | /usr/bin/pjsua --config-file=/etc/pjsuarc sip:$CONTACTEMAIL$ } |
Ahora añadimos el contacto
nano /usr/local/nagios/etc/objects/contacts.cfg |
define contact{ contact_name user_sip alias useralias service_notification_period 24x7 host_notification_period 24x7 service_notification_options c host_notification_options d service_notification_commands notify-service-by-sip host_notification_commands notify-host-by-sip email TELEFONOALQUELLAMAR>@<IPSERVIDOR>:PUERTO } |
Y con esto hemos acabado, solo nos quedaría añadir como contacto en nuestros hosts o servicios el usuario «user_sip» y ya podremos recibir los avisos en el teléfono.
Nota: Se puede complicar un poco más, haciendo que al descolgar nos reproduzca una grabación, en mi caso con solo ver la llamada me basta ya que inmediatamente puedo entrar y ver donde esta el problema.