Grafana+Zabbix: Visualisering af produktionslinjen

I denne artikel vil jeg dele min erfaring med at bruge open source Zabbix og Grafana systemer til at visualisere arbejdet med produktionslinjer. Oplysningerne kan være nyttige for dem, der leder efter en hurtig måde at visuelt vise eller analysere de indsamlede data i industriel automatisering eller IoT-projekter. Artiklen er ikke en detaljeret vejledning, men snarere et koncept for et overvågningssystem baseret på open source-software til en produktionsvirksomhed.

værktøjer

Zabbix – vi har brugt det i lang tid til at overvåge anlæggets it-infrastruktur. Systemet viste sig at være så praktisk og alsidigt, at vi begyndte at indtaste data fra produktionslinjer, sensorer og controllere i det. Dette gjorde det muligt for os at samle alle metriske data ét sted, lave simple grafer over ressourceforbrug og udstyrs ydeevne, men vi manglede virkelig analyser og smukke grafer.

grafana er et kraftfuldt værktøj til analyse og datavisualisering. Et stort antal plugins giver dig mulighed for at tage data fra forskellige kilder (zabbix, clickhouse, influxDB), behandle dem i farten (beregn gennemsnit, sum, forskel osv.) og tegne alle slags grafer (fra simple linjer, speedometre , tabeller til komplekse diagrammer).

Draw.io - en tjeneste, der giver dig mulighed for at tegne en online editor fra et simpelt blokdiagram til en plantegning. Der er mange færdige skabeloner og tegnede objekter. Data kan eksporteres til alle større grafiske formater eller xml.

Sætte det hele sammen

Der er skrevet en masse artikler om, hvordan man installerer og konfigurerer Grafana og Zabbix, jeg vil tale om hovedpunkterne i konfigurationen.

En "netværksknude" (vært) oprettes på Zabbix-serveren, som vil eje "dataelementer" (element) med metrikker fra vores sensorer. Det er tilrådeligt at tænke over navnene på noder og dataelementer på forhånd og gøre dem så strukturerede som muligt, da vi får adgang til dem fra graphana gennem regulære udtryk. Denne tilgang er praktisk, fordi du kan få data fra en gruppe elementer med en enkelt anmodning.

For at konfigurere grafana skal du installere yderligere plugins:

  • Zabbix af Alexander Zobnin (alexanderzobnin-zabbix-app) - integration med zabbix
  • natel-discrete-panel - plugin til diskret visualisering på et vandret diagram
  • pierosavi-imageit-panel - plugin til at vise data oven på dit billede
  • agenty-flowcharting-panel - plugin til dynamisk diagramvisualisering fra draw.io

Integrationen med selve Zabbix er konfigureret i grafana, menupunkt KonfigurationDatakilderZabbix. Der skal du angive api-adressen på zabbix-serveren, jeg har denne http://zabbix.local/zabbix/api_jsonrpc.php, og et login med en adgangskode for adgang. Hvis alt er gjort korrekt, når du gemmer indstillingerne, vil der være en meddelelse med api-versionsnummeret: zabbix API version: 5.0.1

Oprettelse af et Dashboard

Det er her selve magien ved grafana og dens plugins begynder.

natel-discrete-panel plugin
Vi har data om status for motorer på linjerne (fungerer = 1, fungerer ikke =0). Ved hjælp af den diskrete graf kan vi tegne en skala, der viser: motorens status, hvor mange minutter/timer eller % den har arbejdet, og hvor ofte den er blevet startet.

Grafana+Zabbix: Visualisering af produktionslinjen
Visualisering af motorstatus

Efter min mening er dette en af ​​de bedste grafer til at visualisere hardwareydelse. Du kan med det samme se, hvor længe den er inaktiv, i hvilke tilstande den fungerer oftere. Der kan være mange data, det er muligt at aggregere dem efter intervaller, konvertere efter værdier (hvis værdien er "1", så vis som "ON")

pierosavi-imageit-panel plugin

Imageit er praktisk at bruge, når du allerede har et tegnet diagram eller plan over det rum, hvor du vil anvende data fra sensorer. I visualiseringsindstillingerne skal du angive url-adressen til billedet og tilføje de sensorelementer, du har brug for. Elementet vises på billedet og kan placeres det rigtige sted med musen.

Grafana+Zabbix: Visualisering af produktionslinjen
Skema af ovnen med temperatur- og trykmålinger

agenty-flowcharting-panel plugin

Jeg vil gerne fortælle dig mere om at lave en FlowCharting-visualisering, da det er et utroligt funktionelt værktøj. Det giver dig mulighed for at lave en dynamisk mnemonic, hvis elementer vil reagere på værdierne af metrikken (skift farve, position, navn osv.).

Henter data

Oprettelsen af ​​ethvert visualiseringselement i grafana begynder med en anmodning om data fra kilden, i vores tilfælde er det zabbix. Ved at bruge forespørgsler skal vi få alle de målinger, som vi vil bruge i diagrammet. Metriske detaljer er navnene på dataelementer i Zabbix, du kan angive både en separat metrik og et sæt med filtrering gennem et regulært udtryk. I mit eksempel indeholder varefeltet udtrykket: "/(^linje 1)|(tilgængelighed)|(zucchini)/" - dette betyder: vælg alle metrics, hvis navn strengt taget begynder med "linje 1" eller indeholder ordet "tilgængelighed" " eller indeholder ordet "zucchini"

Grafana+Zabbix: Visualisering af produktionslinjen
Et eksempel på opsætning af en anmodning om data om motorerne i den første linje og tilgængeligheden af ​​råvarer

Datakonvertering

Kildedataene er muligvis ikke altid i den form, som vi skal vise dem i. For eksempel har vi minut-for-minut-data om vægten af ​​et produkt i en beholder (kg), og vi ønsker at vise påfyldningshastigheden i t/h. Jeg gør det på denne måde: Jeg tager vægtdataene og konverterer dem med delta graphana-funktionen, som beregner forskellen mellem de metriske værdier, så den aktuelle vægt omregnes til kg/min. Så gange jeg med 0.06 for at bringe resultatet til tons/time. Da vægtmetrikken bruges i flere forespørgsler, giver jeg den et nyt alias (setAlias) og bruger den i gengivelsesreglen.

Grafana+Zabbix: Visualisering af produktionslinjen
Et eksempel på brug af deltaparameteren og en multiplikator og omdøbning af en metrik i en forespørgsel

Her er et andet eksempel på datatransformation: Jeg havde brug for at beregne antallet af batches (cyklusstart = motorstart). Metrikken beregnes ud fra motorstatus "linje 1 - tankpumpe 1 (status)". Transformation: vi ændrer dataene for den oprindelige metrik med deltafunktionen (værdiforskel), så metrikken vil have værdien "+1" for at starte motoren, "-1" for at stoppe og "0", når motoren ikke ændre dens status. Så fjerner jeg alle værdier mindre end 1 og summerer dem op. Resultatet er antallet af motorstarter.

Grafana+Zabbix: Visualisering af produktionslinjen
Eksempel på konvertering af data fra aktuel status til antal starter

Nu om selve visualiseringen

I skærmindstillingerne er der en knap "Rediger tegning", den starter en editor, hvor du kan tegne et diagram. Hvert objekt på diagrammet har sine egne parametre. For eksempel, hvis du angiver skrifttypeindstillinger i editoren, vil de blive anvendt til datavisualisering i grafana.

Grafana+Zabbix: Visualisering af produktionslinjen
Sådan ser editoren ud i Draw.io

Efter at have gemt skemaet, vises det i graphana, og det vil være muligt at oprette regler for ændring af elementer.

I parametrene () angiver vi:

  • Indstillinger - indstil navnet på reglen (Regelnavn), navnet eller aliaset på den metrik, hvis data vil blive brugt (Anvend på metrics). Typen af ​​dataaggregering (Aggregation) påvirker det endelige resultat af metrikken, så Last betyder, at den sidste værdi vil blive valgt, avg betyder gennemsnitsværdien for den valgte periode i øverste højre hjørne.
  • Tærskelværdier - parameter for tærskelværdi, beskriver logikken i farveanvendelse, det vil sige, at den valgte farve vil blive anvendt på elementerne på diagrammet, afhængigt af de metriske data. I mit eksempel, hvis metrikværdien er "0", vil status være "Ok", farven vil være grøn, hvis værdien er ">1", vil status være Kritisk, og farven vil være rød.
  • Farve/Tooltip Mappings” og “Label/Text Mappings” — valg af et kredsløbselement og dets adfærdsscenarie. I det første scenarie vil objektet blive malet over, i det andet - det vil have tekst med data fra metrikken. For at vælge et objekt på diagrammet skal du trykke på kredsløbstegnet og klikke på diagrammet med musen.

Grafana+Zabbix: Visualisering af produktionslinjen
I dette eksempel maler jeg pumpen og dens pil rød, hvis den virker, og grøn, hvis den ikke gør det.

Ved hjælp af flowcharting-plugin'et lykkedes det mig at tegne et diagram over hele linjen, hvorpå:

  1. farven på aggregaterne ændres i henhold til deres status
  2. der er alarm for manglende produkt i beholdere
  3. motorfrekvensindstillingen vises
  4. fylde/tømningshastighed for den første tank
  5. antallet af linjedriftscyklusser (batch) tælles

Grafana+Zabbix: Visualisering af produktionslinjen
Visualisering af produktionslinjen

Outcome

Det sværeste for mig var at få data fra controllerne. Takket være Zabbix' alsidighed med hensyn til dataindsamling og fleksibiliteten af ​​Grafana gennem plugins, tog det kun et par dage at skabe en omfattende skærm til overvågning af produktionslinjen. Visualiseringen gjorde det muligt at se grafer og statusstatistikker, plus nem adgang via nettet til alle interesserede - alt dette gjorde det muligt hurtigt at identificere flaskehalse og ineffektiv brug af aggregater.

Konklusion

Jeg kunne virkelig godt lide Zabbix + Grafana-pakken, og jeg anbefaler at være opmærksom på den, hvis du hurtigt skal behandle data fra controllere eller sensorer uden at programmere eller implementere komplekse kommercielle produkter. Dette vil naturligvis ikke erstatte professionelle SCADA-systemer, men det vil være nok som et værktøj til centraliseret overvågning af hele produktionen.

Kilde: www.habr.com

Tilføj en kommentar