Saya menawarkan template yang sudah jadi untuk Zabbix dan skrip Python untuk secara otomatis mendeteksi nomor penyedia Zadarma baru (yang baru, dalam arti angka yang Anda beli).
Templat ini memiliki beberapa pemicu dan informasi dasar tentang kamar. Script bekerja dengan Zadarma API atau database MySQL.
Untuk bekerja dengan MySQL, perlu untuk menempatkan data terlebih dahulu di mahkota atau langsung dari dialplan menggunakan skrip terpisah.
Kedua skrip di bawah cut.
zadarma_number.pyScript harus diletakkan di direktori dengan skrip untuk agen zabbiz, saya memilikinya
/etc/zabbix/scripts/
Juga, berikan hak untuk menjalankan dan untuk berjaga-jaga, ubah pemilik dan grup zabbix:
chmod +x /etc/zabbix/scripts/zadarma_number.py chown zabbix:zabbix /etc/zabbix/scripts/zadarma_number.py
Secara teoritis, bekerja dengan basis data yang diberikan mungkin menjadi lebih relevan, karena skrip untuk menambahkan informasi di sana dapat dijalankan setelah setiap panggilan. Dengan demikian, info dalam database mungkin berubah menjadi sedikit lebih relevan daripada langsung bekerja dengan API langsung dari Zabbix.
Dalam templat Zabbix, makro {$ FORCE_API} memaksa skrip untuk bekerja dengan Zadarma API.
Makro {$ CUT} digunakan untuk membagi string permintaan SIP-URI menjadi beberapa bagian sebelum "@" dan sesudahnya.
Script memiliki beberapa tombol untuk dijalankan.
Tanpa tombol atau dengan tombol -l, skrip akan mengembalikan daftar angka dalam format json, yang cocok untuk deteksi otomatis angka dalam zabbix.
Bantuan untuk kunci skrip:penggunaan: Zadarma untuk Zabbix [-h] [-l] [-n nomor telepon] [-S] [-g] [-e] [-d] [-s]
[-m] [-a] [-b] [-f] [-c [0,1,2] atau tidak ada]
Program ini dirancang untuk memonitor nomor penyedia Zadarma dan
awalnya disusun sebagai skrip untuk agen 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 "@"
Kunci "-S, -s, -g, -e, -d, -a" hanya digunakan dalam kombinasi dengan angka
Switch -m dapat digunakan dengan atau tanpa angka
Kunci -b, hanya tanpa nomor
Saklar -c hanya dengan sakelar -s
Switch -f memaksa penggunaan API, tanpa itu, permintaan dikirim ke database dan dapat digunakan dengan switch apa pun.
Skrip kedua:
Script API_to_MySqlJadi berikan hak untuk menjalankan:
chmod +x ./main.py
Cara memanggil skrip dan ke mana harus meletakkannya, putuskan sendiri.
Untuk menonaktifkan output informasi ke konsol, Anda harus menghapus komentar baris
debug = salah
Agar kedua skrip berfungsi, kemungkinan besar Anda harus memasang "permintaan"
pip install requests
Tabel untuk angka 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;
Meja untuk keseimbangan 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;
Repositori dengan templat mysql, skrip dan dump.