Grafana+Zabbix: A gyártósor működésének vizualizálása

Ebben a cikkben szeretném megosztani tapasztalataimat az open source Zabbix és Grafana rendszerek használatáról a gyártósorok működésének vizualizálására. Az információ hasznos lehet azok számára, akik gyors módot keresnek az összegyűjtött adatok vizuális megjelenítésére vagy elemzésére az ipari automatizálás vagy IoT projektekben. A cikk nem részletes útmutató, inkább egy monitorozó rendszer koncepciója, amely nyílt forráskódú szoftvereken alapul egy gyártó cégnél.

Eszköztár

Zabbix – ezt régóta használjuk a gyár IT infrastrukturájának monitorozására. A rendszer annyira kényelmes és univerzális lett, hogy elkezdtük belevinni az adatokat a gyártósorokról, érzékelőkről és vezérlőkről. Ez lehetővé tette számunkra, hogy minden metrika adatot egy helyen gyűjtsünk, egyszerű grafikonokat készítsünk az erőforrások fogyasztásáról és a berendezések teljesítményéről, de nagyon hiányzott az analitika és a szép grafikonok.

Grafanába – ez egy rendkívül erőteljes eszköz az adatelemzéshez és vizualizációhoz. Rengeteg bővítmény lehetővé teszi, hogy adatokat nyerjünk különböző forrásokból (zabbix, clickhouse, influxDB), azokat valós időben feldolgozzuk (átlag, összeg, különbség stb. számítása) és különféle grafikonokat rajzoljunk (egyszerű vonalaktól, sebességmérőktől, táblázatoktól kezdve összetett diagramokig).

Draw.io – egy szolgáltatás, amely lehetővé teszi, hogy online szerkesztőben egyszerű folyamatábrától kezdve akár helyiségek tervét is megrajzoljuk. Rengeteg kész sablon és megrajzolt objektum áll rendelkezésre. Az adatokat minden fő grafikus formátumba vagy xml-be exportálhatjuk.

Miután megoldottuk a hitelesítést, kezdhetjük! A végső

Sok cikk íródott a Grafana és Zabbix telepítéséről és konfigurálásáról, én a konfiguráció alapvető szempontjait fogom bemutatni.

A Zabbix-en szerveren létrejön egy "hálózati csomópont" (host), amelyhez hozzácsatolják az "adat elemeket" (item) a mi érzékelőinktől származó metrikákkal. A csomópontok és az adat elemek neveit célszerű előre megtervezni, és a lehető legstrukturáltabbá tenni, mivel ezekhez a grafanától reguláris kifejezéseken keresztül fogunk hozzáférni. Ez a megközelítés azért előnyös, mert egyetlen lekérdezéssel adatokat kaphatunk egy csoport elemből.

A grafana beállításához további bővítmények telepítése szükséges:

  • Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) – Zabbix integráció
  • natel-discrete-panel – bővítmény a diszkrét vizualizációhoz vízszintes grafikonon
  • pierosavi-imageit-panel – bővítmény az adatok megjelenítésére a saját képünk felett
  • agenty-flowcharting-panel – dinamikus vizualizációs plugin a draw.io-ból készült diagramokhoz

Az integráció a Zabbix-szal a Grafanában állítható be, a Menübeállítások alatt található Data sources > Zabbix menüpontban. Itt meg kell adni a Zabbix szerver API címét, az enyém a következő: http://zabbix.local/zabbix/api_jsonrpc.php, valamint a belépéshez szükséges felhasználónevet és jelszót. Ha mindent helyesen állítottunk be, a beállítások mentésekor a következő üzenet jelenik meg a verziószámmal: Zabbix API version: 5.0.1

Dashboard létrehozása

Itt kezdődik a Grafana és a pluginjainak valódi varázslata.

