Zabbix - pintar, fleksibel, dapat disesuaikan - dapat melakukan segalanya. Atau hampir semuanya. Akan aneh jika dia tidak bisa berteman dengan cloud telephony, terutama ketika yang terakhir memiliki HTTP API yang nyaman - gunakan kesehatan Anda. Hari ini kami akan menunjukkan cara mengkonfigurasi Zabbix untuk panggilan pemberitahuan melalui Voximplant, yang dapat sangat berguna dalam kasus darurat ("tidak ada waktu untuk menjelaskan, Anda perlu menelepon - server pertempuran baru saja jatuh").
Berdasarkan bingkai dari film "The Matrix" (The Matrix (1999), Warner Bros.)Catatan: tutorial mengasumsikan bahwa Anda sudah memiliki Zabbix yang berfungsi dan frontend Zabbix telah dikonfigurasi. Instalasi awal Zabbix bukan tujuan dari artikel ini, penasaran / membutuhkan panduan seperti itu dapat melihat dokumentasi resmi dan / atau google.
Dengan apa kita akan bekerja
Contoh kami menggunakan VDS dengan CentOS 7, di mana Zabbix 4.2.6 diinstal (versi stabil terbaru pada saat penulisan). Kami akan memantau server yang sama tempat Zabbix bekerja. Voximplant membutuhkan akun di platform dan skrip pemrosesan panggilan untuk JS. Dan sekarang sedikit lagi.
Apa yang akan kita lakukan
Tidak ada ilmu roket, mari kita lakukan pemantauan yang sangat sederhana yang menanggapi tampilan file
/ tmp / habrTriggerFile : ketika file tersebut muncul, Zabbix akan menghubungi Voximplant melalui API HTTP, sebuah skrip akan berfungsi yang akan memanggil nomor telepon yang ditentukan, katakan โPerhatian. File dibuat di server. " dan tutup telepon. Jika Anda menghapus / mengganti nama file, dan kemudian mengembalikannya, maka akan ada panggilan lagi. Jika Anda tidak melakukan apa pun, hanya akan ada satu panggilan.
Voximplant
Masuk ke akun Anda (atau
daftar ) dan buat
aplikasi habr . Di dalam aplikasi, buka tab Skenario dan buat skrip
pemberitahuan dengan kode ini:
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 ) }) })
Anda dapat menjalankan skrip ini dengan permintaan HTTP (dan lakukan tanpa membeli nomor telepon). Jangan lupa untuk mengganti nomor
telepon di
callPSTN : yang pertama adalah platform yang akan dipanggil, yang kedua adalah callerid, yang akan ditampilkan pada pelanggan yang dipanggil; itu bisa berupa nomor pribadi Anda yang telah diverifikasi pada platform, atau nomor yang sebelumnya dibeli dari Voximplant (catatan, nomor virtual tidak dapat digunakan). Script memanggil nomor tersebut, setelah koneksi melaporkan bahwa file telah dibuat dan ditutup.
Simpan skrip dan buka tab Routing untuk membuat aturan:
Simpan aturan dan - perhatikan - salin ID-nya.
Selanjutnya, Anda akan memerlukan kunci API, bawa
di bagian menu utama yang sesuai.
Mengetahui kunci API dan ID aturan, Anda dapat menggantikannya dengan metode
StartScenarios API HTTP kami, itu akan terlihat seperti ini:
https://api.voximplant.com/platform_api/StartScenarios/?account_id=1&api_key=4ed5695e-4690-448r-95e8-3f8f0001287c&rule_id=28
Beberapa saat kemudian, kami menggunakan permintaan ini saat mengatur pemantauan, yang sudah dapat dimulai.
Zabbix
Masukkan frontend Zabbix Anda sebagai pengguna (atau administrator), lalu di bagian Konfigurasi - Host, klik Buat host. Dalam namanya, tulis
localhost , dalam grup tentukan
grup tes dan klik Tambah di bawah.
Sekarang dalam daftar host Anda akan melihat server Zabbix default dan localhost. Dari sini kami akan terus mengkonfigurasi.
Pemantauan Zabbix didasarkan pada rantai 3 entitas: Item - Trigger - Action. Ketiga tautan wajib, jadi Anda harus membuat masing-masing secara berurutan.
Barang
Item adalah akumulator data, dan tanpa data, pemantauan tidak akan bereaksi terhadap apa pun. Untuk membuat suatu Item, dalam daftar host, klik Items di sebelah kanan nama host lokal. Anda juga dapat mengklik nama host itu sendiri dan pada layar yang terbuka, buka tab Item - intinya sama. Setelah di tab Item, klik Buat item di sudut kanan atas. Masukkan nama -
item habr , lalu klik Tambahkan di sebelah bidang Key - gulir ke bawah, kita perlu
vfs.file.exists kunci standar, pilih dan itu akan diganti di bidang Key. Ganti file dengan path saat ini, dalam kasus kami kuncinya akan seperti ini:
vfs.file.exists [/ tmp / habrTriggerFile] . Di bidang Perbarui interval, atur 5s sehingga pemantauan merespons lebih cepat saat kita membuat file pada host. Di bagian bawah halaman, klik Tambah, dan segera lihat item baru.
Pemicu
Pemicu mengevaluasi data yang dikumpulkan dan ketika mereka mencapai ambang yang ditentukan, mereka bereaksi - mereka memulai tindakan. Di layar dengan item yang dibuat, buka tab Pemicu:
Klik Buat pemicu,
beri nama
pemicu itu . Nilai untuk bidang Ekspresi dikumpulkan dengan nyaman menggunakan konstruktor - tombol Tambah. Atur pengaturan seperti pada tangkapan layar dan klik Sisipkan:
Klik Tambah di bagian bawah halaman - selesai, pemicunya dibuat.
Aksi
Tindakan adalah tindakan yang memicu pemicu yang terpicu. Buka tab Konfigurasi - Tindakan, klik Buat tindakan. Nama itu tiba-tiba -
tindakan habr . Di bawah ini, di blok kondisi baru, biarkan semuanya sebagai default dan tambahkan
habr , sebagai hasilnya,
nama Pemicu berisi kondisi
habr akan diperoleh. Klik Tambahkan untuk menambahkan kondisi - itu akan segera muncul di blok Ketentuan, lihat tangkapan layar:
Di sini, buka tab Operasi, lalu di blok Operasi, klik Baru untuk menambahkan tindakan. Dalam jenis Operasi, pilih perintah Remote, blok daftar Target dan bidang input Perintah akan muncul. Di blok Daftar target, klik Baru, Anda akan ditawari target default - Host saat ini, Anda membutuhkannya - klik Add dan target akan muncul dalam daftar. Di bidang input, masukkan curl + permintaan yang dibuat sebelumnya ke Voximplant:
curl "https://api.voximplant.com/platform_api/StartScenarios/?account_id=1&api_key=4ed5695e-4690-448r-95e8-3f8f0001287c&rule_id=28"
Kemudian tambahkan tindakan ini (Tambahkan sebagai tautan), dan hanya kemudian klik tombol Tambah untuk menyelesaikan pembuatan Tindakan.
Poin penting: kami memilih jenis tindakan perintah Remote, yang dimatikan secara default di konfigurasi agen Zabbix. Untuk memperbaikinya, pada host, buka config dan berikan nilai 1 untuk EnableRemoteCommands:
vi /etc/zabbix/zabbix_agentd.conf // EnableRemoteCommands = 1
Setelah itu, mulai ulang layanan agen:
service zabbix-agent restart
Kami memulai rantai tindakan
Di panel Zabbix, buka bagian Monitoring - Masalah. Segera kita akan melihat peringatan di sini bahwa pemicunya bekerja.
Di host, buat file:
touch /tmp/habrTriggerFile
Setelah 5 detik di panel Masalah kita akan melihat pesan baru; MASALAH akan berkedip di kolom Status, dan jika Anda mengklik ikon di kolom Tindakan, Anda akan melihat detail tindakan (tangkapan layar dapat diklik):
Sepanjang jalan, panggilan akan dilakukan ke nomor telepon yang kami tentukan dalam skrip Voximplant.
Berdasarkan bingkai dari film "The Matrix" (The Matrix (1999), Warner Bros.)Jika Anda mengganti nama file,
mv /tmp/habrTriggerFile /tmp/habrTriggerFile_
kemudian setelah 5 detik status masalah akan menjadi TERPUTUS.
Selesai! Anda hebat karena Anda mengatur host - Zabbix - rantai interaksi Voximplant dan, dengan prinsip yang sama, dapat mengatur logika kompleks yang sewenang-wenang untuk panggilan notifikasi.