我提供了一个用于Zabbix的现成模板和一个Python脚本,用于自动检测新的Zadarma提供程序编号(在您所购买的编号的意义上,是新的)。
该模板具有多个触发器和有关房间的基本信息。 该脚本可与Zadarma API或MySQL数据库一起使用。
要使用MySQL,必须事先将数据放到表冠上,或者直接使用单独的脚本从拨号计划中放数据。
两种脚本均被剪切。
zadarma_number.py该脚本必须与zabbiz代理的脚本一起放在目录中,我已经拥有了
/etc/zabbix/scripts/
另外,授予它运行的权利,以防万一更改zabbix的所有者和组:
chmod +x /etc/zabbix/scripts/zadarma_number.py chown zabbix:zabbix /etc/zabbix/scripts/zadarma_number.py
从理论上讲,使用给定的数据库可能更相关,因为可以在每次调用后运行用于添加信息的脚本。 因此,与直接从Zabbix直接使用API相比,数据库中的信息可能会更有意义。
在Zabbix模板中,宏{$ FORCE_API}强制脚本与Zadarma API一起使用。
宏{$ CUT}用于将SIP-URI请求字符串分成“ @”之前和之后的部分。
该脚本有几个要运行的键。
没有键或没有-l开关,脚本将以json格式返回数字列表,适用于自动检测zabbix中的数字。
脚本键帮助:用法:Zadarma for Zabbix [-h] [-l] [-n电话号码] [-S] [-g] [-e] [-d] [-s]
[-m] [-a] [-b] [-f] [-c [0,1,2]或无]
此程序旨在监视Zadarma提供程序的数量以及
最初被认为是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 "@"
键“ -S,-s,-g,-e,-d,-a”仅与数字结合使用
-m开关可以与数字一起使用或不与数字一起使用
键-b,仅不带数字
-c开关仅与-s开关一起使用
-f开关强制使用API,如果没有它,则将请求发送到数据库,并且可以与任何开关一起使用。
第二个脚本:
脚本API_to_MySql因此,赋予它运行权:
chmod +x ./main.py
如何调用脚本以及在何处放置脚本,请自己决定。
要禁用向控制台的信息输出,您需要取消注释该行
调试=假
为了使两个脚本都能正常工作,您很可能需要安装“请求”
pip install requests
数字表 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;
余额表 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;
带有mysql模板,脚本和转储的
存储库 。