Grafana+Zabbix: Tootmisliini töö visualiseerimine

Selles artiklis jagan oma kogemust open source sĂŒsteemide Zabbix ja Grafana kasutamisest tootmisliinide töö visualiseerimiseks. Teave vĂ”ib olla kasulik neile, kes otsivad kiiret viisi visuaalseks kuvamiseks vĂ”i analĂŒĂŒsiks kogutud andmete projektides, mis on seotud tööstusautomaatika vĂ”i IoT-ga. Artikkel ei ole pĂ”hjalik juhend, pigem sĂŒsteemi jĂ€lgimise kontseptsioon, mis pĂ”hineb avatud tarkvaral tootmisettevĂ”ttes.

Tööriistade komplekt

Zabbix – oleme seda juba ammu kasutanud ettevĂ”tte IT-infrastruktuuri jĂ€lgimiseks. SĂŒsteem osutus nii mugavaks ja universaalseks, et hakkasime sinna koguma tootmisliinide, andurite ja kontrollerite andmeid. See vĂ”imaldas meil koguda kĂ”ik mÔÔdikute andmed ĂŒhte kohta, luua lihtsaid graafikuid ressursside kasutusest ja seadmete tootlikkusest, kuid vĂ€ga puudus analĂŒĂŒs ja kaunid graafikud.

Grafana – see on vĂ”imas tööriist andmete analĂŒĂŒsiks ja visualiseerimiseks. Paljusid pluginaid saab kasutada andmete tĂ”mbamiseks erinevatest allikatest (zabbix, clickhouse, influxDB), nende töötlemiseks reaalajas (keskmise, summa, erinevuse jms arvestamiseks) ja igasuguste graafikute joonistamiseks (alates lihtsatest joonistest, spidomeetritest, tabelitest kuni keerukate skeemideni).

Draw.io – teenus, mis vĂ”imaldab veebiredaktoris joonistada lihtsast plaanist kuni ruumide kaardistamiseni. Palju valmis ĆĄabloone ja joonistatud objekte. Andmeid saab eksportida kĂ”ikidesse peamistes graafilistes formaatidesse vĂ”i xml.

Koondame kÔik kokku

On kirjutatud palju artikleid Grafana ja Zabbixi paigaldamisest ja seadistamisest, ma rÀÀgin peamistest konfiguratsioonipunktidest.

Zabbixis serveril loomiseks on “vĂ”rgusĂ”lm” (host), millele kuuluvad “andmeelemendid” (item) meie sensoritest saadud metrikatega. Soovitav on eelnevalt hoolikalt mĂ”elda sĂ”lmede ja andmeelementide nimede peale ja teha need vĂ”imalikult struktureerituks, kuna nendele viitame Grafanas regulaaravaldistes. Selline lĂ€henemine on mugav, kuna ĂŒhe pĂ€ringuga saame andmed rĂŒhma elementidest.

Grafana seadistamiseks on vajalik paigaldada tÀiendavad pluginad:

  • Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) – Zabbixi integreerimine
  • natel-discrete-panel – diskreetse visualiseerimise plugin horisontaalses graafikus
  • pierosavi-imageit-panel – plugin andmete kuvamiseks oma pildi peal
  • agenty-flowcharting-panel – plugin dĂŒnaamiliseks skeemi visualiseerimiseks draw.io-st

Zabbixiga integreerimine seadistatakse Grafanas, menĂŒĂŒs ConfigurationData sourcesZabbix. Seal tuleb mĂ€rkida Zabbixi serveri API aadress, minu puhul see on http://zabbix.local/zabbix/api_jsonrpc.php, ning sisselogimise nimi ja parool. Kui kĂ”ik on Ă”igesti tehtud, ilmub seade salvestamisel teadet koos API versiooni numbriga: zabbix API version: 5.0.1

Loome Dashboardi

Siin algab Grafana ja selle pluginade tÔeline maagia.

Plugin natel-discrete-panel
Meil on andmed mootorite staatuste kohta joonistel (töötab = 1, ei tööta = 0). Diskreetse graafiku abil saame joonistada skaala, kust on nÀha: mootori seisund, kui kaua ta on töötanud minutites/tundides vÔi %, ja kui tihti ta kÀivitati.

