Grafana+Zabbix: Visualisering van die produksielyn

In hierdie artikel wil ek my ervaring van die gebruik van oopbron Zabbix- en Grafana-stelsels deel om die werk van produksielyne te visualiseer. Die inligting kan nuttig wees vir diegene wat op soek is na 'n vinnige manier om die versamelde data in industriële outomatisering of IoT-projekte visueel te vertoon of te ontleed. Die artikel is nie 'n gedetailleerde gids nie, maar eerder 'n konsep van 'n moniteringstelsel gebaseer op oopbronsagteware vir 'n vervaardigingsonderneming.

Gereedskap

Zabbix – ons gebruik dit al lank om die IT-infrastruktuur van die aanleg te monitor. Die stelsel het so gerieflik en veelsydig geblyk dat ons begin het om data van produksielyne, sensors en beheerders daarin in te voer. Dit het ons in staat gestel om al die metrieke data op een plek te versamel, eenvoudige grafieke van hulpbronverbruik en toerustingprestasie te maak, maar ons het regtig 'n gebrek aan analise en pragtige grafieke gehad.

grafana is 'n kragtige hulpmiddel vir ontleding en datavisualisering. 'n Groot aantal plugins laat jou toe om data uit verskeie bronne (zabbix, clickhouse, influxDB) te neem, dit dadelik te verwerk (bereken die gemiddelde, som, verskil, ens.) en teken allerhande grafieke (van eenvoudige lyne, spoedmeters) , tabelle tot komplekse diagramme ).

Draw.io - 'n diens waarmee u 'n aanlynredigeerder van 'n eenvoudige blokdiagram tot 'n vloerplan kan teken. Daar is baie klaargemaakte sjablone en getekende voorwerpe. Data kan na alle groot grafiese formate of xml uitgevoer word.

Om dit alles saam te voeg

Daar is baie artikels geskryf oor hoe om Grafana en Zabbix te installeer en op te stel, ek sal oor die hoofpunte van die konfigurasie praat.

'n "Netwerknodus" (gasheer) word op die Zabbix-bediener geskep, wat "data-elemente" (item) sal besit met metrieke van ons sensors. Dit is raadsaam om vooraf oor die name van nodusse en data-elemente te dink en dit so gestruktureerd as moontlik te maak, aangesien ons toegang tot hulle vanaf graphana sal kry deur middel van gereelde uitdrukkings. Hierdie benadering is gerieflik omdat jy data van 'n groep elemente met 'n enkele versoek kan kry.

Om grafana op te stel, sal jy bykomende inproppe moet installeer:

  • Zabbix deur Alexander Zobnin (alexanderzobnin-zabbix-app) - integrasie met zabbix
  • natel-discrete-panel - inprop vir diskrete visualisering op 'n horisontale grafiek
  • pierosavi-imageit-panel - inprop vir die vertoon van data bo-op jou prent
  • agenty-flowcharting-panel - inprop vir dinamiese diagramvisualisering vanaf draw.io

Die integrasie met Zabbix self is opgestel in grafana, menu-item ConfigurationData sourcesZabbix. Daar moet jy die api-adres van die zabbix-bediener spesifiseer, ek het dit http://zabbix.local/zabbix/api_jsonrpc.php, en 'n aanmelding met 'n wagwoord vir toegang. As alles korrek gedoen is, wanneer die instellings gestoor word, sal daar 'n boodskap wees met die API-weergawenommer: zabbix API weergawe: 5.0.1

Skep 'n Dashboard

Dit is waar die magie van grafana en sy plugins begin.

natel-diskrete-paneel-inprop
Ons het data oor die statusse van enjins op die lyne (werk = 1, werk nie =0). Deur die diskrete grafiek te gebruik, kan ons 'n skaal teken wat sal wys: die status van die enjin, hoeveel minute/ure of % dit gewerk het, en hoe gereeld dit aangeskakel is.

Grafana+Zabbix: Visualisering van die produksielyn
Enjinstatusvisualisering

Na my mening is dit een van die beste grafieke om hardewareprestasie te visualiseer. U kan dadelik sien hoe lank dit ledig is, in watter modusse dit meer gereeld werk. Daar kan baie data wees, dit is moontlik om dit volgens reekse saam te voeg, om te skakel volgens waardes (as die waarde "1" is, vertoon dan as "AAN")

pierosavi-imageit-paneel-inprop

Imageit is gerieflik om te gebruik wanneer jy reeds 'n getekende diagram of plan van die kamer het waarop jy data van sensors wil toepas. In die visualiseringsinstellings moet u die url-adres vir die prent spesifiseer en die sensorelemente byvoeg wat u benodig. Die element verskyn op die prentjie en kan met die muis op die regte plek geplaas word.

Grafana+Zabbix: Visualisering van die produksielyn
Skema van die oond met temperatuur- en drukmetrieke

agenty-flowcharting-paneel-inprop

Ek wil jou graag meer vertel oor die skep van 'n FlowCharting-visualisering, aangesien dit 'n ongelooflike funksionele hulpmiddel is. Dit laat jou toe om 'n dinamiese mnemonic te maak, waarvan die elemente sal reageer op die waardes van die statistieke (verander kleur, posisie, naam, ens.).

Kry data

Die skepping van enige visualiseringselement in grafana begin met 'n versoek om data uit die bron, in ons geval is dit zabbix. Deur navrae te gebruik, moet ons al die maatstawwe kry wat ons in die diagram wil gebruik. Metrieke besonderhede is die name van data-elemente in Zabbix, jy kan beide 'n aparte metrieke en 'n stel spesifiseer met filter deur 'n gereelde uitdrukking. In my voorbeeld bevat die Item-veld die uitdrukking: "/(^reël 1)|(beskikbaarheid)|(courgette)/" - dit beteken: kies alle maatstawwe waarvan die naam streng met "reël 1" begin of die woord "beskikbaarheid" bevat " of bevat die woord "courgette"

