Grafana+Zabbix: Visualisering av produktionslinjens arbete

I den hÀr artikeln vill jag dela med mig av erfarenheten av att anvÀnda open source-systemen Zabbix och Grafana för att visualisera arbetet i produktionslinjer. Informationen kan vara anvÀndbar för dem som söker ett snabbt sÀtt att visuellt visa eller analysera insamlade data i projekt inom industriell automatisering eller IoT. Artikeln Àr inte en detaljerad guide, utan snarare en konceptuell översikt av ett övervakningssystem baserat pÄ öppen programvara för tillverkningsföretag.

VerktygslÄda

Zabbix – den har vi anvĂ€nt lĂ€nge för att övervaka IT-infrastrukturen pĂ„ fabriken. Systemet visade sig vara sĂ„ praktiskt och mĂ„ngsidigt att vi började mata in data frĂ„n produktionslinjer, sensorer och kontroller. Detta gjorde att vi kunde samla alla metrikdata pĂ„ ett stĂ€lle, skapa enkla diagram över resursanvĂ€ndning och utrustningens prestanda, men vi saknade verkligen analys och vackra diagram.

Grafana – detta Ă€r ett mycket kraftfullt verktyg för analys och visualisering av data. Ett stort antal tillĂ€gg tillĂ„ter att hĂ€mta data frĂ„n olika kĂ€llor (zabbix, clickhouse, influxDB), bearbeta dem i realtid (berĂ€kna medelvĂ€rde, summa, skillnad, etc.) och rita olika typer av diagram (frĂ„n enkla linjer, hastighetsmĂ€tare, tabeller till komplexa scheman).

Draw.io – en tjĂ€nst som gör det möjligt att rita allt frĂ„n en enkel flödesschema till efterritningar i en online-redigerare. Det finns mĂ„nga fĂ€rdiga mallar och ritade objekt. Data kan exporteras till alla vanliga grafiska format eller xml.

Sammanfatta allt

Det finns mÄnga artiklar om hur man installerar och konfigurerar Grafana och Zabbix, jag kommer att berÀtta om de viktigaste konfigurationselementen.

I Zabbix servern skapas en "nÀtverksnod" (host) som kommer att Àga "dataelement" (item) med metrik frÄn vÄra sensorer. Namnen pÄ noder och dataelement bör planeras i förvÀg och göras sÄ strukturerade som möjligt, eftersom vi kommer att referera till dem frÄn Grafana via reguljÀra uttryck. Denna metod Àr praktisk eftersom man med en enda förfrÄgan kan hÀmta data frÄn en grupp element.

För att konfigurera Grafana krÀvs att extra tillÀgg installeras:

  • Zabbix av Alexander Zobnin (alexanderzobnin-zabbix-app) – integration med Zabbix
  • natel-discrete-panel – tillĂ€gg för diskret visualisering pĂ„ ett horisontellt diagram
  • pierosavi-imageit-panel – tillĂ€gg för att visa data över sin egen bild
  • agenty-flowcharting-panel – en plugin för dynamisk visualisering av diagram frĂ„n draw.io

SjÀlva integrationen med Zabbix stÀlls in i Grafana, menyn KonfigurationData kÀllorZabbix. DÀr behöver du ange adressen till Zabbix-serverns API, min Àr http://zabbix.local/zabbix/api_jsonrpc.php, och anvÀndarnamn och lösenord för Ätkomst. Om allt Àr korrekt gjort kommer det att visas ett meddelande med versionsnumret för API:et: Zabbix API version: 5.0.1

Skapa Dashboard

HÀr börjar den verkliga magin med Grafana och dess plugins.

Plugin natel-discrete-panel
Vi har data om motorernas status pÄ linjerna (funktioner = 1, fungerar inte = 0). Med hjÀlp av grafiken discrete kan vi rita en skala som visar: motorstatus, hur lÀnge den har varit igÄng i minuter/timmar eller %, och hur ofta den har startat.

Grafana+Zabbix: Visualisering av produktionslinjens arbete
Visualisering av motorernas status

Enligt min mening Àr detta en av de bÀsta graferna för att visualisera utrustningens prestanda. Man ser direkt hur mycket tid den Àr nere, i vilka lÀgen den oftare arbetar. Det kan finnas mycket data, med möjlighet till aggregering över intervall, omformatering av vÀrden (om vÀrdet Àr '1', visa som 'ON')

Plugin pierosavi-imageit-panel

Imageit Àr lÀtt att anvÀnda nÀr du redan har ett ritat diagram eller plan av rummet, dÀr du vill applicera data frÄn sensorer. I visualiseringsinstÀllningarna behöver du ange URL-adressen till bilden och lÀgga till de sensor-element du behöver. Elementet visas pÄ bilden och kan placeras pÄ rÀtt stÀlle med musen.

Grafana+Zabbix: Visualisering av produktionslinjens arbete
Schema över ugnen med temperatur- och tryckmÄtt

Plugin agenty-flowcharting-panel

Jag skulle vilja berÀtta mer detaljerat om att skapa visualiseringar med FlowCharting, eftersom det Àr ett otroligt funktionellt verktyg. Det gör det möjligt att skapa en dynamisk mnemoschema, vars element reagerar pÄ mÀtvÀrden (Àndra fÀrg, position, namn etc.).

HĂ€mta data

Att skapa nĂ„gon visualiseringselement i Grafana börjar med att hĂ€mta data frĂ„n kĂ€llan, i vĂ„rt fall Zabbix. Genom förfrĂ„gningar mĂ„ste vi fĂ„ alla metrikvĂ€rden vi vill anvĂ€nda i schemat. Metrikens kvalifikationer Ă€r namnen pĂ„ dataelementen i Zabbix, och vi kan ange antingen enskilda metrikvĂ€rden eller flera med filtrering via reguljĂ€ra uttryck. I mitt exempel innehĂ„ller fĂ€ltet Item uttrycket: "\/(^linje 1)|(nĂ€rvaro)|(zucchini)\/" — detta innebĂ€r: vĂ€lj alla metrikvĂ€rden vars namn strikt börjar med "linje 1" eller innehĂ„ller ordet "nĂ€rvaro" eller innehĂ„ller ordet "zucchini".

Grafana+Zabbix: Visualisering av produktionslinjens arbete
Exempel pÄ konfiguration av förfrÄgan om motorerna i första linjen och förekomsten av rÄmaterial.

Datatransformation

Ursprungsdata kan ibland vara i en form som inte Àr lÀmplig för visning. Till exempel har vi minutdata om vikten av produkten i en behÄllare (kg), och vi behöver visa pÄfyllnadshastigheten i t/tim. Jag gör detta pÄ följande sÀtt: jag tar viktdatan och omvandlar den med Grafana-funktionen delta, som berÀknar skillnaden mellan metrikvÀrden, sÄ den aktuella vikten omvandlas till kg/min. Sedan multiplicerar jag med 0,06 för att konvertera resultatet till ton/tim. Eftersom viktemetriken anvÀnds i flera förfrÄgningar, anger jag ett nytt alias för den (setAlias) och kommer att anvÀnda det i visualiseringens regel.

Grafana+Zabbix: Visualisering av produktionslinjens arbete
Exempel pÄ anvÀndning av parametern delta och multiplikatorn samt ombenÀmning av metrik i förfrÄgan.

HĂ€r Ă€r ett annat exempel pĂ„ dataomvandling: jag behövde rĂ€kna antalet blandningar (cykelstart = motorstart). Metriken berĂ€knas baserat pĂ„ motorstatusen "linje 1 — pump som tömmer tank 1 (status)". Omvandlingen: vi Ă€ndrar datan för ursprungsmetriken med funktionen delta (skillnad i vĂ€rden), sĂ„ i metrik kommer det att finnas vĂ€rdet "+1" för motorstart, "-1" för stopp och "0" nĂ€r motorn inte Ă€ndrar sin status. Sedan tar jag bort alla vĂ€rden under 1 och summerar dem. Resultatet blir antalet motorstarter.

