Grafana + Zabbix: Fisualisaasje fan 'e produksjeline

Yn dit artikel wol ik myn ûnderfining diele mei it brûken fan iepen boarne Zabbix- en Grafana-systemen om it wurk fan produksjelinen te visualisearjen. De ynformaasje kin nuttich wêze foar dyjingen dy't op syk binne nei in rappe manier om de sammele gegevens visueel wer te jaan of te analysearjen yn yndustriële automatisearring as IoT-projekten. It artikel is gjin detaillearre hantlieding, mar earder in konsept fan in tafersjochsysteem basearre op iepen boarne software foar in produksjebedriuw.

Toolkit

Zabbix - wy hawwe it al in lange tiid brûkt om de IT-ynfrastruktuer fan 'e plant te kontrolearjen. It systeem die bliken te wêzen sa handich en alsidich dat wy begûn te fieren gegevens út produksje linen, sensors en controllers. Dit stelde ús yn steat om alle metrike gegevens op ien plak te sammeljen, ienfâldige grafiken te meitsjen fan boarneferbrûk en prestaasjes fan apparatuer, mar wy miste echt analytiken en prachtige grafiken.

grafana is in krêftich ark foar analytics en data fisualisaasje. In grut oantal plugins kinne jo nimme gegevens út ferskate boarnen (zabbix, clickhouse, influxDB), ferwurkje it op 'e fly (berekkenje it gemiddelde, som, ferskil, ensfh) en tekenje alle soarten fan grafiken (fan ienfâldige rigels, snelheidsmeters, tabellen oan komplekse diagrammen).

Draw.io - in tsjinst wêrmei jo in online bewurker kinne tekenje fan in ienfâldich blokdiagram nei in flierplan. D'r binne in protte klearmakke sjabloanen en tekene objekten. Gegevens kinne wurde eksportearre nei alle grutte grafyske formaten as xml.

It alles opnimme

In protte artikels binne skreaun oer hoe't jo Grafana en Zabbix kinne ynstallearje en konfigurearje, ik sil prate oer de haadpunten fan 'e konfiguraasje.

In "netwurkknooppunt" (host) wurdt makke op 'e Zabbix-tsjinner, dy't "gegevens-eleminten" (item) sil hawwe mei metriken fan ús sensoren. It is oan te rieden om te tinken oer de nammen fan knopen en gegevens eleminten fan tefoaren en meitsje se sa strukturearre mooglik, om't wy sille tagong ta harren út graphana fia reguliere útdrukkingen. Dizze oanpak is handich om't jo gegevens kinne krije fan in groep eleminten mei ien fersyk.

Om grafana te konfigurearjen, moatte jo ekstra plugins ynstallearje:

  • Zabbix troch Alexander Zobnin (alexanderzobnin-zabbix-app) - yntegraasje mei zabbix
  • natel-discrete-panel - plugin foar diskrete fisualisaasje op in horizontale kaart
  • pierosavi-imageit-panel - plugin foar it werjaan fan gegevens boppe op jo ôfbylding
  • agenty-flowcharting-panel - plugin foar dynamyske diagramfisualisaasje fan draw.io

De yntegraasje mei Zabbix sels is konfigurearre yn grafana, menu item ConfigurationData sourcesZabbix. Dêr moatte jo it api-adres fan 'e zabbix-tsjinner opjaan, ik haw dit http://zabbix.local/zabbix/api_jsonrpc.php, en in oanmelding mei in wachtwurd foar tagong. As alles goed is dien, sil d'r by it bewarjen fan de ynstellings in berjocht wêze mei it api-ferzjenûmer: zabbix API ferzje: 5.0.1

It meitsjen fan in Dashboard

Dit is wêr't de heule magy fan grafana en har plugins begjint.

natel-discrete-panel plugin
Wy hawwe gegevens oer de statusen fan motoren op 'e rigels (wurkje = 1, net wurkje = 0). Mei de diskrete grafyk kinne wy ​​​​in skaal tekenje dy't sil sjen litte: de status fan 'e motor, hoefolle minuten / oeren as% it hat wurke, en hoe faak it is begon.

