Grafana+Zabbix: Visualisatie van de werking van de productielijn

In dit artikel wil ik mijn ervaring delen met het gebruik van open source-systemen Zabbix en Grafana om de werking van productielijnen te visualiseren. De informatie kan nuttig zijn voor mensen die op zoek zijn naar een snelle manier om verzamelde gegevens in industriële automatisering of IoT-projecten visueel weer te geven of te analyseren. Het artikel is geen gedetailleerde tutorial, maar eerder een concept voor een monitoringsysteem gebaseerd op open source software voor een fabriek.

Toolkit

Zabbix – we gebruiken het al heel lang om de IT-infrastructuur van de fabriek te monitoren. Het systeem bleek zo handig en universeel dat we er gegevens van productielijnen, sensoren en controllers in begonnen in te voeren. Hierdoor konden we alle meetgegevens op één plek verzamelen en eenvoudige grafieken maken van het hulpbronnenverbruik en de prestaties van de apparatuur, maar het ontbrak ons ​​echt aan analyses en mooie grafieken.

grafana is een krachtig hulpmiddel voor analyse en datavisualisatie. Met een groot aantal plug-ins kunt u gegevens uit verschillende bronnen (zabbix, clickhouse, influxDB) halen, deze direct verwerken (de gemiddelde waarde, som, verschil berekenen, enz.) en allerlei grafieken tekenen (van eenvoudige lijnen, snelheidsmeters, tabellen tot complexe diagrammen).

Draw.io – een dienst waarmee u in een online editor van een eenvoudig blokdiagram naar een plattegrond kunt tekenen. Er zijn veel kant-en-klare sjablonen en getekende objecten. Gegevens kunnen worden geëxporteerd naar alle belangrijke grafische formaten of XML.

Alles bij elkaar

Er zijn veel artikelen geschreven over het installeren en configureren van Grafana en Zabbix, ik zal je vertellen over de belangrijkste configuratiepunten.

Er wordt een “netwerkknooppunt” (host) gemaakt op de Zabbix-server, die eigenaar zal zijn van “data-elementen” (items) met statistieken van onze sensoren. Het is raadzaam om van tevoren over de namen van knooppunten en gegevenselementen na te denken en ze zo gestructureerd mogelijk te maken, aangezien we ze vanuit grafana zullen benaderen via reguliere expressies. Deze aanpak is handig omdat u met één verzoek gegevens uit een groep elementen kunt verkrijgen.

Om grafana te configureren, moet je extra plug-ins installeren:

  • Zabbix door Alexander Zobnin (alexanderzobnin-zabbix-app) – integratie met zabbix
  • natel-discrete-panel – plug-in voor discrete visualisatie op een horizontale grafiek
  • pierosavi-imageit-panel – plug-in voor het weergeven van gegevens bovenop uw afbeelding
  • agenty-flowcharting-panel – plug-in voor dynamische visualisatie van een diagram van draw.io

De integratie met Zabbix zelf wordt geconfigureerd in grafana, menu-item ConfiguratieDatabronnenZabbix. Daar moet je het adres van de api zabbix-server opgeven, dit is wat ik heb http://zabbix.local/zabbix/api_jsonrpc.phpen log in met een wachtwoord voor toegang. Als alles correct is gedaan, verschijnt er bij het opslaan van de instellingen een melding met het api-versienummer: zabbix API-versie: 5.0.1

Een dashboard maken

Dit is waar de magie van Grafana en zijn plug-ins begint.

Natel-discrete-panel plug-in
We hebben gegevens over de status van de motoren op de lijnen (werkend = 1, niet werkend = 0). Met behulp van de discrete grafiek kunnen we een schaal tekenen die laat zien: de status van de motor, hoeveel minuten/uren of % hij heeft gewerkt en hoe vaak hij is gestart.

Grafana+Zabbix: Visualisatie van de werking van de productielijn
Visualisatie van motorstatussen

Naar mijn mening is dit een van de beste grafieken voor het visualiseren van hardwareprestaties. Je ziet meteen hoe lang hij inactief is geweest en in welke modi hij vaker werkt. Er kunnen veel gegevens zijn, het is mogelijk om ze samen te voegen in bereiken, ze te transformeren in waarden (als de waarde “1” is, geef deze dan weer als “AAN”)

Plug-in pierosavi-imageit-panel

Imageit is handig in gebruik wanneer u al een getekend schema of plattegrond heeft waarop u data van sensoren wilt toepassen. In de visualisatie-instellingen moet u de URL naar de afbeelding opgeven en de benodigde sensorelementen toevoegen. Het element verschijnt in beeld en kan met de muis op de gewenste plek worden geplaatst.

Grafana+Zabbix: Visualisatie van de werking van de productielijn
Ovendiagram met temperatuur- en drukgegevens

Plug-in voor Agenty-stroomdiagrammen-paneel

Ik zou graag meer in detail willen praten over het maken van FlowCharting-visualisatie, omdat het een ongelooflijk functioneel hulpmiddel is. Hiermee kunt u een dynamisch geheugensteundiagram maken, waarvan de elementen zullen reageren op de waarden van metrieken (kleur veranderen, positie, naam, enz.).

Data ontvangen

Het creëren van elk visualisatie-element in Grafana begint met een verzoek om gegevens uit de bron, in ons geval is dat zabbix. Met behulp van query's moeten we alle statistieken verkrijgen die we in het diagram willen gebruiken. Metrische details zijn de namen van gegevenselementen in Zabbix; u kunt een individuele metriek opgeven of een set die is gefilterd door een reguliere expressie. In mijn voorbeeld bevat het veld Item de uitdrukking: “/(^regel 1)|(beschikbaarheid)|(courgette)/” - dit betekent: selecteer alle statistieken waarvan de naam strikt begint met “regel 1” of het woord “beschikbaarheid” bevat ' of bevat het woord 'courgette'

Grafana+Zabbix: Visualisatie van de werking van de productielijn
Een voorbeeld van het opzetten van een verzoek om gegevens over de eerstelijnsmotoren en de beschikbaarheid van grondstoffen

Data conversie

De brongegevens zijn mogelijk niet altijd in de vorm waarin we deze moeten weergeven. We hebben bijvoorbeeld gegevens van minuut tot minuut over het gewicht van een product in een container (kg) en we moeten de vulsnelheid in t/uur weergeven. Ik doe dit op de volgende manier: ik neem de gewichtsgegevens en transformeer deze met de grafana delta-functie, die het verschil tussen de metrische waarden berekent, zodat het huidige gewicht verandert in kg/min. Vervolgens vermenigvuldig ik met 0.06 om het resultaat in ton/uur te krijgen. Omdat de gewichtsmetriek in verschillende query's wordt gebruikt, geef ik er een nieuwe alias voor op (setAlias) en gebruik ik deze in de visualisatieregel.

Grafana+Zabbix: Visualisatie van de werking van de productielijn
Voorbeeld van het gebruik van de parameter delta en multiplier en het hernoemen van de metriek in een query

Hier is nog een voorbeeld van gegevensconversie: ik moest het aantal batches tellen (start van de cyclus = starten van de motor). De metriek wordt berekend op basis van de motorstatus "lijn 1 - pomp pomp uit tank 1 (status)". Transformatie: we veranderen de gegevens van de oorspronkelijke metriek met de deltafunctie (verschil van waarden), zodat de metriek de waarde “+1” zal hebben voor het starten van de motor, “-1” voor het stoppen en “0” als de motor dat doet zijn status niet veranderen. Vervolgens verwijder ik alle waarden kleiner dan 1 en tel ze op. Het resultaat is het aantal motorstarts.

Grafana+Zabbix: Visualisatie van de werking van de productielijn
Een voorbeeld van het converteren van gegevens van de huidige status naar het aantal starts

Nu over de visualisatie zelf

In de weergave-instellingen bevindt zich een knop "Teken bewerken", deze start een editor waarin u een diagram kunt tekenen. Elk object in het diagram heeft zijn eigen parameters. Als u bijvoorbeeld lettertype-instellingen opgeeft in de editor, worden deze toegepast op de datavisualisatie in Grafana.

Grafana+Zabbix: Visualisatie van de werking van de productielijn
Zo ziet de editor eruit in Draw.io

Nadat u het diagram heeft opgeslagen, verschijnt het in de grafana en kunt u regels maken voor het wijzigen van elementen.

In parameters() specificeren we:

  • Opties: stel de regelnaam, de naam of de alias in van de metriek waarvan de gegevens worden gebruikt (Toepassen op metrieken). Het type gegevensaggregatie (aggregatie) is van invloed op het eindresultaat van de metriek. Laatste betekent dus dat de laatste waarde wordt geselecteerd. Gem. is de gemiddelde waarde voor de geselecteerde periode in de rechterbovenhoek.
  • Drempels - de parameter drempelwaarden beschrijft de logica van kleurtoepassing, dat wil zeggen dat de geselecteerde kleur wordt toegepast op elementen in het diagram, afhankelijk van de metrische gegevens. In mijn voorbeeld: als de statistische waarde '0' is, is de status 'Ok', is de kleur groen. Als de waarde '>1' is, is de status Kritiek en is de kleur rood.
  • Kleur/Tooltip-toewijzingen" en "Label/Tekst-toewijzingen" - selecteren van een schema-element en een scenario voor zijn gedrag. In het eerste scenario wordt het object overschilderd, in het tweede scenario staat er tekst op met gegevens uit de metriek. Om een ​​object in het diagram te selecteren, klikt u op het circuitteken en vervolgens op het diagram.

Grafana+Zabbix: Visualisatie van de werking van de productielijn
In dit voorbeeld schilder ik de pomp en de pijl rood als hij werkt, en groen als hij niet werkt.

Met behulp van de plug-in voor stroomdiagrammen kon ik een diagram van de hele lijn tekenen, waarop:

  1. de kleur van de eenheden verandert afhankelijk van hun status
  2. er is een alarm voor de afwezigheid van product in containers
  3. de motorfrequentie-instelling wordt weergegeven
  4. eerste tankvul-/dumsnelheid
  5. het aantal lijnbedrijfscycli (batch) wordt berekend

Grafana+Zabbix: Visualisatie van de werking van de productielijn
Visualisatie van de werking van de productielijn

Resultaat

Het moeilijkste voor mij was het verkrijgen van gegevens van de controllers. Dankzij de veelzijdigheid van Zabbix op het gebied van het ontvangen van gegevens en de flexibiliteit van Grafana dankzij plug-ins, duurde het slechts een paar dagen om een ​​uitgebreid monitoringscherm voor de productielijn te creëren. Visualisatie maakte het mogelijk om grafieken en statusstatistieken te bekijken, plus gemakkelijke toegang via internet voor alle geïnteresseerden - dit alles maakte het mogelijk om snel knelpunten en inefficiënt gebruik van eenheden te identificeren.

Conclusie

Ik vond de combinatie Zabbix+Grafana erg leuk en ik raad aan er aandacht aan te besteden als je snel gegevens van controllers of sensoren moet verwerken zonder complexe commerciële producten te programmeren of te implementeren. Uiteraard zal dit de professionele SCADA-systemen niet vervangen, maar het zal voldoende zijn als hulpmiddel voor gecentraliseerde monitoring van de gehele productie.

Bron: www.habr.com

Voeg een reactie