Grafana+Zabbix: Vizualizacija proizvodne linije

U ovom članku želim podijeliti svoje iskustvo korištenja otvorenog koda Zabbix i Grafana sistema za vizualizaciju rada proizvodnih linija. Informacije mogu biti korisne onima koji traže brz način da vizualno prikažu ili analiziraju prikupljene podatke u industrijskoj automatizaciji ili IoT projektima. Članak nije detaljan vodič, već koncept sistema za praćenje zasnovanog na softveru otvorenog koda za proizvodno preduzeće.

Toolkit

Zabbix – već dugo ga koristimo za praćenje IT infrastrukture fabrike. Sistem se pokazao toliko zgodan i svestran da smo u njega počeli unositi podatke sa proizvodnih linija, senzora i kontrolera. To nam je omogućilo da prikupimo sve metričke podatke na jednom mjestu, napravimo jednostavne grafikone potrošnje resursa i performansi opreme, ali nam je zaista nedostajala analitika i lijepi grafovi.

grafana je moćan alat za analitiku i vizualizaciju podataka. Veliki broj dodataka omogućava vam da preuzmete podatke iz različitih izvora (zabbix, clickhouse, influxDB), da ih obrađujete u hodu (izračunajte prosjek, zbir, razliku, itd.) i nacrtate sve vrste grafikona (od jednostavnih linija, brzinomjera , tablice do složenih dijagrama).

Draw.io - usluga koja vam omogućava da crtate u online uređivaču od jednostavnog blok dijagrama do tlocrta. Postoji mnogo gotovih šablona i nacrtanih objekata. Podaci se mogu izvesti u sve glavne grafičke formate ili xml.

Sve zajedno

Mnogo je članaka napisano o tome kako instalirati i konfigurirati Grafanu i Zabbix, govorit ću o glavnim točkama konfiguracije.

Na Zabbix serveru je kreiran “mrežni čvor” (host), koji će posjedovati “elemente podataka” (stavku) s metrikom naših senzora. Preporučljivo je unaprijed razmisliti o nazivima čvorova i elemenata podataka i učiniti ih što je više moguće strukturiranim, jer ćemo im pristupiti iz grafane preko regularnih izraza. Ovaj pristup je zgodan jer možete dobiti podatke iz grupe elemenata jednim zahtjevom.

Da biste konfigurirali grafana, morat ćete instalirati dodatne dodatke:

  • Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) - integracija sa zabbixom
  • natel-discrete-panel - dodatak za diskretnu vizualizaciju na horizontalnom grafikonu
  • pierosavi-imageit-panel - dodatak za prikaz podataka na vrhu vaše slike
  • agenty-flowcharting-panel - dodatak za vizualizaciju dinamičkog dijagrama iz draw.io

Sama integracija sa Zabbixom je konfigurisana u grafani, stavka menija ConfigurationData sourcesZabbix. Tamo treba da navedete api adresu zabbix servera, imam ovo http://zabbix.local/zabbix/api_jsonrpc.php, i login sa lozinkom za pristup. Ako je sve urađeno kako treba, prilikom spremanja postavki pojavit će se poruka s brojem verzije API-ja: zabbix API verzija: 5.0.1

Kreiranje kontrolne table

Ovdje počinje sama magija grafane i njenih dodataka.

dodatak natel-discrete-panel
Imamo podatke o statusima motora na linijama (radni = 1, neradni = 0). Koristeći diskretni grafikon, možemo nacrtati skalu koja će pokazati: status motora, koliko minuta/sati ili % je radio i koliko često je palio.

Grafana+Zabbix: Vizualizacija proizvodne linije
Vizualizacija stanja motora

Po mom mišljenju, ovo je jedan od najboljih grafikona za vizualizaciju performansi hardvera. Odmah možete vidjeti koliko dugo ne radi, u kojim režimima radi češće. Može biti puno podataka, moguće ih je agregirati po rasponima, pretvoriti po vrijednostima (ako je vrijednost "1", onda prikazati kao "UKLJUČENO")

pierosavi-imageit-panel dodatak

Image je pogodan za korištenje kada već imate nacrtan dijagram ili plan prostorije na koju želite primijeniti podatke sa senzora. U postavkama vizualizacije potrebno je odrediti url adresu za sliku i dodati senzorske elemente koji su vam potrebni. Element se pojavljuje na slici i može se postaviti na pravo mjesto pomoću miša.

Grafana+Zabbix: Vizualizacija proizvodne linije
Šema peći sa metrikom temperature i pritiska

dodatak agenty-flowcharting-panel

Želio bih da vam kažem više o kreiranju vizualizacije FlowChartinga, jer je to nevjerovatno funkcionalan alat. Omogućava vam da napravite dinamičku mnemoniku, čiji će elementi reagirati na vrijednosti metrike (promjena boje, položaja, imena itd.).

Dobivanje podataka

Kreiranje bilo kojeg elementa vizualizacije u grafani počinje zahtjevom za podacima iz izvora, u našem slučaju to je zabbix. Koristeći upite, moramo dobiti sve metrike koje želimo koristiti u dijagramu. Detalji metrike su imena elemenata podataka u Zabbixu, možete specificirati i zasebnu metriku i skup sa filtriranjem kroz regularni izraz. U mom primjeru, polje Stavka sadrži izraz: "/(^linija 1)|(dostupnost)|(tikvice)/" - to znači: odaberite sve metrike čiji naziv striktno počinje sa "red 1" ili sadrži riječ "dostupnost " ili sadrži riječ "tikvice"

Grafana+Zabbix: Vizualizacija proizvodne linije
Primjer postavljanja zahtjeva za podacima o motorima prve linije i dostupnosti sirovina

Konverzija podataka

Izvorni podaci možda nisu uvijek u obliku u kojem ih trebamo prikazati. Na primjer, imamo podatke iz minute u minutu o težini proizvoda u kontejneru (kg) i želimo prikazati količinu punjenja u t/h. Ja to radim na ovaj način: uzimam podatke o težini i pretvaram ih sa delta graphana funkcijom, koja izračunava razliku između metričkih vrijednosti, tako da se trenutna težina pretvara u kg/min. Zatim pomnožim sa 0.06 da rezultat dovedem do tona/sat. Pošto se metrika težine koristi u više upita, dat ću mu novi alias (setAlias) i koristiti ga u pravilu renderiranja.

Grafana+Zabbix: Vizualizacija proizvodne linije
Primjer korištenja delta parametra i množitelja i preimenovanja metrike u upitu

Evo još jednog primjera transformacije podataka: Trebao sam izračunati broj serija (start ciklusa = start motora). Metrika se izračunava na osnovu statusa motora "linija 1 - pumpa rezervoara 1 (status)". Transformacija: mijenjamo podatke originalne metrike delta funkcijom (vrijednostna razlika), tako da će metrika imati vrijednost "+1" za pokretanje motora, "-1" za zaustavljanje i "0" kada motor ne radi promeni svoj status. Zatim uklanjam sve vrijednosti manje od 1 i sumiram ih. Rezultat je broj pokretanja motora.

Grafana+Zabbix: Vizualizacija proizvodne linije
Primjer pretvaranja podataka iz trenutnog statusa u broj pokretanja

Sada o samoj vizualizaciji

U postavkama ekrana nalazi se dugme "Uredi crtanje", njime se pokreće uređivač u kojem možete nacrtati dijagram. Svaki objekat na dijagramu ima svoje parametre. Na primjer, ako odredite postavke fonta u uređivaču, one će se primijeniti na vizualizaciju podataka u grafani.

Grafana+Zabbix: Vizualizacija proizvodne linije
Ovako izgleda uređivač u Draw.io

Nakon spremanja šeme, ona će se pojaviti u grafani i biće moguće kreirati pravila za promjenu elemenata.

U parametrima () navodimo:

  • Opcije - postavite naziv pravila (Naziv pravila), naziv ili alias metrike čiji će se podaci koristiti (Primijeni na metriku). Tip agregacije podataka (Aggregation) utiče na konačni rezultat metrike, tako da Last znači da će biti odabrana posljednja vrijednost, avg znači prosječna vrijednost za period odabran u gornjem desnom uglu.
  • Pragovi - parametar vrijednosti praga, opisuje logiku primjene boje, odnosno odabrana boja će biti primijenjena na elemente na dijagramu, ovisno o metričkim podacima. U mom primjeru, ako je vrijednost metrike “0”, status će biti “U redu”, boja će biti zelena, ako je vrijednost “>1”, status će biti Kritičan, a boja će biti crvena.
  • Mapiranja boja/opisa alata” i “Mapiranje oznaka/teksta” — odabir elementa kola i njegovog scenarija ponašanja. U prvom scenariju objekt će biti obojen, u drugom - imat će tekst sa podacima iz metrike. Da biste odabrali objekt na dijagramu, trebate pritisnuti znak kola i kliknuti na dijagram mišem.

Grafana+Zabbix: Vizualizacija proizvodne linije
U ovom primjeru slikam pumpu i njenu strelicu crvenom ako radi i zelenom ako ne radi.

Uz pomoć dodatka za dijagram toka uspio sam nacrtati dijagram cijele linije na kojem:

  1. boja agregata se mijenja prema njihovom statusu
  2. postoji alarm za nedostatak proizvoda u kontejnerima
  3. prikazuje se podešavanje frekvencije motora
  4. brzina punjenja/pražnjenja prvog rezervoara
  5. broji se broj ciklusa rada linije (batch).

Grafana+Zabbix: Vizualizacija proizvodne linije
Vizualizacija proizvodne linije

rezultat

Najteže mi je bilo da dobijem podatke od kontrolora. Zahvaljujući svestranosti Zabbixa u smislu prikupljanja podataka i fleksibilnosti Grafane putem dodataka, bilo je potrebno samo nekoliko dana da se napravi sveobuhvatan ekran za praćenje proizvodne linije. Vizualizacija je omogućila pregled grafikona i statistike statusa, kao i lak pristup putem weba svima koji su zainteresirani - sve to je omogućilo brzo prepoznavanje uskih grla i neefikasne upotrebe agregata.

zaključak

Jako mi se dopao paket Zabbix + Grafana i preporučujem da obratite pažnju na njega ako trebate brzo obraditi podatke s kontrolera ili senzora bez programiranja ili implementacije složenih komercijalnih proizvoda. Naravno, ovo neće zamijeniti profesionalne SCADA sisteme, ali će biti dovoljno kao alat za centralizirano praćenje cjelokupne proizvodnje.

izvor: www.habr.com

Dodajte komentar