Šiame straipsnyje noriu pasidalinti savo patirtimi naudojant atvirojo kodo sistemas Zabbix ir Grafana, kad būtų galima vizualizuoti gamybos linijų veikimą. Informacija gali būti naudinga tiems, kurie ieško greito būdo vizualiai parodyti arba analizuoti surinktus duomenis pramoninės automatikos ar daiktų interneto projektuose. Straipsnis nėra išsami pamoka, o veikiau gamybos įmonės atvirojo kodo programine įranga pagrįstos stebėjimo sistemos koncepcija.
Įrankių rinkinys
Zabbix – jau seniai naudojame gamyklos IT infrastruktūros stebėjimui. Sistema pasirodė tokia patogi ir universali, kad pradėjome į ją įvesti duomenis iš gamybos linijų, jutiklių ir valdiklių. Tai leido mums surinkti visus metrikos duomenis vienoje vietoje, sudaryti paprastus resursų suvartojimo ir įrangos veikimo grafikus, tačiau mums tikrai trūko analizės ir gražių grafikų.
grafana yra galingas analizės ir duomenų vizualizavimo įrankis. Daugybė papildinių leidžia paimti duomenis iš įvairių šaltinių (zabbix, clickhouse, influxDB), apdoroti juos skrydžio metu (apskaičiuoti vidutinę vertę, sumą, skirtumą ir kt.) ir nubraižyti visokius grafikus (iš paprastų linijų, spidometrai, lentelės į sudėtingas diagramas).
Draw.io – paslauga, leidžianti piešti nuo paprastos blokinės schemos iki aukšto plano internetiniame redaktoriuje. Yra daug paruoštų šablonų ir nupieštų objektų. Duomenys gali būti eksportuojami į visus pagrindinius grafinius formatus arba xml.
Viskas kartu
Yra daug straipsnių apie tai, kaip įdiegti ir konfigūruoti Grafana ir Zabbix, aš jums papasakosiu apie pagrindinius konfigūracijos taškus.
„Zabbix“ serveryje sukuriamas „tinklo mazgas“ (priegloba), kuriam priklausys „duomenų elementai“ (elementai) su mūsų jutiklių metrika. Patartina iš anksto apgalvoti mazgų ir duomenų elementų pavadinimus ir padaryti juos kuo struktūriškesnius, nes juos pasieksime iš grafana per reguliariąsias išraiškas. Šis metodas yra patogus, nes galite gauti duomenis iš elementų grupės su viena užklausa.
Norėdami sukonfigūruoti grafana, turėsite įdiegti papildomus papildinius:
- Aleksandro Zobnino „Zabbix“ (alexanderzobnin-zabbix-app) – integracija su „zabbix“
- natel-discrete-panel – įskiepis, skirtas atskiram vizualizavimui horizontaliame grafike
- pierosavi-imageit-panel – papildinys, skirtas duomenims rodyti vaizdo viršuje
- agenty-flowcharting-panel – įskiepis, skirtas dinamiškai vizualizuoti diagramą iš draw.io
Pati integracija su „Zabbix“ sukonfigūruojama „grafana“ meniu punkte „ConfigurationData sourcesZabbix“. Ten reikia nurodyti api zabbix serverio adresą, štai ką turiu
Informacijos suvestinės kūrimas
Čia prasideda Grafana ir jos papildinių magija.
„Natel-discrete-panel“ papildinys
Turime duomenis apie variklių būseną linijose (veikia = 1, neveikia = 0). Naudodami diskrečią grafiką galime nubrėžti skalę, kuri parodys: variklio būseną, kiek minučių/valandų ar % jis dirbo ir kaip dažnai buvo užvestas.
Variklio būsenų vizualizacija
Mano nuomone, tai yra vienas geriausių grafikų aparatinės įrangos veikimui vizualizuoti. Iš karto matosi, kiek laiko jis buvo nenaudojamas ir kokiais režimais veikia dažniau. Duomenų gali būti daug, juos galima agreguoti pagal diapazonus, transformuoti pagal reikšmes (jei reikšmė yra „1“, tada rodyti kaip „ON“)
Papildinys pierosavi-imageit-panel
„Imageit“ patogu naudoti, kai jau turite nubraižytą schemą arba grindų planą, kuriame norite pritaikyti duomenis iš jutiklių. Vizualizacijos nustatymuose turite nurodyti vaizdo URL ir pridėti reikalingus jutiklio elementus. Elementas pasirodo paveikslėlyje ir jį galima padėti pele norimoje vietoje.
Krosnies diagrama su temperatūros ir slėgio metrika
Agentūros srautų diagramų skydelio papildinys
Norėčiau plačiau pakalbėti apie FlowCharting vizualizacijos kūrimą, nes tai neįtikėtinai funkcionalus įrankis. Tai leidžia sudaryti dinaminę mnemoninę diagramą, kurios elementai reaguos į metrikos reikšmes (keis spalvą, padėtį, pavadinimą ir kt.).
Duomenų gavimas
Bet kurio „Grafana“ vizualizacijos elemento kūrimas prasideda nuo duomenų užklausos iš šaltinio, mūsų atveju tai yra „zabbix“. Naudodami užklausas turime gauti visą metriką, kurią norime naudoti diagramoje. Išsami informacija apie metriką yra duomenų elementų pavadinimai sistemoje Zabbix; galite nurodyti atskirą metriką arba rinkinį, filtruotą naudojant reguliarųjį posakį. Mano pavyzdyje elemento lauke yra posakis: „/(^1 eilutė)|(prieinamumas)|(cukinija)/“ – tai reiškia: pasirinkite visas metrikas, kurių pavadinimas griežtai prasideda „1 eilutė“ arba kuriame yra žodis „prieinamumas“ “ arba yra žodis „cukinija“
Prašymo pateikti duomenis apie pirmosios eilės variklius ir žaliavų prieinamumą nustatymo pavyzdys
Duomenų konvertavimas
Šaltiniai duomenys ne visada gali būti tokios formos, kokia mums reikia juos rodyti. Pavyzdžiui, turime minutės duomenis apie produkto svorį inde (kg), o užpildymo greitį turime rodyti t/val. Tai darau taip: paimu svorio duomenis ir transformuoju grafana delta funkcija, kuri apskaičiuoja skirtumą tarp metrinių reikšmių, todėl esamas svoris virsta kg/min. Tada padauginu iš 0.06, kad gaučiau rezultatą tonomis/val. Kadangi svorio metrika naudojama keliose užklausose, nurodu jai naują slapyvardį (setAlias) ir naudosiu jį vizualizacijos taisyklėje.
Delta ir daugiklio parametro naudojimo ir metrikos pervadinimo užklausoje pavyzdys
Štai dar vienas duomenų konvertavimo pavyzdys: man reikėjo suskaičiuoti partijų skaičių (ciklo pradžia = variklio užvedimas). Metrika apskaičiuojama pagal variklio būseną „1 eilutė – siurblio siurblys iš 1 bako (būsena)“. Transformacija: pradinės metrikos duomenis keičiame su delta funkcija (reikšmių skirtumas), todėl metrika turės reikšmę „+1“ variklio užvedimui, „-1“ – stabdymą ir „0“, kai variklis tai padarys. nekeičia savo statuso. Tada pašalinu visas reikšmes, mažesnes nei 1, ir jas sumuoju. Rezultatas yra variklio užvedimų skaičius.
Duomenų konvertavimo iš dabartinės būsenos į paleidimų skaičių pavyzdys
Dabar apie pačią vizualizaciją
Ekrano nustatymuose yra mygtukas „Redaguoti piešinį“; jis paleidžia redaktorių, kuriame galite piešti diagramą. Kiekvienas diagramos objektas turi savo parametrus. Pavyzdžiui, jei redagavimo priemonėje nurodysite šrifto nustatymus, jie bus taikomi duomenų vizualizavimui programoje „Grafana“.
Taip atrodo redaktorius Draw.io
Išsaugojus diagramą, ji atsiras grafanoje ir galėsite sukurti elementų keitimo taisykles.
Parametrai () nurodome:
- Parinktys – nustatykite taisyklės pavadinimą, metrikos, kurios duomenys bus naudojami, pavadinimą arba slapyvardį (Taikyti metrikai). Duomenų apibendrinimo tipas (Aggregation) turi įtakos galutiniam metrikos rezultatui, todėl Paskutinė reiškia, kad bus pasirinkta paskutinė reikšmė, o vidurkis yra vidutinė viršutiniame dešiniajame kampe pasirinkto laikotarpio vertė.
- Slenksčiai - slenkstinių verčių parametras apibūdina spalvų taikymo logiką, tai yra, pasirinkta spalva bus pritaikyta diagramos elementams, atsižvelgiant į metrinius duomenis. Mano pavyzdyje, jei metrikos reikšmė yra „0“, būsena „Gerai“, spalva bus žalia, jei reikšmė „>1“, būsena bus kritinė, o spalva raudona.
- Spalvų/patarimų atvaizdai“ ir „Etiketės/teksto susiejimas“ – pasirenkamas schemos elementas ir jo veikimo scenarijus. Pirmajame scenarijuje objektas bus nudažytas, antrajame ant jo bus tekstas su duomenimis iš metrikos. Norėdami pasirinkti objektą diagramoje, turite spustelėti grandinės ženklą ir spustelėti diagramą.
Šiame pavyzdyje siurblį ir jo rodyklę dažau raudonai, jei jis veikia, ir žaliai, jei ne.
Naudodamas struktūrinės diagramos papildinį, galėjau nubraižyti visos linijos schemą, kurioje:
- vienetų spalva keičiasi pagal jų būseną
- yra pavojaus signalas, kad konteineriuose nėra produkto
- Rodomas variklio dažnio nustatymas
- pirmasis bako užpildymo / išpylimo greitis
- apskaičiuojamas linijos veikimo (partijos) ciklų skaičius
Gamybos linijos veikimo vizualizacija
Rezultatas
Sunkiausia man buvo gauti duomenis iš kontrolierių. Dėl „Zabbix“ universalumo duomenų priėmimo ir „Grafana“ lankstumo dėl papildinių prireikė vos poros dienų sukurti išsamų gamybos linijos stebėjimo ekraną. Vizualizacija leido peržiūrėti grafikus ir būsenos statistiką, be to, visiems besidomintiems buvo lengva prieiga per žiniatinklį – visa tai leido greitai nustatyti kliūtis ir neefektyvų vienetų naudojimą.
išvada
Man labai patiko Zabbix+Grafana derinys ir rekomenduoju į jį atkreipti dėmesį, jei reikia greitai apdoroti duomenis iš valdiklių ar jutiklių neprogramuojant ir nediegiant sudėtingų komercinių produktų. Žinoma, tai nepakeis profesionalių SCADA sistemų, tačiau to pakaks kaip centralizuoto visos gamybos stebėjimo priemonės.
Šaltinis: www.habr.com