Zabbix, inteligente, flexible y personalizable, puede hacer todo. O casi todo. Sería extraño que no pudiera hacerse amigo de la telefonía en la nube, especialmente cuando este último tiene una API HTTP conveniente: use su salud. Hoy demostraremos cómo configurar Zabbix para llamadas de notificación a través de Voximplant, lo que puede ser muy útil en un caso de emergencia ("no hay tiempo para explicarlo, debe llamar, el servidor de batalla se cayó").
Basado en el cuadro de la película "The Matrix" (The Matrix (1999), Warner Bros.)Nota: el tutorial asume que ya tiene un Zabbix funcionando y una interfaz de Zabbix configurada. La instalación inicial de Zabbix no es el propósito de este artículo, los curiosos / necesitados de dicha guía pueden consultar la documentación oficial y / o google.
Con qué trabajaremos
Nuestro ejemplo utiliza VDS con CentOS 7, en el que está instalado Zabbix 4.2.6 (la última versión estable en el momento de la escritura). Monitorearemos el mismo servidor donde trabaja Zabbix. Voximplant necesita una cuenta en la plataforma y un script de procesamiento de llamadas para JS. Y ahora un poco más.
Que haremos
Sin ciencia de cohetes, hagamos un monitoreo muy simple que responda a la aparición del
archivo / tmp / habrTriggerFile : cuando aparezca dicho archivo, Zabbix se comunicará con Voximplant a través de la API HTTP, un script funcionará y llamará al número de teléfono especificado, diga "Atención". Se creó un archivo en el servidor ". y colgar Si elimina / cambia el nombre del archivo y luego lo devuelve, se volverá a llamar. Si no hace nada, solo habrá una llamada.
Voximplant
Inicie sesión en su cuenta (o
regístrese ) y cree
la aplicación habr . Dentro de la aplicación, vaya a la pestaña Escenarios y cree un script de
notificación con este código:
VoxEngine.addEventListener(AppEvents.Started, () => { const call = VoxEngine.callPSTN(" ", " ") call.addEventListener(CallEvents.PlaybackFinished, () => { VoxEngine.terminate() }) call.addEventListener(CallEvents.Connected, () => { setTimeout( () => call.say(". .", Language.RU_RUSSIAN_FEMALE), 1000 ) }) })
Puede ejecutar este script con una solicitud HTTP (y hacerlo sin comprar un número de teléfono). No olvide sustituir
los números de
teléfono en
callPSTN : el primero es a quién llamará la plataforma, el segundo es callerid, que se mostrará en el suscriptor llamado; puede ser su número personal verificado en la plataforma o un número comprado previamente en Voximplant (tenga en cuenta que no se pueden usar números virtuales). El script llama al número, después de la conexión informa que se ha creado un archivo y cuelga.
Guarde el script y vaya a la pestaña Enrutamiento para crear una regla:
Guarde la regla y, tenga en cuenta, copie su ID.
A continuación, necesitará claves de API, tómelas
en la sección correspondiente del menú principal.
Conociendo las claves API y la ID de la regla, puede sustituirlas por el método
StartScenarios de nuestra API HTTP, se verá más o menos así:
https://api.voximplant.com/platform_api/StartScenarios/?account_id=1&api_key=4ed5695e-4690-448r-95e8-3f8f0001287c&rule_id=28
Un poco más tarde, usamos esta solicitud al configurar la supervisión, que ya se puede iniciar.
Zabbix
Ingrese su interfaz de Zabbix como su usuario (o administrador), luego en la sección Configuración - Hosts, haga clic en Crear host. En el nombre, escriba
localhost , en grupos, especifique el
grupo de prueba y haga clic en Agregar a continuación.
Ahora en la lista de hosts verá tanto el servidor Zabbix predeterminado como el localhost. Desde aquí continuaremos configurando.
La supervisión de Zabbix se basa en una cadena de 3 entidades: Elemento - Activador - Acción. Los tres enlaces son obligatorios, por lo que debe crear cada uno de ellos en secuencia.
Artículo
El artículo es un acumulador de datos, y sin datos, el monitoreo no reaccionará ante nada. Para crear un elemento, en la lista de hosts, haga clic en Elementos a la derecha del nombre del host local. También puede hacer clic en el nombre del host y, en la pantalla que se abre, ir a la pestaña Elementos: la esencia es la misma. Una vez en la pestaña Elementos, haga clic en Crear elemento en la esquina superior derecha. Ingrese el nombre -
elemento habr , luego haga clic en Agregar al lado del campo Clave - desplácese hacia abajo, necesitamos la clave estándar
vfs.file.exists , selecciónela y se sustituirá en el campo Clave. Reemplace el archivo con la ruta actual, en nuestro caso la clave será así:
vfs.file.exists [/ tmp / habrTriggerFile] . En el campo Intervalo de actualización, configure 5 segundos para que la supervisión responda más rápido cuando creamos el archivo en el host. En la parte inferior de la página, haga clic en Agregar e inmediatamente verá el nuevo elemento.
Disparador
Los desencadenantes evalúan los datos recopilados y cuando alcanzan el umbral especificado, reaccionan: comienzan la acción. En la pantalla con el elemento creado, vaya a la pestaña Disparadores:
Haga clic en Crear disparador,
asígnele el nombre de
disparador . El valor del campo Expresión se recopila convenientemente utilizando el constructor: el botón Agregar. Establezca la configuración como en la captura de pantalla y haga clic en Insertar:
Haga clic en Agregar en la parte inferior de la página: listo, se crea el activador.
Acción
La acción es una acción que dispara un disparador disparado. Abra la pestaña Configuración - Acciones, haga clic en Crear acción. El nombre es de repente -
habr acción . A continuación, en el bloque Condición nueva, deje todo como predeterminado y agregue
habr , como resultado, se
obtiene el
nombre del
activador que contiene la condición
habr . Haga clic en Agregar para agregar una condición: aparecerá inmediatamente en el bloque Condiciones, vea la captura de pantalla:
Aquí, vaya a la pestaña Operaciones, luego en el bloque Operaciones, haga clic en Nuevo para agregar una acción. En el Tipo de operación, seleccione Comando remoto, aparecerá el bloque de lista Destino y el campo de entrada Comandos. En el bloque de lista Destino, haga clic en Nuevo, se le ofrecerá el objetivo predeterminado: host actual, lo necesita, haga clic en Agregar y el objetivo aparecerá en la lista. En el campo de entrada, inserte curl + una solicitud generada previamente a Voximplant:
curl "https://api.voximplant.com/platform_api/StartScenarios/?account_id=1&api_key=4ed5695e-4690-448r-95e8-3f8f0001287c&rule_id=28"
Luego agregue esta acción (Agregar como enlace), y solo luego haga clic en el botón Agregar para completar la creación de la Acción.
Un punto importante: elegimos el tipo de acción de comando Remoto, que está desactivado por defecto en la configuración del agente Zabbix. Para solucionar esto, en el host, abra la configuración y ponga un valor de 1 para EnableRemoteCommands:
vi /etc/zabbix/zabbix_agentd.conf // EnableRemoteCommands = 1
Después de eso, reinicie el servicio del agente:
service zabbix-agent restart
Iniciamos la cadena de acciones.
En el panel de Zabbix, vaya a la sección Monitoreo - Problemas. Pronto veremos una advertencia aquí de que el gatillo funcionó.
En el host, cree un archivo:
touch /tmp/habrTriggerFile
Después de 5 segundos en el panel Problemas veremos un nuevo mensaje; PROBLEMA parpadeará en la columna Estado, y si hace clic en el icono en la columna Acciones, verá los detalles de la acción (se puede hacer clic en la captura de pantalla):
En el camino, se realizará una llamada al número de teléfono que especificamos en el script Voximplant.
Basado en el cuadro de la película "The Matrix" (The Matrix (1999), Warner Bros.)Si cambia el nombre del archivo,
mv /tmp/habrTriggerFile /tmp/habrTriggerFile_
luego, después de 5 segundos, el estado del problema se RESUELVE.
Hecho Usted es excelente porque ha configurado la cadena de interacción host - Zabbix - Voximplant y, por el mismo principio, puede configurar una lógica compleja arbitraria para las llamadas de notificación.