Grafana + Zabbix: Fisualisaasje fan 'e produksjeline
Fisualisaasje fan motorstatus

Yn myn miening is dit ien fan 'e bêste grafiken foar it fisualisearjen fan hardwareprestaasjes. Jo kinne fuortendaliks sjen hoe lang it idle is, yn hokker modi it faker wurket. D'r kinne in protte gegevens wêze, it is mooglik om se te aggregearjen troch berik, konvertearje troch wearden (as de wearde "1" is, dan werjaan as "ON")

pierosavi-imageit-panel plugin

Imageit is handich om te brûken as jo al in tekene diagram of plan hawwe fan 'e keamer wêrop jo gegevens fan sensoren wolle tapasse. Yn 'e fisualisaasjeynstellingen moatte jo it url-adres foar de ôfbylding opjaan en de sensoreleminten tafoegje dy't jo nedich binne. It elemint ferskynt op 'e foto en kin mei de mûs op it goede plak pleatst wurde.

Grafana + Zabbix: Fisualisaasje fan 'e produksjeline
Skema fan 'e oven mei temperatuer- en drukmetriken

agenty-flowcharting-paniel plugin

Ik wol jo mear fertelle oer it meitsjen fan in FlowCharting-fisualisaasje, om't it in ongelooflijk funksjoneel ark is. It lit jo in dynamyske mnemonic meitsje, wêrfan de eleminten sille reagearje op 'e wearden fan' e metriken (feroarje kleur, posysje, namme, ensfh.).

Gegevens krije

De oprjochting fan elk fisualisaasjeelemint yn grafana begjint mei in fersyk foar gegevens fan 'e boarne, yn ús gefal is it zabbix. Mei help fan queries moatte wy alle metriken krije dy't wy wolle brûke yn it diagram. Metryske details binne de nammen fan gegevenseleminten yn Zabbix, jo kinne sawol in aparte metrike as in set opjaan mei filterjen troch in reguliere ekspresje. Yn myn foarbyld befettet it Itemfjild de útdrukking: "/(^line 1)|(beskikberens)|(zucchini)/" - dit betsjut: selektearje alle metriken wêrfan de namme strikt begjint mei "rigel 1" of befettet it wurd "beskikberens" of befettet it wurd "zucchini"

Grafana + Zabbix: Fisualisaasje fan 'e produksjeline
In foarbyld fan it opsetten fan in fersyk foar gegevens oer de motoren fan 'e earste line en de beskikberens fan grûnstoffen

Data konverzje

De boarnegegevens binne miskien net altyd yn 'e foarm wêryn't wy it werjaan moatte. Bygelyks, wy hawwe minút-by-minút gegevens oer it gewicht fan in produkt yn in kontener (kg), en wy wolle werjaan de fill rate yn t / h. Ik doch it op dizze manier: ik nim de gewichtsgegevens en konvertearje it mei de delta graphana-funksje, dy't it ferskil tusken de metrike wearden berekkent, sadat it hjoeddeistige gewicht wurdt omboud ta kg / min. Dan fermannichfâldigje ik mei 0.06 om it resultaat op ton/oere te bringen. Sûnt de gewichtsmetriek wurdt brûkt yn meardere queries, jou ik it in nije alias (setAlias) en brûk it yn 'e render-regel.

Grafana + Zabbix: Fisualisaasje fan 'e produksjeline
In foarbyld fan it brûken fan de delta parameter en in multiplier en omneame in metrysk yn in query

Hjir is in oar foarbyld fan gegevenstransformaasje: ik moast it oantal batches berekkenje (syklusstart = motorstart). De metryske wurdt berekkene op basis fan 'e motorstatus "line 1 - tankpomp 1 (status)". Transformaasje: wy feroarje de gegevens fan 'e orizjinele metrike mei de deltafunksje (weardeferskil), sadat de metrike de wearde "+1" sil hawwe om de motor te starten, "-1" om te stopjen en "0" as de motor syn status net feroaret. Dan ferwiderje ik alle wearden minder dan 1 en summe se op. It resultaat is it oantal motorstarts.

Grafana + Zabbix: Fisualisaasje fan 'e produksjeline
Foarbyld fan it konvertearjen fan gegevens fan aktuele status nei oantal starts

No oer de fisualisaasje sels

Yn 'e displayynstellingen is d'r in knop "Tekenje bewurkje", it lanseart in bewurker wêryn jo in diagram kinne tekenje. Elk objekt op it diagram hat syn eigen parameters. As jo ​​bygelyks lettertypeynstellingen yn 'e bewurker oantsjutte, sille se tapast wurde op gegevensfisualisaasje yn grafana.

Grafana + Zabbix: Fisualisaasje fan 'e produksjeline
Dit is hoe't de bewurker derút sjocht yn Draw.io

Nei it bewarjen fan it skema sil it ferskine yn 'e graphana en it sil mooglik wêze om regels te meitsjen foar it feroarjen fan eleminten.

Yn de parameters () spesifisearje wy:

  • Opsjes - set de namme fan 'e regel yn (Regelnamme), de namme of alias fan 'e metrik waans gegevens sille wurde brûkt (Tapasse op metriken). It type gegevensaggregaasje (Aggregaasje) beynfloedet it einresultaat fan 'e metrike, dus Last betsjut dat de lêste wearde sil wurde selektearre, avg betsjut de gemiddelde wearde foar de perioade selektearre yn' e rjochter boppeste hoeke.
  • Drompels - parameter drompelwearde, beskriuwt de logika fan kleurapplikaasje, dat is, de selektearre kleur sil tapast wurde op de eleminten op it diagram, ôfhinklik fan de metryske gegevens. Yn myn foarbyld, as de metrike wearde "0" is, sil de status "Ok" wêze, de kleur sil grien wêze, as de wearde "> 1" is, sil de status Kritysk wêze en de kleur sil read wêze.
  • Kleur / Tooltip Mappings" en "Label / Text Mappings" - seleksje fan in circuit elemint en syn gedrach senario. Yn it earste senario sil it objekt oer skildere wurde, yn it twadde - sil it tekst hawwe mei gegevens fan 'e metryske. Om in objekt op it diagram te selektearjen, moatte jo op it circuit teken drukke en mei de mûs op it diagram klikke.

Grafana + Zabbix: Fisualisaasje fan 'e produksjeline
Yn dit foarbyld skilderje ik de pomp en syn pylk read as it wurket en grien as it net is.

Mei help fan it flowcharting-plugin koe ik in diagram tekenje fan 'e heule line, wêrop:

  1. de kleur fan de aggregaten feroaret neffens harren status
  2. der is in alarm foar it gebrek oan produkt yn konteners
  3. motor frekwinsje ynstelling wurdt werjûn
  4. fill / discharge taryf fan de earste tank
  5. it oantal line operaasje syklusen (batch) wurdt teld

Grafana + Zabbix: Fisualisaasje fan 'e produksjeline
Fisualisaasje fan de produksje line

resultaat

It dreechste foar my wie it krijen fan de gegevens fan de controllers. Mei tank oan de veelzijdigheid fan Zabbix yn termen fan gegevenswinning en de fleksibiliteit fan Grafana fia plugins, duorre it mar in pear dagen om in wiidweidich skerm te meitsjen foar it kontrolearjen fan de produksjeline. De fisualisaasje makke it mooglik om grafiken en statusstatistiken te besjen, plus maklike tagong fia it web foar elkenien dy't ynteressearre wie - dit alles makke it mooglik om snel knelpunten en ineffisjint gebrûk fan aggregaten te identifisearjen.

konklúzje

Ik hâldde echt fan 'e Zabbix + Grafana-bondel en ik advisearje derop omtinken te jaan as jo gegevens fluch moatte ferwurkje fan controllers of sensoren sûnder programmearjen of ymplemintearjen fan komplekse kommersjele produkten. Fansels sil dit profesjonele SCADA-systemen net ferfange, mar it sil genôch wêze as in helpmiddel foar sintralisearre kontrôle fan 'e hiele produksje.

Boarne: www.habr.com

Add a comment