Grafana+Zabbix: Visualisering van die produksielyn
'n Voorbeeld van die opstel van 'n versoek vir data oor die enjins van die eerste lyn en die beskikbaarheid van grondstowwe

Data-omskakeling

Die brondata is dalk nie altyd in die vorm waarin ons dit moet vertoon nie. Ons het byvoorbeeld minuut-vir-minuut data oor die gewig van 'n produk in 'n houer (kg), en ons wil die vultempo in t/h vertoon. Ek doen dit op hierdie manier: Ek neem die gewigsdata en skakel dit om met die delta graphana-funksie, wat die verskil tussen die metrieke waardes bereken, dus word die huidige gewig omgeskakel na kg / min. Dan vermenigvuldig ek met 0.06 om die resultaat op ton/uur te bring. Aangesien die gewigmetriek in veelvuldige navrae gebruik word, sal ek dit 'n nuwe alias (setAlias) gee en dit in die leweringreël gebruik.

Grafana+Zabbix: Visualisering van die produksielyn
'n Voorbeeld van die gebruik van die delta-parameter en 'n vermenigvuldiger en die hernoeming van 'n metriek in 'n navraag

Hier is nog 'n voorbeeld van datatransformasie: Ek moes die aantal groepe (siklusbegin = enjinbegin) bereken. Die metrieke word bereken op grond van die enjinstatus "lyn 1 - tenkpomp 1 (status)". Transformasie: ons verander die data van die oorspronklike metriek met die deltafunksie (waardeverskil), dus sal die metriek die waarde "+1" hê om die enjin te begin, "-1" om te stop en "0" wanneer die enjin nie sy status verander. Dan verwyder ek alle waardes minder as 1 en som hulle op. Die resultaat is die aantal enjinstart.

Grafana+Zabbix: Visualisering van die produksielyn
Voorbeeld van die omskakeling van data van huidige status na aantal begin

Nou oor die visualisering self

In die skerminstellings is daar 'n knoppie "Redigeer Teken", dit begin 'n redigeerder waarin jy 'n diagram kan teken. Elke voorwerp op die diagram het sy eie parameters. Byvoorbeeld, as u lettertipe-instellings in die redigeerder spesifiseer, sal dit toegepas word op datavisualisering in grafana.

Grafana+Zabbix: Visualisering van die produksielyn
Dit is hoe die redigeerder in Draw.io lyk

Nadat die skema gestoor is, sal dit in die graphana verskyn en dit sal moontlik wees om reëls te skep vir die verandering van elemente.

In die parameters () spesifiseer ons:

  • Opsies - stel die naam van die reël (Reëlnaam), die naam of alias van die maatstaf waarvan die data gebruik sal word (Pas toe op maatstawwe). Die tipe data-aggregasie (Aggregasie) affekteer die finale resultaat van die metrieke, so Laaste beteken dat die laaste waarde gekies sal word, avg beteken die gemiddelde waarde vir die tydperk wat in die regter boonste hoek gekies is.
  • Drempels - drempelwaarde parameter, beskryf die logika van kleur toepassing, dit wil sê, die geselekteerde kleur sal toegepas word op die elemente op die diagram, afhangende van die metrieke data. In my voorbeeld, as die metrieke waarde "0" is, sal die status "Ok" wees, die kleur sal groen wees, as die waarde "> 1" is, sal die status Kritiek wees en die kleur sal rooi wees.
  • Kleur-/nutspuntkaarte” en “Etiket-/tekskaarte” — keuse van 'n stroombaanelement en sy gedragscenario. In die eerste scenario sal die voorwerp oorgeverf word, in die tweede - dit sal teks hê met data van die metrieke. Om 'n voorwerp op die diagram te kies, moet jy die stroombaanteken druk en met die muis op die diagram klik.

Grafana+Zabbix: Visualisering van die produksielyn
In hierdie voorbeeld verf ek die pomp en sy pyl rooi as dit werk en groen as dit nie is nie.

Met die hulp van die vloeidiagram-inprop het ek daarin geslaag om 'n diagram van die hele lyn te teken, waarop:

  1. die kleur van die aggregate verander volgens hul status
  2. daar is 'n alarm vir die gebrek aan produk in houers
  3. motorfrekwensie-instelling word vertoon
  4. vul/afvoertempo van die eerste tenk
  5. die aantal lynbewerkingsiklusse (batch) word getel

Grafana+Zabbix: Visualisering van die produksielyn
Visualisering van die produksielyn

Gevolg

Die moeilikste deel vir my was om die data van die beheerders af te kry. Danksy die veelsydigheid van Zabbix in terme van data-verkryging en die buigsaamheid van Grafana deur plugins, het dit slegs 'n paar dae geneem om 'n omvattende skerm te skep om die produksielyn te monitor. Die visualisering het dit moontlik gemaak om grafieke en statusstatistieke te sien, plus maklike toegang via die web vir almal wat belangstel - dit alles het dit moontlik gemaak om knelpunte en ondoeltreffende gebruik van aggregate vinnig te identifiseer.

Gevolgtrekking

Ek het baie van die Zabbix + Grafana-bundel gehou en ek beveel aan dat u daaraan aandag gee as u data van beheerders of sensors vinnig moet verwerk sonder om komplekse kommersiële produkte te programmeer of te implementeer. Dit sal natuurlik nie professionele SCADA-stelsels vervang nie, maar dit sal genoeg wees as 'n instrument vir gesentraliseerde monitering van die hele produksie.

Bron: will.com

Voeg 'n opmerking