Ofrezco una plantilla preparada para Zabbix y un script de Python para detectar automáticamente nuevos números de proveedores de Zadarma (nuevos, en el sentido de los números que compró).
La plantilla tiene varios disparadores e información básica sobre las habitaciones. El script funciona con la API de Zadarma o la base de datos MySQL.
Para trabajar con MySQL, es necesario poner los datos allí con anticipación en la corona o directamente desde el plan de marcado usando un script separado.
Ambos guiones debajo del corte.
zadarma_number.pyEl script debe colocarse en el directorio con scripts para el agente zabbiz, lo tengo
/etc/zabbix/scripts/
Además, dele el derecho de ejecutar y, por si acaso, cambie el propietario y el grupo de zabbix:
chmod +x /etc/zabbix/scripts/zadarma_number.py chown zabbix:zabbix /etc/zabbix/scripts/zadarma_number.py
Teóricamente, trabajar con una base de datos dada puede resultar más relevante, ya que se puede ejecutar un script para agregar información después de cada llamada. Por lo tanto, la información en la base de datos puede resultar un poco más relevante que el trabajo directo con la API directamente desde Zabbix.
En la plantilla de Zabbix, la macro {$ FORCE_API} obliga al script a trabajar con la API de Zadarma.
La macro {$ CUT} se usa para dividir la cadena de solicitud SIP-URI en partes antes de "@" y después.
El script tiene varias teclas para ejecutar.
Sin las teclas o con el modificador -l, el script devolverá una lista de números en formato json, que es adecuada para la detección automática de números en zabbix.
Ayuda para las teclas de script:uso: Zadarma para Zabbix [-h] [-l] [-n número de teléfono] [-S] [-g] [-e] [-d] [-s]
[-m] [-a] [-b] [-f] [-c [0,1,2] o ninguno]
Este programa está diseñado para monitorear los números de proveedores de Zadarma y
originalmente concebido como un guión para el agente zabbiz.
optional arguments: -h, --help show this help message and exit -l, --allnumbers "Show all found phone numbers in a format suitable for zabbix. Running a script without parameters (or with the -f option) leads to the same result." -n phone number, --number phone number "Phone number and -s or -S or -g or -e or -d or -m or -a " -S, --status -g, --start_date -e, --stop_date -d, --description -s, --sip "can be used in combination with "-c"" -m, --monthly_fee "The amount required to renew a phone number or all phone numbers" -a, --autorenew -b, --balance All balance numbers -f, --force_API "Force the use of api, the database is ignored" -c [0,1,2] or none, --cut [0,1,2] or none Used only in conjunction with "-s" 0 - The whole line, 1- Part of the string before "@", 2 - Part of the line after "@"
Las teclas "-S, -s, -g, -e, -d, -a" se usan solo en combinación con un número
El modificador -m se puede usar con o sin un número
Clave -b, solo sin número
El modificador -c solo con el modificador -s
El modificador -f fuerza el uso de la API; sin ella, se envía una solicitud a la base de datos y se puede utilizar con cualquier modificador.
Segundo guion:
Script API_to_MySqlAsí que dale el derecho de correr:
chmod +x ./main.py
Cómo llamar al guión y dónde ponerlo, decídalo usted mismo.
Para deshabilitar la salida de información a la consola, descomente la línea
depuración = falso
Para que ambos scripts funcionen, lo más probable es que necesite instalar "solicitudes"
pip install requests
Tabla de números CREATE TABLE IF NOT EXISTS `zadarma_numbers` ( `id` int(10) NOT NULL, `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `number` varchar(12) DEFAULT NULL, `number_name` varchar(60) DEFAULT NULL, `description` varchar(60) NOT NULL DEFAULT '', `sip` varchar(80) DEFAULT NULL, `start_date` datetime NOT NULL, `stop_date` datetime NOT NULL, `monthly_fee` int(5) DEFAULT NULL, `status` int(1) DEFAULT NULL, `channels` int(3) DEFAULT NULL, `autorenew` int(1) DEFAULT NULL ) ENGINE=InnoDB AUTO_INCREMENT=205 DEFAULT CHARSET=utf8; ALTER TABLE `zadarma_numbers` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `number` (`number`), ADD KEY `calldate` (`date`), ADD KEY `accountcode` (`monthly_fee`); ALTER TABLE `zadarma_numbers` MODIFY `id` int(10) NOT NULL AUTO_INCREMENT;
Mesa para el equilibrio CREATE TABLE IF NOT EXISTS `zadarma_balance` ( `id` int(10) NOT NULL, `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `balance` int(10) DEFAULT NULL, `monthly_fee` int(10) DEFAULT NULL ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; ALTER TABLE `zadarma_balance` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `balance` (`balance`), ADD KEY `calldate` (`date`); ALTER TABLE `zadarma_balance` MODIFY `id` int(10) NOT NULL AUTO_INCREMENT;
Repositorio con plantilla mysql, scripts y volcados.