Grafana+Zabbix: Visualisering av produktionslinjens arbete
Exempel pÄ dataomvandling frÄn aktuell status till antalet starter.

Nu om sjÀlva visualiseringen.

I visningsinstĂ€llningarna finns det en knapp "Edit Draw", den startar en redigerare dĂ€r man kan rita upp ett schema. Varje objekt i schemat har sina egna parametru. Om man till exempel anger typsnittsinstĂ€llningar i redigeraren – kommer de att tillĂ€mpas pĂ„ datavisualiseringen i Grafana.

Grafana+Zabbix: Visualisering av produktionslinjens arbete
SÄ hÀr ser redigeraren ut i Draw.io

Efter att schemat har sparats kommer det att dyka upp i Grafana och man kan börja skapa regler för att Àndra element.

I instÀllningarna () anger vi:

  • Options — namnet pĂ„ regeln (Rule name), namnet eller pseudonymen pĂ„ mĂ€tvĂ€rdet som kommer att anvĂ€ndas (Apply to metrics). Typen av databasaggregat (Aggregation) pĂ„verkar resultatet av mĂ€tningen; sĂ„ Last — innebĂ€r att det sista vĂ€rdet vĂ€ljs, avg — Ă€r det genomsnittliga vĂ€rdet för perioden som valts i det övre högra hörnet.
  • Thresholds — parametrar för tröskelvĂ€rdena beskriver logiken för att tillĂ€mpa fĂ€rger, det vill sĂ€ga den valda fĂ€rgen kommer att tillĂ€mpas pĂ„ elementen i diagrammet beroende pĂ„ mĂ€tvĂ€rdesdata. I mitt exempel, nĂ€r mĂ€tvĂ€rdet Ă€r "0" — status "Ok" kommer fĂ€rgen att vara grön, medan vĂ€rdet ">1" innebĂ€r Critical och fĂ€rgen kommer att vara röd.
  • Color/Tooltip Mappings och Label/Text Mappings — valet av element i diagrammet och dess beteende. I det första scenariot kommer objektet att fĂ€rgas, i det andra — det kommer att finnas text med uppgifter frĂ„n mĂ€tvĂ€rdet. För att vĂ€lja objektet i diagrammet behöver man trycka pĂ„ kedjeikonen och klicka pĂ„ diagrammet.

Grafana+Zabbix: Visualisering av produktionslinjens arbete
I det hÀr exemplet fÀrgar jag pumpen och dess pil röd om den fungerar och grön om den inte gör det.

Med hjÀlp av flowcharting-plugin lyckades jag rita schemat för hela linjen, dÀr:

  1. fÀrgen pÄ aggregatet Àndras beroende pÄ deras status.
  2. det finns en signal om att produkten saknas i tankarna.
  3. instÀllningen av motorernas frekvenser visas.
  4. fyllnings-/tömningstakten för den första tanken.
  5. antalet cykler för linjens drift (bryggor) berÀknas.

Grafana+Zabbix: Visualisering av produktionslinjens arbete
Visualisering av produktionslinjens arbete.

Resultat

Det svĂ„raste för mig var att hĂ€mta data frĂ„n kontrollerna. Tack vare Zabbix flexibilitet för datainsamling och Grafanas anpassningsbarhet via plugins tog det endast ett par dagar att skapa en komplett monitoreringsskĂ€rm för produktionslinjen. Visualiseringen möjliggjorde granskning av diagram och statistik över tillstĂ„nd, plus enkel tillgĂ„ng via webben för alla intresserade — allt detta gjorde det möjligt att snabbt identifiera flaskhalsar och ineffektiv anvĂ€ndning av aggregaten.

Slutsats

Jag gillade verkligen kombinationen av Zabbix och Grafana och jag rekommenderar att ni tittar nÀrmare pÄ den om ni behöver snabbt bearbeta data frÄn kontroller eller sensorer utan programmering eller implementering av komplexa kommersiella produkter. SjÀlvklart kommer det inte att ersÀtta professionella SCADA-system, men det Àr tillrÀckligt som ett verktyg för centraliserad övervakning av hela produktionen.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster