Selles artiklis tahan jagada kogemust open source sĂŒsteemide Zabbix ja Grafana kasutamisest tootmisliinide töö visualiseerimiseks. Teave vĂ”ib olla kasulik neile, kes otsivad kiiret viisi kogutud andmete visuaalseks kuvamiseks vĂ”i analĂŒĂŒsimiseks tööstusautomaatika vĂ”i IoT projektides. Artikkel ei ole ĂŒksikasjalik juhend, vaid pigem kontseptsioon monitoorimissĂŒsteemist, mis pĂ”hineb avatud tarkvaral tootmisettevĂ”ttes.
Tööriistakomplekt
Zabbix â me oleme seda kasutanud juba pikka aega tehase IT-infrastruktuuri jĂ€lgimiseks. SĂŒsteem osutus nii mugavaks ja universaalseks, et hakkasime seda kasutama tootmisliinidest, anduritest ja kontrolleritest andmete kogumiseks. See vĂ”imaldas meil koguda kĂ”ik mÔÔdikud ĂŒhte kohta, teha lihtsaid graafikuid ressursside tarbimisest ja seadmete tĂ”hususest, kuid analĂŒĂŒsist ja ilusatest graafikutest jĂ€i vĂ€ga puudu.
Grafana â see on vĂ”imas tööriist andmete analĂŒĂŒsiks ja visualiseerimiseks. Suur hulk pluginaid vĂ”imaldab andmeid erinevatest allikatest (zabbix, clickhouse, influxDB) hankida, neid reaalajas töödelda (arvutada keskmisi, koguseid, erinevusi jne) ja joonistada igasuguseid graafikuid (lihtsatest joonistest, kiirusmÔÔtjatest, tabelitest kuni keeruliste skeemideni).
Draw.io â teenus, mis vĂ”imaldab veebiredaktoris joonistada alates lihtsast plokkskeemist kuni ruumide plaanini. On palju valmis ĆĄabloone ja joonistatud objekte. Andmeid saab eksportida kĂ”ikidesse peamistesse graafilistesse formaatidesse vĂ”i xml-i.
Kogume kÔik kokku
Grafana ja Zabbixi installimise ja seadistamise kohta on kirjutatud palju artikleid, rÀÀgin pÔhilistest seadistamise punktidest.
Zabbixis serveris loodakse "vĂ”rgu sĂ”lm" (host), millele kuuluvad "andmeelemendid" (item) meie anduritelt saadud mÔÔdikud. SĂ”lmede ja andmeelementide nimed on soovitatav ette mĂ”elda ja teha vĂ”imalikult struktureerituks, kuna pöördume nende poole Grafanas regulaarsete vĂ€ljendite kaudu. Selline lĂ€henemine on mugav, kuna ĂŒhe pĂ€ringuga saame andmeid kogu elemendigrupi kohta.
Grafana seadistamiseks on vaja installida tÀiendavad pluginad:
- Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) â integratsioon zabbixiga
- natel-discrete-panel â plaan diskreetseks visualiseerimiseks horisontaalses graafikus
- pierosavi-imageit-panel â plaan andmete kuvamiseks oma pildi peale
- agenty-flowcharting-panel â moodul dĂŒnaamiliseks visualiseerimiseks joonistelt draw.io
Zabbixiga integreerimine seadistatakse Grafanas, menĂŒĂŒpunkt ConfigurationData sourcesZabbix. Seal tuleb mĂ€rkida Zabbix serveri api aadress, minu oma on , ja sisselogimiseks vajalik kasutajanimi ja parool. Kui kĂ”ik on Ă”igesti tehtud, kuvatakse seadete salvestamisel sĂ”num api versiooniga: zabbix API version: 5.0.1
Loome Dashboardi
Siit algab Grafana ja selle pluginade maagia.
Plugin natel-discrete-panel
Meil on andmed mootori staatuste kohta liinidel (töös = 1, mitte töös = 0). Discrete graafiku abil saame joonistada skaala, kus on nÀhtav: mootori staatus, kui kaua see on töötanud minutites/tundides vÔi % ja kui sageli see on kÀivitatud.

Mootori staatuste visualiseerimine
Minu arvates on see ĂŒks parimaid graafikuid seadmete tootlikkuse visualiseerimiseks. Kohe on nĂ€ha, kui palju aega see seisab, millistes reĆŸiimides see sagedamini töötab. Andmeid vĂ”ib olla palju, andmete agregatsiooni vĂ”imalus vahemike kaupa, vÀÀrtuste teisendamine (kui vÀÀrtus on "1", siis nĂ€idata kui "ON")
Plugin pierosavi-imageit-panel
Imageiti on mugav kasutada, kui teil on juba joonistatud skeem vÔi ruumi plaan, kuhu soovite andmed sensoritest kanda. Visualiseerimise seadetes tuleb mÀrkida pildi url aadress ja lisada vajalikud sensorielemendid. Element tuleb pildile ja seda saab hiirega soovitud kohta paigutada.

Ahju skeem temperatuuride ja rÔhu mÔÔtmisandmetega
Plugin agenty-flowcharting-panel
Sooviksin rÀÀkida FlowChartingu visualiseerimise loomise kohta tĂ€psemalt, kuna see on uskumatu funktsionaalsusega tööriist. See vĂ”imaldab luua dĂŒnaamilise mnemoseemi, mille elemendid reageerivad mÔÔdikute vÀÀrtustele (muutuvad vĂ€rvi, asukoha, nime jne).
Andmete saamine
Iga visuaaliseerimise elemendi loomine Grafanas algab andmete pĂ€ringuga allikast, meie juhul Zabbixist. PĂ€ringute kaudu tuleb hankida kĂ”ik mÔÔdikud, mida soovime skeemis kasutada. MÔÔdikute atribuudid on Zabbixis andmeelemendi nimed, millest saab mÀÀrata nii eraldi mÔÔdiku kui ka hulga koos regulaaravalduse kaudu filtreerimisega. Minu nĂ€ites sisaldab vĂ€li Item vĂ€ljendit: "\/([^liin 1]|(olemasolek)|(kĂ”rvits))\/" â see tĂ€hendab: valida kĂ”ik mÔÔdikud, mille nimi algab rangelt sĂ”naga "liin 1" vĂ”i sisaldab sĂ”na "olemasolek" vĂ”i sisaldab sĂ”na "kĂ”rvits".

NÀide esimese rea mootorite andmete pÀringu seadistamisest ja tooraine olemasolust.
Andmete töötlemine.
Algandmed ei pruugi alati olla selles vormis, milles me soovime neid kuvada. NĂ€iteks on meil igamine andmed toote kaalust mahutis (kg) ja me peame kuvama tĂ€itmiskiirusena t/h. Teen seda jĂ€rgmiselt: vĂ”tan kaalud ja töötlen neid Grafana delta funktsiooniga, mis arvestab mÔÔdiku vÀÀrtuste vahekorra, nii et praegune kaal muutub kg/min. Siis korrutan 0.06-ga, et tuua tulemus tonnidesse/tunnis. Kuna kaalumÔÔdikut kasutatakse mitmes pĂ€ringus, mÀÀran sellele uue hĂŒĂŒdnime (setAlias) ja kasutan seda visualiseerimise reeglites.

NĂ€ide delta parameetri ja korrutaja kasutamisest ning mÔÔdiku ĂŒmbernimetamisest pĂ€ringus.
Veel ĂŒks nĂ€ide andmete töötlemisest: pidin arvestama segu koguseid (tsĂŒkli algus = mootori kĂ€ivitamine). MÔÔdik arvutatakse mootori staatuse "liin 1 - selle reservuaari pumpamise pump (staatus)" pĂ”hjal. Töötlemine: algmÔÔdiku andmed muudetakse delta funktsiooniga (vÀÀrtuste vahe), seega on mÔÔdikus vÀÀrtus "+1" mootori kĂ€ivitamise puhul, "-1" seiskamise korral ja "0", kui mootor oma staatust ei muuda. SeejĂ€rel eemaldan kĂ”ik vÀÀrtused, mis on vĂ€iksemad kui 1, ja summeerin need. Tulemuseks on mootori kĂ€ivituste arv.
![]()
NÀide andmete töötlemisest praegusest staatust kÀivituste arvuks.
NĂŒĂŒd visuaaliseerimise kohta.
Seadete kuvamisel on nupp âEdit Drawâ, mis avab redigeerija, kus saab joonistada skeemi. Igal objektil skeemil on oma parameetrid. NĂ€iteks, kui mÀÀrata fondi seaded redigeerijas, siis need rakenduvad andmete visualiseerimisele Grafanas.

Nii nÀeb vÀlja redigeerija Draw.io-s
PĂ€rast skeemi salvestamist ilmub see Grafanasse ja saab luua elementide muutumise reegleid.
Seadetes () mÀÀrame:
- Options â mÀÀratakse reegli nimi (Rule name), metrika nimi vĂ”i hĂŒmn, mille andmeid kasutatakse (Apply to metrics). Andmete agregatsiooni tĂŒĂŒp (Aggregation) mĂ”jutab metrika lĂ”pptulemust; nĂ€iteks Last â tĂ€hendab, et valitakse viimane vÀÀrtus, avg â keskmine vÀÀrtus valitud ajavahemiku jooksul ĂŒlemises paremas nurgas.
- Thresholds â piirmÀÀrade parameeter, kirjeldab vĂ€rvi rakendamise loogikat, s.t. valitud vĂ€rv rakendatakse skeemi elementidele vastavalt metrika andmetele. Minu nĂ€ites, kui metrika vÀÀrtus on â0â â olek âOkâ ja vĂ€rv on roheline, vÀÀrtuse juures â>1â on olek âCriticalâ ja vĂ€rv on punane.
- Color/Tooltip Mappings ja Label/Text Mappings â skeemi elemendi ja selle kĂ€itumise stsenaariumi valik. Esimeses stsenaariumis vĂ€rvitakse objekt, teises â sellel kuvatakse metrikast andmed. Objekti valimiseks skeemil tuleb klĂ”psata kettasĂŒmbolil ja hiirega skeemil.

Selles nÀites vÀrvin pumba ja selle noole punaseks, kui see töötab, ja roheliseks, kui ei.
Flowcharting pluginaga sain joonistada terve liini skeemi, kus:
- muutub agregaatide vÀrv vastavalt nende olekule
- on signalisatsioon toodete puudumise kohta mahutites
- kuvatakse mootori sageduste seade
- esimese paagi tĂ€itmise/tĂŒhjendamise kiirus
- loetakse liini töötsĂŒklite arvu (sööda)

Tootmisliini toimimise visualiseerimine
Tulemus
Minule oli kĂ”ige raskem andmete hankimine kontrolleritelt. TĂ€nu Zabbixi mitmekesistele andmehalduse vĂ”imalustele ja Grafana paindlikkusele pistikprogrammide kaudu, kulus vaid mĂ”ned pĂ€evad, et luua kompleksne tootmisliini jĂ€lgimise ekraan. Visualiseerimine vĂ”imaldas graafikute ja staatuse statistika vaatamist, lisaks lihtne ligipÀÀs veebis kĂ”ikidele huvilistele â see kĂ”ik aitas kiiresti vĂ€lja tuua kitsaskohti ja ebaefektiivsete agregaatide kasutamise.
KokkuvÔte
Mulle meeldis vĂ€ga Zabbix+Grafana kombinatsioon ja soovitan sellele tĂ€helepanu pöörata, kui teil on vaja kiiresti töödelda andmeid kontrolleritelt vĂ”i anduritelt, ilma programmeerimise vĂ”i keerukate kommertstoote rakendamise vajaduseta. Ilmselgelt ei asenda see professionaalseid SCADA sĂŒsteeme, kuid piisab kui tööriist keskseteks tootmise jĂ€lgimiseks.
Allikas: habr.com
