أقدم نموذجًا جاهزًا لـ 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.
في قالب Zabbix ، يفرض الماكرو {$ FORCE_API} النص البرمجي للعمل مع Zadarma API.
يتم استخدام الماكرو {$ CUT} لتقسيم سلسلة طلب SIP-URI إلى أجزاء قبل "@" وبعدها.
يحتوي البرنامج النصي على عدة مفاتيح للتشغيل.
بدون المفاتيح أو مع مفتاح التبديل -l ، سيعيد البرنامج النصي قائمة بالأرقام بتنسيق json ، وهو مناسب للكشف التلقائي عن الأرقام في zabbix.
تعليمات حول مفاتيح البرنامج النصي:الاستخدام: Zadarma لـ Zabbix [-h] [-l] [-n number number] [-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 مع أو بدون رقم
مفتاح-ب فقط بدون رقم
التبديل -c فقط مع التبديل -s
يفرض رمز التبديل -f استخدام API ، بدونه ، يتم إرسال طلب إلى قاعدة البيانات ويمكن استخدامه مع أي مفتاح تحويل.
النص الثاني:
Script 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;
مستودع مع قالب الخلية والمخطوطات ومقالب.