Grafana+Zabbix: Tootmisliini töö visualiseerimine
Mootorite staatuste visualiseerimine

Minu arvates on see ĂŒks parimaid graafikuid seadmete jĂ”udluse visualiseerimiseks. Koheselt on nĂ€ha, kui kaua see seisab, millistes reĆŸiimides see sagedamini töötab. Andmeid vĂ”ib olla palju, on vĂ”imalus neid agregatsiooni teel vahemike kaupa töödelda, vÀÀrtuste pĂ”hjal transformeerida (kui vÀÀrtus on «1», siis nĂ€idata kui «ON»).

Plugin pierosavi-imageit-panel

Imageit on mugav kasutada, kui teil on juba joonistatud skeem vÔi ruumiplaneering, kuhu soovite andmeid anduritelt kanda. Visualiseerimise seadetes tuleb mÀÀrata pildi URL ja lisada soovitud sensorielemendid. Element ilmub pildile ja selle saab hiirega soovitud kohta paigutada.

Grafana+Zabbix: Tootmisliini töö visualiseerimine
Ahju skeem temperatuuride ja rÔhude mÔÔdikute nÀitajatega

Plugin agenty-flowcharting-panel

Soovin rÀÀkida FlowCharting visualiseerimisest ĂŒksikasjalikumalt, kuna see on uskumatu funktsionaalsusega tööriist. See vĂ”imaldab luua dĂŒnaamilise mnemogrammi, mille elemendid reageerivad mÔÔdikute vÀÀrtustele (muutes vĂ€rvi, asukohta, nime jne).

Andmete saamine

Grafana visualiseerimise igas elemendis alustatakse andmete pĂ€ringuga allikast, meie puhul on see Zabbix. PĂ€ringute abil tuleb saada kĂ”ik mÔÔdikud, mida soovime skeemis kasutada. MÔÔdikute detailid on andmeelementide nimed Zabbixis; saab mÀÀrata nii eraldi mÔÔdiku kui ka mitmeid koos regulaaravaldusega filtreerimise teel. Minu nĂ€ites sisaldab vĂ€li Item vĂ€ljendit: «/(^liin 1)|(olemasolek)|(kurgi)/» — see tĂ€hendab: valida kĂ”ik mÔÔdikud, mille nimed algavad sĂ”naga «liin 1» vĂ”i sisaldavad sĂ”na «olemasolek» vĂ”i sĂ”na «kurgi».

Grafana+Zabbix: Tootmisliini töö visualiseerimine
NÀide andmete pÀringu seadistamisest esimese liini mootorite ja toormaterjali olemasolu kohta.

Andmete konverteerimine

Algandmed ei pruugi alati olla sellises vormis, nagu me neid kuvada soovime. NĂ€iteks on meil igaminutilised andmed toote kaalust mahutis (kg) ja peame kuvama tĂ€itmiskiirusena t/t. Teen seda jĂ€rgmiselt: vĂ”tan kaalud ja muundan need Grafana delta-funktsiooniga, mis arvutab mÔÔtme vÀÀrtuste vahelise erinevuse, nii et praegune kaal muutub kg/min. SeejĂ€rel korrutan 0,06-ga, et tulemuse tuua tonnidesse/tunni. Kuna kaalu mÔÔtmist kasutatakse mitmes pĂ€ringus, mÀÀran sellele uue hĂŒĂŒdnime (setAlias) ja kasutan seda visualiseerimise reeglis.

Grafana+Zabbix: Tootmisliini töö visualiseerimine
NĂ€ide delta parameetri ja korrutaja kasutamisest ning mÔÔtme ĂŒmbernimetamisest pĂ€ringus

Siin on veel ĂŒks nĂ€ide andmete töötlemisest: mul oli vaja lugeda mootorite kĂ€ivitamiste arvu (tsĂŒkli algus = mootori juhtimine). NĂ€itaja arvestatakse mootori staatuse pĂ”hjal "liin 1 — mahuti 1 pump (staatus)". Töötlemine: algsete nĂ€itaja andmed muudetakse delta-funktsiooniga (vahe vÀÀrtustes), seega nĂ€itajas on vÀÀrtus «+1» mootori kĂ€ivitamisel, «-1» seiskamisel ja «0», kui mootor ei muuda oma staatust. Siis eemaldan kĂ”ik vÀÀrtused, mis on vĂ€iksemad kui 1, ja summeerin need. Tulemuseks on mootori kĂ€ivitamiste arv.

Grafana+Zabbix: Tootmisliini töö visualiseerimine
NÀide andmete töötlemisest praegusest staatusest kÀivatuste arvuks

NĂŒĂŒd visuaalsusest endast

Kuvamis seadetes on nupp «Edit Draw», mis kĂ€ivitab redaktori, kus saab joonistada skeemi. Igal objektil skeemil on omad parameetrid. NĂ€iteks, kui mÀÀrata fondi seaded redaktoris – need rakenduvad andmete visualiseerimisele Grafanas.

Grafana+Zabbix: Tootmisliini töö visualiseerimine
Selline on editor Draw.io-s

PĂ€rast skeemi salvestamist kuvatakse see Grafanas ja saab luua elementide muutmise reegleid.

Parameetrites () mÀÀrame:

  • Valikud — reeglina mÀÀratakse reegli nimi (Rule name), metri nimetuse vĂ”i hĂŒĂŒdnime, mille andmeid kasutatakse (Apply to metrics). Andmete aggregeerimise tĂŒĂŒp (Aggregation) mĂ”jutab metri lĂ”pptulemust, nĂ€iteks Last — tĂ€hendab, et valitakse viimane vÀÀrtus, avg — nĂ€itlik vÀÀrtus valitud ajavahemikus paremas ĂŒlanurgas.
  • PiirvÀÀrtused — piirvÀÀrtuste parameeter kirjeldab vĂ€rvi rakendamise loogikat, st valitud vĂ€rv kantakse skeemi elementidele vastavalt metri andmetele. Minu nĂ€ites, kui metri vÀÀrtus on „0“ — staatus „Ok“, siis vĂ€rv on roheline; kui vÀÀrtus on „>1“, on staatus Kritiline ja vĂ€rv punane.
  • VĂ€rvi/Tööriista kaardistamine» ja «Silt/Teksti kaardistamine» — skeemi elemendi valik ja selle kĂ€itumise stsenaarium. Esimeses stsenaariumis objekt vĂ€rvitakse, teises – sellele lisatakse tekst metri andmetega. Objekti valimiseks skeemil tuleb vajutada ahela mĂ€rki ja hiirega skeemil klĂ”psata.

Grafana+Zabbix: Tootmisliini töö visualiseerimine
Selles nÀites vÀrvin pumpa ja selle noolte punaseks, kui see töötab, ja roheliseks, kui ei.

Flowcharting plugina abil suutsin joonistada kogu joone skeemi, millel:

  1. muutuvad agregaatide vÀrvid vastavalt nende staatusest
  2. toodete kadumise signaali olemasolu
  3. mootorite sagedusseade kuvatakse
  4. esimese paagi tĂ€itmise/tĂŒhjendamise kiirus
  5. tootmisliini töötsĂŒklite (segude) arv loendatakse

Grafana+Zabbix: Tootmisliini töö visualiseerimine
Tööstusliini töö visualiseerimine

Tulemus

Minu jaoks oli kĂ”ige keerulisem andmete saamine kontrolleritelt. TĂ€nu Zabbixi universaalsusele andmete hankimisel ja Grafana paindlikkusele pistikprogrammide kaudu kulus vaid paar pĂ€eva tootmisliini monitorimise tĂ€ieliku ekraaniga tegelemiseks. Visualiseerimine vĂ”imaldas graafikute ja oleku statistika vaatamist ning kergesti ligipÀÀsetav veeb kĂ”igile huvilistele – see kĂ”ik vĂ”imaldas kiiresti tuvastada kitsaskohti ning efektiivse kasutuse puudujÀÀke.

KokkuvÔte

Mulle meeldis Zabbix + Grafana kombinatsioon ja soovitan sellele tĂ€helepanu pöörata, kui vajate andmete kiiret töötlemist kontrolleritest vĂ”i anduritest ilma programmeerimise vĂ”i keeruliste kommertstoote rakendamiseta. Ilmselgelt ei asenda see professionaalseid SCADA sĂŒsteeme, kuid piisab kogu tootmise keskusteenindamiseks.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster