Grafana+Zabbix: Üretim hattı operasyonunun görselleştirilmesi

Bu makalede, üretim hatlarının işleyişini görselleştirmek için açık kaynak sistemler Zabbix ve Grafana'yı kullanma deneyimimi paylaşmak istiyorum. Bu bilgiler, endüstriyel otomasyon veya IoT projelerinde toplanan verileri görsel olarak görüntülemenin veya analiz etmenin hızlı bir yolunu arayanlar için yararlı olabilir. Makale ayrıntılı bir eğitim değil, bir üretim tesisi için açık kaynaklı yazılıma dayalı bir izleme sistemi konseptidir.

araçları

Zabbix – Fabrikanın BT altyapısını izlemek için uzun süredir kullanıyoruz. Sistemin o kadar kullanışlı ve evrensel olduğu ortaya çıktı ki, üretim hatlarından, sensörlerden ve kontrolörlerden gelen verileri sisteme girmeye başladık. Bu, tüm ölçüm verilerini tek bir yerde toplamamıza, kaynak tüketimi ve ekipman performansına ilişkin basit grafikler oluşturmamıza olanak sağladı, ancak gerçekten analitik ve güzel grafiklerden yoksunduk.

grafana analitik ve veri görselleştirme için güçlü bir araçtır. Çok sayıda eklenti, çeşitli kaynaklardan (zabbix, clickhouse, influxDB) veri almanıza, bunları anında işlemenize (ortalama değeri, toplamı, farkı vb. hesaplamanıza) ve her türlü grafiği çizmenize (basit çizgilerden, hızölçerler, tablolardan karmaşık diyagramlara kadar).

Draw.io – çevrimiçi düzenleyicide basit bir blok diyagramdan kat planına çizim yapmanızı sağlayan bir hizmet. Pek çok hazır şablon ve çizilmiş nesne var. Veriler tüm önemli grafik formatlarına veya xml'ye aktarılabilir.

Hepsini bir araya getirmek

Grafana ve Zabbix'in nasıl kurulacağı ve yapılandırılacağı hakkında yazılmış birçok makale var, size ana yapılandırma noktalarından bahsedeceğim.

Zabbix sunucusunda, sensörlerimizden gelen ölçümlerle "veri öğelerine" (öğelere) sahip olacak bir "ağ düğümü" (ana bilgisayar) oluşturulur. Düğümlerin ve veri öğelerinin adlarını önceden düşünmeniz ve bunları mümkün olduğunca yapılandırılmış hale getirmeniz önerilir, çünkü bunlara grafanadan düzenli ifadeler aracılığıyla erişeceğiz. Bu yaklaşım uygundur çünkü tek bir istekle bir grup öğeden veri elde edebilirsiniz.

Grafana'yı yapılandırmak için ek eklentiler yüklemeniz gerekecektir:

  • Zabbix, Alexander Zobnin (alexanderzobnin-zabbix-app) – zabbix ile entegrasyon
  • natel-discrete-panel – yatay bir grafik üzerinde ayrık görselleştirme için eklenti
  • pierosavi-imageit-panel – görüntünüzün üstünde verileri görüntülemek için eklenti
  • Agenty-flowcharting-panel – Draw.io'dan bir diyagramın dinamik görselleştirilmesi için eklenti

Zabbix ile entegrasyon, grafana, ConfigurationData ResourcesZabbix menü öğesinde yapılandırılır. Orada api zabbix sunucusunun adresini belirtmeniz gerekiyor, bende bu var http://zabbix.local/zabbix/api_jsonrpc.phpve erişim için şifreyle giriş yapın. Her şey doğru yapılırsa, ayarlar kaydedilirken API sürüm numarasını içeren bir mesaj görünecektir: zabbix API sürümü: 5.0.1

Kontrol Paneli Oluşturma

Grafana'nın ve eklentilerinin büyüsü burada başlıyor.

Natel-ayrık-panel eklentisi
Hatlardaki motorların durumu hakkında verilerimiz var (çalışıyor = 1, çalışmıyor =0). Ayrık grafiği kullanarak, motorun durumunu, kaç dakika/saat veya %'yi çalıştığını ve ne sıklıkta çalıştırıldığını gösterecek bir ölçek çizebiliriz.

Grafana+Zabbix: Üretim hattı operasyonunun görselleştirilmesi
Motor durumlarının görselleştirilmesi

Bana göre bu, donanım performansını görselleştirmek için en iyi grafiklerden biridir. Ne kadar süre boşta kaldığını, hangi modlarda daha sık çalıştığını anında görebilirsiniz. Çok fazla veri olabilir, bunları aralıklara göre toplamak, değerlere göre dönüştürmek mümkündür (eğer değer “1” ise, o zaman “AÇIK” olarak görüntüleyin)

Pierosavi-imageit-panel eklentisi

Imageit'in, sensörlerden gelen verileri uygulamak istediğiniz çizilmiş bir diyagramınız veya kat planınız olduğunda kullanılması uygundur. Görselleştirme ayarlarında görselin URL'sini belirtmeniz ve ihtiyacınız olan sensör öğelerini eklemeniz gerekir. Öğe resimde görünür ve fare ile istenilen yere yerleştirilebilir.

Grafana+Zabbix: Üretim hattı operasyonunun görselleştirilmesi
Sıcaklık ve basınç ölçümlerini içeren fırın diyagramı

ajans-akış şeması-paneli eklentisi

İnanılmaz derecede işlevsel bir araç olduğu için FlowCharting görselleştirmesi oluşturma konusunda daha detaylı konuşmak istiyorum. Öğeleri metrik değerlerine (renk, konum, ad vb. değiştirme) tepki verecek dinamik bir anımsatıcı diyagram oluşturmanıza olanak tanır.

Veri alıyor

Grafana'da herhangi bir görselleştirme öğesinin oluşturulması, kaynaktan veri talebiyle başlar, bizim durumumuzda bu zabbix'tir. Sorguları kullanarak diyagramda kullanmak istediğimiz tüm metrikleri almamız gerekir. Metrik ayrıntıları, Zabbix'teki veri öğelerinin adlarıdır; tek bir metriği veya normal bir ifadeyle filtrelenmiş bir kümeyi belirtebilirsiniz. Örneğimde, Öğe alanı şu ifadeyi içeriyor: "/(^satır 1)|(availability)|(zucchini)/" - bu şu anlama gelir: adı kesinlikle "satır 1" ile başlayan veya "availability" kelimesini içeren tüm metrikleri seçin ” veya "kabak" kelimesini içeriyor

Grafana+Zabbix: Üretim hattı operasyonunun görselleştirilmesi
Birinci hat motorları ve hammadde mevcudiyeti hakkında veri talebi oluşturma örneği

Veri dönüşümü

Kaynak veriler her zaman onu görüntülememiz gereken biçimde olmayabilir. Örneğin bir ürünün kap içindeki ağırlığı (kg) hakkında dakika dakika verilerimiz var ve dolum oranını t/saat cinsinden göstermemiz gerekiyor. Bunu şu şekilde yapıyorum: Ağırlık verisini alıp metrik değerler arasındaki farkı hesaplayan grafana delta fonksiyonu ile dönüştürüyorum, böylece mevcut ağırlık kg/dk'ya dönüşüyor. Daha sonra ton/saat cinsinden sonucu elde etmek için 0.06 ile çarpıyorum. Ağırlık metriği birçok sorguda kullanıldığından, bunun için yeni bir takma ad (setAlias) belirliyorum ve bunu görselleştirme kuralında kullanacağım.

Grafana+Zabbix: Üretim hattı operasyonunun görselleştirilmesi
Bir sorguda delta ve çarpan parametresini kullanma ve metriği yeniden adlandırma örneği

İşte veri dönüşümüne başka bir örnek: Parti sayısını saymam gerekiyordu (döngü başlangıcı = motor çalıştırma). Bu ölçüm, "hat 1 - tank 1'den pompa pompası (durum)" motor durumuna göre hesaplanır. Dönüşüm: Orijinal metriğin verilerini delta fonksiyonuyla (değerlerin farkı) değiştiririz, böylece metrik, motoru çalıştırmak için "+1", durdurmak için "-1" ve motor çalıştırdığında "0" değerine sahip olur. durumunu değiştirmeyin. Daha sonra 1'den küçük olan tüm değerleri kaldırıp toplarım. Sonuç, motorun çalıştırılma sayısıdır.

Grafana+Zabbix: Üretim hattı operasyonunun görselleştirilmesi
Verileri mevcut durumdan başlatma sayısına dönüştürme örneği

Şimdi görselleştirmenin kendisi hakkında

Ekran ayarlarında bir “Çizimi Düzenle” düğmesi vardır; bir diyagram çizebileceğiniz bir düzenleyiciyi başlatır. Diyagramdaki her nesnenin kendi parametreleri vardır. Örneğin, editörde yazı tipi ayarlarını belirtirseniz, bunlar Grafana'daki veri görselleştirmeye uygulanacaktır.

Grafana+Zabbix: Üretim hattı operasyonunun görselleştirilmesi
Draw.io'da editör böyle görünüyor

Diyagramı kaydettikten sonra grafanada görünecek ve elemanları değiştirmek için kurallar oluşturabilirsiniz.

Parametrelerde () şunu belirtiyoruz:

  • Seçenekler—verileri kullanılacak metriğin kural adını, adını veya takma adını ayarlayın (Metriklere uygula). Veri toplama türü (Toplama) metriğin nihai sonucunu etkiler; dolayısıyla Son, son değerin seçileceği anlamına gelir; avg, sağ üst köşede seçilen döneme ait ortalama değerdir.
  • Eşikler - eşik değerleri parametresi, renk uygulamasının mantığını açıklar, yani seçilen renk, metrik verilere bağlı olarak diyagramdaki öğelere uygulanacaktır. Örneğimde metrik değeri “0” ise durum “Tamam”, renk yeşil, değer “>1” ise durum Kritik ve renk kırmızı olacaktır.
  • Renk/Araç İpucu Eşlemeleri" ve "Etiket/Metin Eşlemeleri" - bir şema öğesinin ve davranışı için bir senaryonun seçilmesi. İlk senaryoda nesnenin üzeri boyanacak, ikincisinde ise metrikten alınan verileri içeren bir metin bulunacaktır. Diyagramdaki bir nesneyi seçmek için devre işaretine ve ardından diyagrama tıklamanız gerekir.

Grafana+Zabbix: Üretim hattı operasyonunun görselleştirilmesi
Bu örnekte pompayı ve okunu çalışıyorsa kırmızıya, çalışmıyorsa yeşile boyadım.

Akış şeması eklentisini kullanarak tüm hattın bir diyagramını çizebildim:

  1. Birimlerin rengi durumlarına göre değişir
  2. kaplarda ürün bulunmadığına dair bir alarm var
  3. motor frekansı ayarı görüntülenir
  4. ilk tank doldurma/boşaltma hızı
  5. hat işleminin (toplu) döngü sayısı hesaplanır

Grafana+Zabbix: Üretim hattı operasyonunun görselleştirilmesi
Üretim hattı operasyonunun görselleştirilmesi

sonuç

Benim için en zor şey kontrolörlerden veri almaktı. Zabbix'in veri alma konusundaki çok yönlülüğü ve Grafana'nın eklentiler nedeniyle esnekliği sayesinde, kapsamlı bir üretim hattı izleme ekranının oluşturulması yalnızca birkaç gün sürdü. Görselleştirme, grafiklerin ve durum istatistiklerinin görüntülenmesini ve ayrıca ilgilenen herkesin web üzerinden kolay erişimini mümkün kıldı; tüm bunlar, darboğazların ve birimlerin verimsiz kullanımının hızlı bir şekilde tespit edilmesini mümkün kıldı.

Sonuç

Zabbix+Grafana kombinasyonunu gerçekten beğendim ve karmaşık ticari ürünleri programlamadan veya uygulamaya gerek kalmadan kontrolörlerden veya sensörlerden gelen verileri hızlı bir şekilde işlemeniz gerekiyorsa buna dikkat etmenizi öneririm. Elbette bu, profesyonel SCADA sistemlerinin yerini almayacak ancak tüm üretimin merkezi olarak izlenmesi için bir araç olarak yeterli olacaktır.

Kaynak: habr.com

Yorum ekle