natel-discrete-panel plugin
Adataink vannak a motorok állapotáról a vonalakon (működik = 1, nem működik = 0). A discrete diagram segítségével ábrázolhatjuk a skálát, amelyen látható: a motor állapota, mennyi ideig működött percekben / órákban vagy %, és hányszor indult el.

Grafana+Zabbix: A gyártósor működésének vizualizálása
A motorok állapotának vizualizálása

Szerintem ez az egyik legjobb diagram a berendezések teljesítményének vizualizálására. Azonnal látható, mennyi időt álltak meg, és milyen üzemmódokban működtek gyakrabban. Rengeteg adat rendelkezésre áll, van lehetőség aggregálni azokat tartományok szerint, értékek alapján átalakítani (ha az érték "1", akkor "BE"-ként ábrázolni)

pierosavi-imageit-panel plugin

Az Imageit könnyen használható, ha már van egy megrajzolt terv vagy elrendezés, amelyre az érzékelőkből származó adatokat szeretné elhelyezni. A vizualizáció beállításainál meg kell adni a kép URL címét, és hozzáadni a szükséges sensor elemeket. Az elem megjelenik a képen, és a kívánt helyre húzható az egérrel.

Grafana+Zabbix: A gyártósor működésének vizualizálása
A kemence diagramja hőmérsékleti és nyomásmérő metrikákkal

agenty-flowcharting-panel plugin

A FlowCharting vizualizálásáról szeretnék részletesebben mesélni, mivel ez egy hihetetlenül funkcionális eszköz. Lehetővé teszi dinamikus mnemoskémák létrehozását, amelyek elemei reagálnak a metrikák értékeire (szín, helyzet, név stb. változása).

Adatok lekérése

A vizualizációs elem létrehozása a Grafanában bármilyen adatforrásból, jelen esetben a Zabbixból, a lekérdezésekkel kezdődik. A kérdések segítségével meg kell szerezni az összes metrikát, amelyeket a diagramon szeretnénk használni. A metrikák az adatnevek Zabbixban, külön metrikát is megadhatunk, valamint tömeget is szűrhetünk reguláris kifejezésekkel. Az én példámban az Item mező tartalmazza a kifejezést: „/^(vonal 1)|(jelenlét)|(tök)/” — ez azt jelenti, hogy válasszuk az összes metrikát, amelynek neve pontosan „vonal 1”-től kezdődik, vagy tartalmazza a „jelenlét” szót, vagy a „tök” szót.

Grafana+Zabbix: A gyártósor működésének vizualizálása
Az első vonal motorjainak és az alapanyagoknak a lekérdezési példa beállítása.

Az adatok átalakítása

Az alapadatok nem mindig abban a formában állnak rendelkezésünkre, ahogyan meg kell őket jelenítenünk. Például, ha van percdatank a termék súlyáról a tárolóban (kg), és nekünk a töltési sebességet kell megjelenítenünk t/h-ban. Én ezt így csinálom: veszem a súlyadatokat, és a Grafana delta funkciójával átalakítom őket, ami kiszámolja a metrikák közötti különbséget, így a jelenlegi súly kg/perc-be alakul. Ezután 0.06-tal szorzom a végeredményt, hogy tonnára/órára átváltsam. Mivel a súlymetrikát több lekérdezésben használom, új álnév (setAlias) megadásával használom, és ezt fogom alkalmazni a vizualizációs szabályban.

Grafana+Zabbix: A gyártósor működésének vizualizálása
A delta paraméter, a szorzó és a metrika átnevezésének példája a lekérdezésben.

Itt van még egy példa az adatok átalakítására: számolnom kellett a keverések számát (a ciklus kezdete = a motor indítása). A metrika a motor állapota alapján számítódik: 'vonal 1 — szivattyú a 1-es tartályból (állapot)'. Az átalakítás során az alapmetrika adatait a delta funkció segítségével változtatjuk meg (értékek különbsége), így a metrikában a motorindítás esetén „+1”, leállítás esetén „-1”, amikor a motor nem változtatja meg az állapotát „0”-ként jelenik meg. Azután eltávolítom az 1-nél kisebb összes értéket, és összeadom őket. Az eredmény a motorindítások száma.

Grafana+Zabbix: A gyártósor működésének vizualizálása
A jelenlegi állapotból az indítások számának adatok átalakításának példája.

Most a vizualizációról.

A megjelenítési beállításoknál van egy 'Edit Draw' gomb, amely elindítja a szerkesztőt, ahol fel lehet rajzolni a diagramot. Minden objektumnak a diagramon vannak saját paraméterei. Például, ha beállítom a betűtípus konfigurációt a szerkesztőben – azok érvényesülni fognak a Grafanában az adatok vizualizálásánál.

Grafana+Zabbix: A gyártósor működésének vizualizálása
Így néz ki a szerkesztő a Draw.io-n

A séma mentése után megjelenik a Grafanában, és létre lehet hozni az elemek módosításának szabályait.

A paraméterek () közé beírjuk:

  • Options — a szabály neve (Rule name), a használandó metrika neve vagy álneve (Apply to metrics). Az adatok aggregációs típusa (Aggregation) befolyásolja a metrika végső eredményét, így például a Last — az utolsó értéket jelenti, az avg pedig a felső jobb sarokban kiválasztott időszak átlagos értékét.
  • Thresholds — a küszöbértékek paramétere, amely leírja a szín alkalmazásának logikáját, vagyis a választott szín a séma elemeire vonatkozik a metrikákkal kapcsolatos adatok függvényében. Például az én példámban a metrikák "0" értékénél az állapot "Ok" színű lesz, míg az ">1" értéknél a kritikus állapot színe piros.
  • Color/Tooltip Mappings és Label/Text Mappings — a séma elemének kiválasztása és működésének forgatókönyve. Az első forgatókönyvben az objektum színezve lesz, a másodikban pedig a metrikából származó adatok szövege jelenik meg rajta. Az objektum kiválasztásához a sémán meg kell nyomni a lánc jelét, majd kattintani kell a sémán.

Grafana+Zabbix: A gyártósor működésének vizualizálása
Ebben a példában pirosra festem a szivattyút és a nyílát, ha működik, és zöldre, ha nem.

A flowcharting bővítmény segítségével sikerült megrajzolnom az egész vonal séma képét, amelyben:

  1. megváltozik az aggregátumok színe a státuszuknak megfelelően
  2. jelzés van arra, hogy a termék hiányzik a tárolókban
  3. megjelenik a motorok frekvenciájának beállítása
  4. az első tartály feltöltési/ürítési sebessége
  5. számolja a gyártósor működési ciklusainak számát (keverések)

Grafana+Zabbix: A gyártósor működésének vizualizálása
A gyártósor működésének vizualizálása

Eredmény

Számomra a legnehezebb az adatok megszerzése volt az vezérlőktől. A Zabbix sokoldalúságának köszönhetően az adatok beszerzésében és a Grafana rugalmasságának a bővítmények révén, mindössze pár napra volt szükségem egy komplex gyártósor figyelő képernyő létrehozásához. A vizualizáció lehetővé tette a grafikonok és a státusz-statisztikák megtekintését, valamint a weben keresztül könnyű hozzáférést minden érdeklődő számára – mindez gyorsan lehetővé tette a szűk keresztmetszetek és az aggregátumok nem hatékony használatának gyors azonosítását.

Zárás

Nagyon tetszett a Zabbix+Grafana kombináció, és ajánlom, hogy figyeljen rá, ha gyorsan szeretné feldolgozni az adatokat vezérlőkből vagy érzékelőkből programozás vagy bonyolult kereskedelmi termékek bevezetése nélkül. Kétségtelen, hogy ez nem helyettesíti a professzionális SCADA rendszereket, de elegendő lesz a teljes gyártás központosított monitorozásának eszközeként.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster