Grafana+Zabbix: Visualisasi barisan pengeluaran

Dalam artikel ini saya ingin berkongsi pengalaman saya menggunakan sistem sumber terbuka Zabbix dan Grafana untuk menggambarkan operasi barisan pengeluaran. Maklumat ini mungkin berguna kepada mereka yang mencari cara pantas untuk memaparkan atau menganalisis data yang dikumpul secara visual dalam automasi industri atau projek IoT. Artikel itu bukan tutorial terperinci, tetapi lebih kepada konsep untuk sistem pemantauan berdasarkan perisian sumber terbuka untuk kilang pembuatan.

Alat

Zabbix – kami telah menggunakannya untuk masa yang lama untuk memantau infrastruktur IT kilang. Sistem ini ternyata sangat mudah dan universal sehingga kami mula memasukkan data dari barisan pengeluaran, sensor dan pengawal ke dalamnya. Ini membolehkan kami mengumpul semua data metrik di satu tempat, membuat graf ringkas penggunaan sumber dan prestasi peralatan, tetapi kami benar-benar kekurangan analitis dan graf yang cantik.

grafana ialah alat yang berkuasa untuk analisis dan visualisasi data. Sebilangan besar pemalam membolehkan anda mengambil data daripada pelbagai sumber (zabbix, clickhouse, influxDB), memprosesnya dengan cepat (kira nilai purata, jumlah, perbezaan, dll.) dan melukis semua jenis graf (dari garisan mudah, speedometer, jadual hingga rajah kompleks).

Draw.io – perkhidmatan yang membolehkan anda melukis daripada gambar rajah blok mudah kepada pelan lantai dalam editor dalam talian. Terdapat banyak templat siap sedia dan objek yang dilukis. Data boleh dieksport ke semua format grafik utama atau xml.

Meletakkannya bersama-sama

Terdapat banyak artikel yang ditulis tentang cara memasang dan mengkonfigurasi Grafana dan Zabbix, saya akan memberitahu anda tentang titik konfigurasi utama.

"Nod rangkaian" (hos) dibuat pada pelayan Zabbix, yang akan memiliki "elemen data" (item) dengan metrik daripada penderia kami. Adalah dinasihatkan untuk memikirkan nama nod dan elemen data terlebih dahulu dan menjadikannya sestruktur mungkin, kerana kami akan mengaksesnya daripada grafana melalui ungkapan biasa. Pendekatan ini mudah kerana anda boleh mendapatkan data daripada sekumpulan elemen dengan satu permintaan.

Untuk mengkonfigurasi grafana anda perlu memasang pemalam tambahan:

  • Zabbix oleh Alexander Zobnin (alexanderzobnin-zabbix-app) – integrasi dengan zabbix
  • natel-discrete-panel – pemalam untuk visualisasi diskret pada graf mendatar
  • pierosavi-imageit-panel – pemalam untuk memaparkan data di atas imej anda
  • agenty-flowcharting-panel – pemalam untuk visualisasi dinamik rajah daripada draw.io

Penyepaduan dengan Zabbix sendiri dikonfigurasikan dalam grafana, item menu ConfigurationData sourcesZabbix. Di sana anda perlu menentukan alamat pelayan api zabbix, inilah yang saya ada http://zabbix.local/zabbix/api_jsonrpc.php, dan log masuk dengan kata laluan untuk akses. Jika semuanya dilakukan dengan betul, apabila menyimpan tetapan akan ada mesej dengan nombor versi api: versi API zabbix: 5.0.1

Mencipta Papan Pemuka

Di sinilah keajaiban Grafana dan pemalamnya bermula.

Pemalam Natel-discrete-panel
Kami mempunyai data tentang status motor pada talian (berfungsi = 1, tidak berfungsi =0). Menggunakan graf diskret, kita boleh melukis skala yang akan menunjukkan: status enjin, berapa minit/jam atau % ia berfungsi dan kekerapan enjin dihidupkan.

Grafana+Zabbix: Visualisasi barisan pengeluaran
Visualisasi status enjin

Pada pendapat saya, ini adalah salah satu graf terbaik untuk menggambarkan prestasi perkakasan. Anda boleh melihat dengan serta-merta berapa lama ia telah melahu dan dalam mod apa ia berfungsi dengan lebih kerap. Terdapat banyak data, adalah mungkin untuk mengagregatkannya mengikut julat, mengubahnya mengikut nilai (jika nilainya ialah "1", kemudian memaparkannya sebagai "HIDUP")

Pemalam pierosavi-imageit-panel

Imej ia mudah digunakan apabila anda sudah mempunyai gambar rajah yang dilukis atau pelan lantai yang anda mahu gunakan data daripada penderia. Dalam tetapan visualisasi, anda perlu menentukan URL pada imej dan menambah elemen penderia yang anda perlukan. Elemen muncul dalam gambar dan boleh diletakkan di tempat yang dikehendaki dengan tetikus.

Grafana+Zabbix: Visualisasi barisan pengeluaran
Gambar rajah relau dengan metrik suhu dan tekanan

Plugin panel carta alir agen

Saya ingin bercakap dengan lebih terperinci tentang mencipta visualisasi FlowCharting, kerana ia adalah alat yang sangat berfungsi. Ia membolehkan anda membuat rajah mnemonik dinamik, unsur-unsur yang akan bertindak balas terhadap nilai metrik (tukar warna, kedudukan, nama, dll.).

Menerima data

Penciptaan mana-mana elemen visualisasi dalam Grafana bermula dengan permintaan untuk data daripada sumber, dalam kes kami ia adalah zabbix. Menggunakan pertanyaan, kita perlu mendapatkan semua metrik yang ingin kita gunakan dalam rajah. Butiran metrik ialah nama elemen data dalam Zabbix; anda boleh menentukan sama ada metrik individu atau set yang ditapis melalui ungkapan biasa. Dalam contoh saya, medan Item mengandungi ungkapan: "/(^line 1)|(availability)|(zucchini)/" - ini bermaksud: pilih semua metrik yang namanya bermula dengan "baris 1" atau mengandungi perkataan "availabiliti ” atau mengandungi perkataan "zucchini"

Grafana+Zabbix: Visualisasi barisan pengeluaran
Contoh penyediaan permintaan untuk data pada enjin baris pertama dan ketersediaan bahan mentah

Penukaran data

Data sumber mungkin tidak selalu dalam bentuk yang kita perlukan untuk memaparkannya. Sebagai contoh, kami mempunyai data minit demi minit mengenai berat produk dalam bekas (kg), dan kami perlu memaparkan kadar pengisian dalam t/jam. Saya melakukan ini dengan cara berikut: Saya mengambil data berat dan mengubahnya dengan fungsi delta grafana, yang mengira perbezaan antara nilai metrik, jadi berat semasa bertukar menjadi kg/min. Kemudian saya darab dengan 0.06 untuk mendapatkan hasil dalam tan/jam. Memandangkan metrik berat digunakan dalam beberapa pertanyaan, saya menetapkan alias baharu untuknya (setAlias) dan akan menggunakannya dalam peraturan visualisasi.

Grafana+Zabbix: Visualisasi barisan pengeluaran
Contoh menggunakan parameter delta dan pengganda dan menamakan semula metrik dalam pertanyaan

Berikut ialah satu lagi contoh penukaran data: Saya perlu mengira bilangan kelompok (permulaan kitaran = permulaan enjin). Metrik dikira berdasarkan status enjin "baris 1 - pam pam dari tangki 1 (status)". Transformasi: kami menukar data metrik asal dengan fungsi delta (perbezaan nilai), jadi metrik akan mempunyai nilai "+1" untuk menghidupkan enjin, "-1" untuk berhenti dan "0" apabila enjin mati. tidak mengubah statusnya. Kemudian saya mengeluarkan semua nilai kurang daripada 1 dan menjumlahkannya. Hasilnya ialah bilangan enjin dihidupkan.

Grafana+Zabbix: Visualisasi barisan pengeluaran
Contoh menukar data daripada status semasa kepada bilangan permulaan

Sekarang mengenai visualisasi itu sendiri

Dalam tetapan paparan terdapat butang "Edit Draw"; ia melancarkan editor di mana anda boleh melukis gambar rajah. Setiap objek pada rajah mempunyai parameter tersendiri. Contohnya, jika anda menentukan tetapan fon dalam editor, ia akan digunakan pada visualisasi data dalam Grafana.

Grafana+Zabbix: Visualisasi barisan pengeluaran
Inilah rupa editor dalam Draw.io

Selepas menyimpan gambar rajah, ia akan muncul dalam grafana dan anda boleh membuat peraturan untuk menukar elemen.

Dalam parameter() kami tentukan:

  • Pilihanβ€”tetapkan nama peraturan, nama atau alias metrik yang datanya akan digunakan (Gunakan pada metrik). Jenis pengagregatan data (Penggabungan) mempengaruhi hasil akhir metrik, jadi Terakhir bermakna nilai terakhir akan dipilih, purata ialah nilai purata untuk tempoh yang dipilih di penjuru kanan sebelah atas.
  • Ambang - parameter nilai ambang menerangkan logik aplikasi warna, iaitu, warna yang dipilih akan digunakan pada elemen pada rajah bergantung pada data metrik. Dalam contoh saya, jika nilai metrik ialah "0", statusnya ialah "Ok", warna akan menjadi hijau, jika nilai ialah ">1", status akan menjadi Kritikal dan warna akan menjadi merah.
  • Pemetaan Warna/Petua Alat" dan "Pemetaan Label/Teks" - memilih elemen skema dan senario untuk kelakuannya. Dalam senario pertama, objek akan dicat, dalam senario kedua, akan terdapat teks padanya dengan data daripada metrik. Untuk memilih objek pada rajah, anda perlu klik pada tanda litar dan klik pada rajah.

Grafana+Zabbix: Visualisasi barisan pengeluaran
Dalam contoh ini, saya mengecat pam dan anak panahnya dengan merah jika ia berfungsi dan hijau jika tidak.

Menggunakan pemalam carta alir, saya dapat melukis gambar rajah keseluruhan baris, di mana:

  1. warna unit berubah mengikut statusnya
  2. terdapat penggera untuk ketiadaan produk dalam bekas
  3. tetapan frekuensi motor dipaparkan
  4. kelajuan mengisi/lambakan tangki pertama
  5. bilangan kitaran operasi talian (batch) dikira

Grafana+Zabbix: Visualisasi barisan pengeluaran
Visualisasi operasi barisan pengeluaran

Keputusan

Perkara yang paling sukar bagi saya ialah mendapatkan data daripada pengawal. Terima kasih kepada kepelbagaian Zabbix dari segi menerima data dan fleksibiliti Grafana disebabkan oleh pemalam, ia mengambil masa beberapa hari sahaja untuk mencipta skrin pemantauan barisan pengeluaran yang komprehensif. Visualisasi memungkinkan untuk melihat graf dan statistik keadaan, serta akses mudah melalui web kepada semua orang yang berminat - semua ini memungkinkan untuk mengenal pasti kesesakan dan penggunaan unit yang tidak cekap dengan cepat.

Kesimpulan

Saya sangat menyukai gabungan Zabbix+Grafana dan saya mengesyorkan agar anda memberi perhatian kepadanya jika anda perlu memproses data dengan cepat daripada pengawal atau penderia tanpa pengaturcaraan atau melaksanakan produk komersial yang kompleks. Sudah tentu, ini tidak akan menggantikan sistem SCADA profesional, tetapi ia akan mencukupi sebagai alat untuk pemantauan terpusat bagi keseluruhan pengeluaran.

Sumber: www.habr.com

Tambah komen