Grafana+Zabbix: Visualisatie van de productie lijn

In dit artikel wil ik mijn ervaringen delen met het gebruik van open source systemen Zabbix en Grafana voor de visualisatie van de werking van productie-lijnen. Deze informatie kan nuttig zijn voor diegenen die op zoek zijn naar een snelle manier om verzamelde gegevens visueel weer te geven of te analyseren in industriƫle automatiserings- of IoT-projecten. Het artikel is geen gedetailleerde handleiding, maar eerder een concept van een monitoringsysteem, gebaseerd op opensource software voor de productie-industrie.

Toolkit

Zabbix – dit gebruiken we al geruime tijd voor het monitoren van de IT-infrastructuur van de fabriek. Het systeem bleek zo handig en veelzijdig te zijn dat we begonnen met het invoeren van gegevens van de productielijnen, sensoren en controllers. Dit stelde ons in staat om alle metrische gegevens op ƩƩn plek te verzamelen, eenvoudige grafieken van hulpbronnenverbruik en apparatuur prestaties te maken, maar we hadden echt behoefte aan analytics en mooie grafieken.

Grafana – dit is een krachtig instrument voor data-analyse en visualisatie. Een groot aantal plugins stelt ons in staat gegevens uit verschillende bronnen te halen (zabbix, clickhouse, influxDB), ze direct te verwerken (gemiddelden, sommen, verschillen, enz.) en allerlei grafieken te tekenen (van eenvoudige lijnen, snelheidsmeters, tabellen tot complexe diagrammen).

Draw.io – een service waarmee je in een online editor van een eenvoudige blokdiagram tot een plattegrond kunt tekenen. Er zijn veel kant-en-klare sjablonen en getekende objecten. Gegevens kunnen worden geĆ«xporteerd naar alle gangbare grafische formaten of xml.

Laten we alles samenvoegen.

Er zijn veel artikelen over het installeren en configureren van Grafana en Zabbix geschreven; ik zal de belangrijkste punten van de configuratie bespreken.

In Zabbix de server wordt een 'netwerknode' (host) aangemaakt, waaraan 'data-Items' (item) met metrische gegevens van onze sensoren zullen toebehoren. De namen van de nodes en data-items moeten van tevoren goed doordacht worden en zo gestructureerd mogelijk, aangezien we ze vanuit Grafana via reguliere expressies zullen aanspreken. Deze benadering is handig omdat we met ƩƩn verzoek gegevens van een groep elementen kunnen ophalen.

Voor de configuratie van Grafana zijn extra plugins vereist:

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

De integratie met Zabbix wordt ingesteld in Grafana, onder het menu ConfiguratieGegevensbronnenZabbix. Daar moet je het adres van de Zabbix API-server opgeven, dat is voor mij http://zabbix.local/zabbix/api_jsonrpc.php, en de inloggegevens met wachtwoord voor toegang. Als alles correct is gedaan, verschijnt er bij het opslaan van de instellingen een bericht met het versienummer van de API: Zabbix API-versie: 5.0.1

Dashboard aanmaken

Hier begint de magie van Grafana en zijn plugins.

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

Grafana+Zabbix: Visualisatie van de productie lijn
Visualisatie van motorstatussen

Naar mijn mening is dit een van de beste grafieken voor het visualiseren van de prestaties van apparatuur. Het is meteen duidelijk hoeveel tijd het apparaat stilstaat en in welke modus het het vaakst werkt. Er kunnen veel gegevens zijn, met mogelijkheden voor aggregatie over tijdsintervallen, transformatie op waardes (als de waarde '1' is, dan weergeven als 'AAN')

Plugin pierosavi-imageit-panel

Imageit is handig te gebruiken wanneer je al een getekend schema of plattekening hebt waar je gegevens van sensoren op wilt aanbrengen. In de visualisatie-instellingen moet je het URL-adres van de afbeelding opgeven en de gewenste sensorelementen toevoegen. Het element verschijnt op de afbeelding en kan met de muis op de gewenste plek worden geplaatst.

Grafana+Zabbix: Visualisatie van de productie lijn
Schema van de oven met temperatuur- en drukmetingen

Plugin agenty-flowcharting-panel

Ik wil graag dieper ingaan op het maken van visualisaties met FlowCharting, omdat dit een ongelooflijk functioneel hulpmiddel is. Het stelt je in staat om een dynamisch mnemonic-schema te maken, waarvan de elementen zullen reageren op de waarden van de indicatoren (kleur, positie, naam, enz. veranderen).

Gegevens ophalen

Het creĆ«ren van elk visualisatie-element in Grafana begint met het opvragen van gegevens uit de bron, in ons geval is dat Zabbix. Met behulp van queries moeten we alle metrics verkrijgen die we in het schema willen gebruiken. De metrics-specificaties zijn de namen van gegevenscomponenten in Zabbix; we kunnen zowel een enkele metric als meerdere metrics met filtering via reguliere expressies opgeven. In mijn voorbeeld bevat het veld Item de uitdrukking: "\/(*^lijn 1)|(aanwezigheid)|(courgette)\/" — dit betekent: selecteer alle metrics waarvan de naam begint met "lijn 1" of het woord "aanwezigheid" bevat of het woord "courgette" bevat.

Grafana+Zabbix: Visualisatie van de productie lijn
Voorbeeld van het instellen van een query voor gegevens over motoren van de eerste lijn en de aanwezigheid van grondstoffen.

Gegevenstransformatie

De oorspronkelijke gegevens zijn niet altijd in de vorm waarin we ze willen weergeven. Bijvoorbeeld, we hebben elke minuut gegevens over het gewicht van een product in een container (kg), en we moeten de vul snelheid weergeven in ton/uur. Ik doe dit als volgt: ik neem de gewicht gegevens en transformeer ze met de Grafana-functie delta, die het verschil tussen de metricwaarden berekent, zodat het huidige gewicht omgezet wordt naar kg/min. Vervolgens vermenigvuldig ik met 0.06 om het resultaat naar ton/uur om te rekenen. Aangezien de gewicht metric in verschillende queries gebruikt wordt, geef ik het een nieuwe alias (setAlias) en zal die gebruiken in de visualisatieregel.

Grafana+Zabbix: Visualisatie van de productie lijn
Voorbeeld van het gebruik van de delta parameter, vermenigvuldiger en het hernoemen van de metric in de query.

Hier is nog een voorbeeld van gegevens transformeren: ik moest het aantal batches tellen (begin van de cyclus = motor starten). De metric wordt berekend op basis van de status van de motor "lijn 1 — pomp die uit tank 1 pompt (status)". Transformatie: de gegevens van de oorspronkelijke metric veranderen we met de delta-functie (verschil tussen waarden), zodat de metric de waarde Ā«+1Ā» heeft voor het starten van de motor, Ā«-1Ā» voor het stoppen en Ā«0Ā» wanneer de motor zijn status niet verandert. Vervolgens verwijder ik alle waarden onder 1 en tel ze op. Het resultaat is het aantal motorstarts.

Grafana+Zabbix: Visualisatie van de productie lijn
Voorbeeld van het transformeren van gegevens van de huidige status naar het aantal starts.

Laten we het nu over de visualisatie hebben.

In de weergave-instellingen is er een knop "Edit Draw", deze opent de editor waarin je een schema kunt tekenen. Elk object in het schema heeft zijn eigen parameters. Bijvoorbeeld, als je de lettertype-instellingen in de editor opgeeft, worden deze toegepast op de datavisualisatie in Grafana.

Grafana+Zabbix: Visualisatie van de productie lijn
Zo ziet de editor in Draw.io eruit

Na het opslaan van het schema verschijnt het in Grafana, en kun je regels voor het wijzigen van elementen maken.

In de parameters () geven we aan:

  • Options — geeft de naam van de regel (Rule name) op, de naam of alias van de metriek waarvan de gegevens worden gebruikt (Apply to metrics). Het type data-aggregatie (Aggregation) beĆÆnvloedt het uiteindelijke resultaat van de metriek, waarbij Last betekent dat de laatste waarde wordt gekozen, en avg het gemiddelde over de periode die in de rechterbovenhoek is gekozen.
  • Thresholds — de parameter voor drempelwaarden, beschrijft de logica van kleurtoepassing, dat wil zeggen de gekozen kleur zal worden toegepast op elementen in het schema afhankelijk van de gegevens van de metriek. In mijn voorbeeld, bij een metriekwaarde van '0' — status 'Ok' zal de kleur groen zijn, bij een waarde van '>1' is de status Critical en de kleur zal rood zijn.
  • Color/Tooltip Mappings en Label/Text Mappings — de keuze van het schema-element en het gedragsscenario ervan. In het eerste scenario zal het object gekleurd worden, in het tweede scenario zal er tekst met gegevens uit de metriek op verschijnen. Om een object in het schema te selecteren, moet je op het kettingsymbool klikken en met de muis op het schema klikken.

Grafana+Zabbix: Visualisatie van de productie lijn
In dit voorbeeld kleur ik de pomp en de pijl rood als hij aan staat en groen als hij uit staat.

Met behulp van de flowcharting-plugin kon ik het schema van de hele lijn tekenen, waarop:

  1. de kleur van de aggregaten verandert in overeenstemming met hun status
  2. er een alarm is voor het ontbreken van product in de containers
  3. de instelling van de motorfrequenties wordt weergegeven
  4. de snelheid van het vullen/resetten van de eerste tank
  5. het aantal werkcycli van de lijn (mixes) wordt geteld

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

Resultaat

Het moeilijkste voor mij was om gegevens van de controllers te verkrijgen. Dankzij de veelzijdigheid van Zabbix voor het verkrijgen van gegevens en de flexibiliteit van Grafana door middel van plugins, was het slechts een paar dagen nodig om een uitgebreid monitoringscherm voor de productielijn te creĆ«ren. De visualisatie gaf de mogelijkheid om grafieken en statistieken van de toestanden te bekijken, plus gemakkelijke toegang via het web voor alle belanghebbenden – dit alles maakte het mogelijk om snel knelpunten en inefficiĆ«nte inzet van aggregaten te identificeren.

Conclusie

Ik was erg onder de indruk van de combinatie van Zabbix en Grafana en ik raad aan hier aandacht aan te besteden als je gegevens van controllers of sensoren snel wilt verwerken zonder te programmeren of ingewikkelde commerciƫle producten te implementeren. Het zal zeker geen professionele SCADA-systemen vervangen, maar het is voldoende als instrument voor gecentraliseerde monitoring van de gehele productie.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster