Cara mengajar Zabbix untuk mengirim pemberitahuan masalah langsung ke desktop


Gambar: sumber

Halo, Habr! Nama saya Ilya Ableev, saya bekerja di departemen pemantauan Badoo.

Anda dapat bertahan lama tentang sistem pemantauan mana yang lebih dingin. Alat utama untuk menanggapi masalah di Badoo adalah Zabbix, dan kami telah berulang kali berbagi pengalaman menyesuaikannya.

Di luar kotak, Anda dapat mempelajari tentang masalah baru baik melalui antarmuka web atau melalui surat / SMS. Ini bekerja dengan baik, dan sampai titik tertentu kami merasa nyaman dengan metode ini.

Saat ini, sistem kami memiliki beberapa instance server, ribuan host, ratusan ribu cek, dan tentang jumlah pemicu yang sama yang harus Anda tanggapi secepat mungkin. Setelah serangkaian insiden, ketika kami hanya menghabiskan waktu hingga sepuluh menit untuk mendeteksi masalah (yang sama sekali tidak dapat diterima), kami menyadari bahwa kami membutuhkan cara lain untuk melaporkan masalah. Maka mungkin reaksi kita akan lebih cepat.

Solusi optimal, menurut kami, adalah menampilkan pemberitahuan penting di atas semua jendela (browser, obrolan, konsol). Pada artikel ini, kita akan berbicara tentang bagaimana kita menyelesaikan Zabbix, mengajarkan cara mengirimnya langsung ke desktop.

Kepada siapa solusi ini cocok:

  • administrator tugas, yang tidak hanya melihat-lihat monitor, tetapi juga menangani tugas-tugas lain;
  • semua administrator lain yang tidak suka melihat lembar MASALAH dan OK dalam surat atau SMS, tetapi yang ingin mencari tahu tentang masalah kritis secara tepat waktu.

Anda harus menghabiskan waktu untuk instalasi, tetapi saya pikir jika Anda menggunakan Zabbix dan sudah menggunakan skrip khusus, itu tidak akan menyulitkan Anda.

Perhatian! Menerima pemberitahuan dengan cara ini membuat ketagihan, penggunaan jangka panjangnya memberi kesan bahwa itu adalah bagian integral dari Zabbix.

Saya akan memberi tahu Anda dalam langkah apa dan bagaimana kami melakukannya. Implementasi teknisnya cukup sederhana:

  1. Zabbix mengirimkan peringatan ke beberapa acara.
  2. Skrip pengiriman di server mengirim data ke klien di desktop melalui UDP.
  3. Skrip penerima menerima pemberitahuan, dan memicu munculnya pesan pop-up melalui aplikasi tambahan.

Item ketiga mungkin berbeda tergantung pada sistem operasi yang Anda gunakan dan aplikasi mana yang paling Anda sukai.

Langkah Satu: Konfigurasikan Zabbix


Dokumentasi resmi merinci cara membuat peringatan Anda .

Kode proyek tersedia di GitHub: https://github.com/ableev/ZbxDsktp .

  1. Masukkan zbxpush.py di AlertScriptsPath terlebih dahulu di server Zabbix.
  2. Lebih lanjut dalam antarmuka web: AdministrasiJenis mediaBuat .




3. Kami akan mendaftar terlebih dahulu IP / FQDN yang akan kami kirimkan peringatan.

Item ini dapat ditingkatkan
Sebagai contoh, kami telah melakukan ini: ada server pemantauan utama, dengan login SSH, skrip mengingat IP penelepon dan mulai mengirim peringatan kepadanya. Jadi, untuk mengaktifkan penerimaan data di rumah, Anda tidak perlu mengubah tindakan setiap kali.

Di antarmuka web: AdministrasiPengguna% nama pengguna%Media .



4. Buat tindakan pada pemicu.

Di antarmuka web: KonfigurasiTindakan .



Kirim format


{TRIGGER.NSEVERITY}@@@{HOST.NAME}@@@{TRIGGER.NAME}

Yang pertama adalah format angka pemicu (4 atau 5 mempengaruhi ikon yang ditampilkan: Tinggi atau Bencana), yang kedua adalah header notifikasi, yang ketiga adalah badan pesan.

@@@ - untuk memudahkan menerobos kolom, karena nama pemicu dapat mengatakan apa saja (setidaknya dengan kami :)), tetapi tentu saja bukan kombinasi ini.





Langkah dua: server mengirim data ke klien


Logikanya sederhana: kami menerima suatu acara, kami meneruskannya ke klien.

zbxpush.py

Di sini Anda dapat mengubah UDP ke TCP. Kami memilih UDP karena satu alasan sederhana: Zabbix mengirim semua pemberitahuan secara berurutan, yang berarti bahwa jika komputer Anda tidak tersedia, jika menggunakan TCP, pemberitahuan akan dikirim dengan penundaan lama.

Tetapi UDP tidak bisa diandalkan
Pembaca, yang datang ke lelucon tentang UDP, akan melihat bahwa dalam kasus mengirim peringatan melalui UDP, ada kemungkinan kehilangan mereka di suatu tempat antara server dan desktop. Dan dia akan benar. Tetapi intinya bukan untuk menyampaikan pesan yang dijamin, tetapi untuk secara sederhana dan cepat menarik perhatian ke dasbor dengan masalah: "Hei, sesuatu terjadi di sana, pergi dan lihat."

Ingatlah untuk membuat skrip dapat dieksekusi!

Langkah tiga: terima acara dan tampilkan pemberitahuan


zbxlistenerd.py - skrip yang akan berputar di latar belakang dan memicu pemberitahuan

settings.cfg - file dengan pengaturan klien

icons/5.png , icons/4.png - ikon untuk berbagai kritikalitas pemicu
Lebih jauh jalur kita berbeda. Bagian "klien" melibatkan sedikit kreativitas, karena setiap orang menciptakan lingkungan untuk diri mereka sendiri.

Apa yang perlu:

  • Ikon yang sesuai dengan kekritisan pemicu;
  • pemberitahuan pop-up suara;
  • melakukan tindakan dengan mengklik pemberitahuan (SSH-login, membuka tautan, memulai tiket tentang masalah, dll.).

Perusahaan kami terutama menggunakan Linux dan Mac OS sebagai OS desktop, jadi mari kita lihat beberapa contoh untuk mereka. Jika Anda menerapkan hal yang sama untuk Windows, selamat datang untuk berkomentar! Kami dengan senang hati menambah pos.

Linux




Biarkan saya memberi Anda sebuah contoh yang kebetulan menggunakan: notify-send in Xfce (pada screenshot di atas). Mengapa memberitahukan-kirim dan bukan Python yang sama menggunakan libnotify? Ya, karena ia ada di semua distribusi desktop populer (Ubuntu, Fedora, SUSE) dan berfungsi dengan semua DE (paling tidak populer) DEs (Gnome, KDE, Xfce).

Kiat: jika Anda mengalami periode tidak tersedianya massa sesuatu (misalnya, sakelar telah jatuh dan Anda dibanjiri segunung pemicu tentang tidak tersedianya server), segera atur hotkey untuk menyelesaikan proses notifikasi-kirim.

OS Mac


Karena awalnya solusi diterapkan berdasarkan aplikasi gratis, dan kemudian kami mencoba yang berbayar, akan ada dua contoh.

terminal-notifier




Setelah pencarian singkat, terminal-notifier gratis dipilih.

Pro:

  • Anda dapat mengatur ikon yang berbeda untuk kekritisan yang berbeda;
  • Anda dapat membuat tautan ke bagan di Zabbix dan membukanya dengan mengklik pemberitahuan;
  • Anda dapat menerapkan pembukaan tautan SSH: mereka melihat pemberitahuan -> diklik -> segera pergi ke host.

Cons: tidak ada (terutama setelah dukungan ikon ditambahkan).

Growl



Untuk mengaktifkan, atur growl_enabled = True di settings.cfg.

Pada saat terminal-notifier tidak tahu cara menggunakan ikon khusus, Growl mengatasi ini dengan cukup baik. Oleh karena itu, keingintahuan kami menang atas keingintahuan kami - dan kami mencoba aplikasi yang agak populer ini (yang, harus saya katakan, tidak hanya dapat mengubah ikon - ini adalah pusat notifikasi keseluruhan).

Pro:

  • Anda mungkin sudah menginstal aplikasi;
  • Anda dapat memilih ikon yang berbeda untuk kekritisan yang berbeda;
  • seperti halnya di terminal-notifier, Anda dapat mengonfigurasi tindakan dengan mengklik notifikasi.

Minus: dibayar.

Jika Anda tidak memiliki Growl, saya masih merekomendasikan menggunakan terminal-notifier.

Kesimpulan


Jadi, dengan bantuan perangkat sederhana ...

Apa yang kita dapatkan sebagai hasilnya:

  • pengiriman pemberitahuan yang cepat ke administrator;
  • pengurangan waktu reaksi menjadi peristiwa (dari saat mereka "menemukan" menjadi "diperbaiki" atau "diteruskan");
  • kemampuan untuk melakukan tindakan semi-otomatis sederhana:

Selanjutnya, itu semua tergantung pada kreativitas Anda.

Suatu ketika, ketika saya bekerja di sebuah perusahaan penyedia, ketika saluran Internet jatuh dari semua speaker dan headphone di tempat kerja, suara sirene terdengar. Hal ini membuat petugas (saya) menjadi pingsan, tidak memberikan laporan masalah yang memadai melalui telepon, tetapi dia (saya) mencoba menyelesaikan masalah ini sesegera mungkin.

Secara pribadi, saya sudah tahu kasus-kasus mengacaukan script suara babi dari antivirus populer dan pembicara dari penerjemah populer. :)

Jika Anda memiliki waktu luang, keinginan, dan teknologi modern, Anda dapat melakukannya


Reaksi cepat untuk insiden!

Source: https://habr.com/ru/post/id418907/


All Articles