使用 Centreon 通知接收电话

井, 井… 曲线即将到来… 如果您有 Centreon 监控系统, 或基于 Nagios 或类似, 您可能对这篇文章感兴趣. 我们将看到的是如何生成传统的监控警报, 但这次我们不会使用通过电子邮件或 Telegram 发送的警报, 但它将使用我们在组织中的 IP PBX 拨打电话, 有了它,它会通过我们指定的电话号码给我们打电话,并以完美的西班牙语指示存在的问题.

 

所以我说的, si dispones de una centralita de Voz IP y quieres que la monitorización pueda hacer llamadas de teléfono para advertirte con un mensaje de qué Servicio o Servidor se ha caído, no tendrás más que seguir estos sencillos pasos. Si no tienes una centralita VoIP te animo a que montes FreePBX, verás que rápido podrás hacer llamadas voz IP dentro de tu organización, o externas si es que por ejemplo usas la fibra de Movistar, VodafoneEstos son los pasos que debes seguir en tu máquina de Centreon si quieres que ella pueda hacer llamadas automáticamente.

 

Empezamos instalando Festival y PJPROJECT que lo compilaremos:

[源代码]yum install expect festival
WGET HTTP://www.pjsip.org/release/2.8/pjproject-2.8.tar.bz2
tar xjf pjproject-2.8.tar.bz2
cd pjproject-2.8
./设置
make dep
做[/源代码]

 

Nos generará este binario:

[源代码]/root/pjproject-2.8/pjsip-apps/bin/pjsua-x86_64-unknown-linux-gnu[/源代码]

 

Deberemos crear un fichero de configuración para PJSUA, donde indicaremos el acceso a nuestra centralita IP con los credenciales correctos para registrarnos y poder realizar llamadas. En mi caso lo dejo aquí ‘/root/pjproject-2.8/pjsip-apps/bin/pjsua.confy este es su contenido:

[源代码]–null-audio
registrar sip:DIRECCION_IP_CENTRALITA
realm=*
id sip:USUARIO@DIRECCION_IP_CENTRALITA
–用户名 USER
–password 密码 PASSWORD[/源代码]

 

现在, lo que haremos será crear un script que lo usaremos para realizar la llamada, en mi caso un nombre super intuitivo ‘llama.sh’, este script será ejecutado por Centreon cuando tenga que notificar, al que le pasará como argumento el mensaje que tiene que leernos en la llamada. Indicamos los directorios para Expect, PJSUA y su fichero de configuración que acabamos de crear; así mismo podremos añadir un fichero wav con el sonido de alguna alerta que sonará antes del audio, indicaremos el path del binario Text2wave, la duración de la llamada máxima y como no, el número de teléfono que debe marcar para hacer la llamada, por último la dirección IP de la centralita IP. 所以我说的, el contenido de ‘llama.sh

[源代码]#! /bin/bash
EXPECT=/usr/bin/expect
PJSUA=/root/pjproject-2.8/pjsip-apps/bin/pjsua-x86_64-unknown-linux-gnu
PJSUACONFIG=/root/pjproject-2.8/pjsip-apps/bin/pjsua.conf
SOUNDFILE=/tmp/alert.wav
TEXT2WAVE=/usr/bin/text2wave
DURATION=20
NUMBER=NUMERO_DE_TELEFONO_A_MARCAR
CENTRALITA = DIRECCION_IP_DE_LA_CENTRALITA
MESSAGE="Monitoring Alert"

# Setting a lock file
# We can’t make more than one call
# at a time, because pjsua blocks the port
# so we have to make sure that nobody else tries to call
# If there is already a call we have to wait.

locked=false
while $locked == false ; do
如果 ! -f /tmp/caller.lock ; 然后
touch /tmp/caller.lock
locked=true

sleep 5
fi

# Generating the message
$TEXT2WAVE -o $SOUNDFILE -f 8000 << EOF
$MESSAGE
EOF

# Making the call it self.
# Expect will start pjsua and work with
# it so that it will end it self automatically

$EXPECT << EOF
spawn $PJSUAconfig-file $PJSUACONFIGplay-file $SOUNDFILEauto-playduration $DURATIONmax-calls 1 是的:$NUMBER@$CENTRALITA
expect "VAD re-enabled"
sleep $DURATION
send "q\n"
EOF

# Cleaning up
rm $SOUNDFILE

# Removing the lock file
rm /tmp/caller.lock[/源代码]

 

Podremos hacer si queremos una prueba ahora para ver si va todo bien, bastará con ejecutar el script anterior y entrecomillar como argumento el mensaje que queremos que nos diga por teléfono:

[源代码]./llama.sh "Hola, esto es un mensaje de prueba que escucharás en ingles de la muerte"[/源代码]

 

Si queremos que la llamada sea en castellano o español, deberemos además realizar estos últimos pasos. Instalaremos las voces de HISPAVOCES, un proyecto de Guadalinex donde nos dejan 2 voces que hablan perfectamente el castellano, no suenan a robot 🙂 Escogeremos si usar la voz femenina o masculina.

[源代码]yum install hispavoces-pal-diphone hispavoces-sfl-diphone[/源代码]

 

Editamos el fichero de Festival, donde indicaremos que utilice las nuevas voces, editamos ‘/usr/share/festival/lib/voices.scmy sobre la línea 328 podremos modificar directamente y añadir una de estas dos voces

[源代码]…
(defvar default-voice-priority-list
‘(JuntaDeAndalucia_es_pa_diphone
nitech_us_slt_arctic_hts
…[/源代码]

 

Y si os digo la verdad, los siguientes apuntes no los recuerdo por qué los tengo anotadosQuizá no me reconocería las 2 voces… 但是哇, lo que vemos aquí es cómo instalar las voces que nos dan la buena gente de Guadalinex mediante RPM (acordaros que la distro de Centreon se basa en un CentOS), 但当然, lo que nos podemos descargar de ellos es en DEB, así que lo que hacemos es descargar, compilar e instalar Alien (y sus requisitos) para posteriormente descargarnoz la voz en .DEB y convertirla a .RPM e instalarla. Al final movemos los ficheros que nos habrá generado al path correcto de Festival y sus voces en castellano

[源代码]yum install rpm-build
cd /usr/src
WGET HTTP://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.92.tar.gz
tar -xf alien_8.92.tar.gz
cd alien
珍珠 Makefile.PL

make install

wget https://github.com/guadalinex-archive/hispavoces/raw/master/packages/festvox-palpc16k_1.0-1_all.deb
alien -rv festvox-palpc16k_1.0-1_all.deb
rpm -ivh festvox-palpc16k-1.0-2.noarch.rpm

mv /usr/share/festival/voices/spanish/ /usr/share/festival/lib/voices/es/[/源代码]

 

Ahora de nuevo podréis probar a hacer la llamada igual que antes y veréis como ahora sí nos habla un señor o señora perfectamente en español,

[源代码]./llama.sh "Hola, esto es un mensaje de prueba que escucharás perfectamente"[/源代码]


Tras disponer ya de toda la configuración lista y el script funcionando, nos toca decirle a Centreon que cuando genere alguna notificación nos llame por teléfono, 为此, lo primero será dar de alta los Comados de las Notificaciones, así que creamos 2, uno para cuando nos notifique de los Hosts y otro para los Servicios. 因为 “配置” > “命令” > “通知” los definimos, 住:

 

Llamadas_servicios

[源代码]/home/llama.sh "En el equipo $HOSTNAME$ el Servicio $SERVICEDESC$ está en estado $SERVICESTATE$"[/源代码]

 

Llamadas_hosts

[源代码]/home/llama.sh "El equipo $HOSTNAME$ esta en estado $HOSTSTATE$"[/源代码]

 

Y luego ya no queda más que asociarlo, 例如, al usuario o grupo que queramos que reciba la llamada, se los asociamos enHost Notification Commands” 和 “Service Notification Commands”. 照常, tras cualquier cambio de configuración, exportamos y grabamos la config de Centreon y a partir de este momento, cuando exista una alerta en nuestro CPD o en nuestra empresa, recibiremos llamadas telefónicas indicándonos cuál es el problema. No me digáis que no es genial para cuando tenemos personal de guardia y queremos despertarle a la hora que sea para que actúe, ¡una maravilla!

Como siempre espero os haya interesado y gracias por compartir en las redes sociales.

 

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!