Grafana+Zabbix: Vizualizacija rada proizvodne linije

U ovom članku želim podijeliti svoje iskustvo korištenja open source sustava Zabbix i Grafana za vizualizaciju rada proizvodnih linija. Informacije mogu biti korisne onima koji traže brz način vizualnog prikaza ili analize prikupljenih podataka u projektima industrijske automatizacije ili IoT-a. Članak nije detaljan vodič, već prije koncept za sustav nadzora temeljen na softveru otvorenog koda za proizvodni pogon.

alat

Zabbix – koristimo ga već duže vrijeme za praćenje informatičke infrastrukture pogona. Sustav se pokazao toliko praktičnim i univerzalnim da smo u njega počeli unositi podatke iz 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 stvarno nam je nedostajala analitika i lijepi grafikoni.

grafana je moćan alat za analitiku i vizualizaciju podataka. Velik broj dodataka omogućuje uzimanje podataka iz raznih izvora (zabbix, clickhouse, influxDB), njihovu obradu u hodu (izračunavanje prosječne vrijednosti, zbroja, razlike itd.) i crtanje svih vrsta grafikona (od jednostavnih linija, brzinomjeri, tablice do složenih dijagrama ).

Draw.io – usluga koja vam omogućuje crtanje od jednostavnog blok dijagrama do tlocrta u online editoru. Postoji mnogo gotovih šablona i nacrtanih objekata. Podaci se mogu izvesti u sve glavne grafičke formate ili xml.

Sve skupa

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

Na Zabbix poslužitelju kreira se “mrežni čvor” (domaćin), koji će posjedovati “podatkovne elemente” (stavke) s metrikama naših senzora. Preporučljivo je unaprijed razmisliti o imenima čvorova i podatkovnih elemenata i učiniti ih što je moguće više strukturiranima, jer ćemo im pristupiti iz grafane putem regularnih izraza. Ovaj pristup je prikladan jer možete dobiti podatke iz grupe elemenata jednim zahtjevom.

Za konfiguraciju grafane morat ćete instalirati dodatne dodatke:

  • Zabbix 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 dinamičku vizualizaciju dijagrama iz draw.io

Sama integracija sa Zabbixom se konfigurira u grafani, stavka izbornika ConfigurationData sourcesZabbix. Tamo trebate navesti adresu api zabbix poslužitelja, to je ono što imam http://zabbix.local/zabbix/api_jsonrpc.php, i prijavite se lozinkom za pristup. Ako je sve napravljeno ispravno, prilikom spremanja postavki pojavit će se poruka s brojem verzije api: zabbix API verzija: 5.0.1

Izrada nadzorne ploče

Ovdje počinje čarolija Grafane i njenih dodataka.

Dodatak Natel-discrete-panel
Imamo podatke o statusu motora na vodovima (radi = 1, ne radi = 0). Pomoću diskretnog grafa možemo nacrtati ljestvicu koja će pokazati: status motora, koliko je minuta/sati ili % radio i koliko je često pokretan.

Grafana+Zabbix: Vizualizacija rada proizvodne linije
Vizualizacija statusa motora

Po mom mišljenju, ovo je jedan od najboljih grafikona za vizualizaciju performansi hardvera. Odmah možete vidjeti koliko je dugo bio u stanju mirovanja i u kojim načinima radi češće. Podataka može biti puno, moguće ih je agregirati po rasponima, transformirati po vrijednostima (ako je vrijednost "1", onda je prikaži kao "ON")

Dodatak pierosavi-imageit-panel

Imageit je praktičan za korištenje kada već imate nacrtan dijagram ili tlocrt na koji želite primijeniti podatke sa senzora. U postavkama vizualizacije trebate navesti URL slike i dodati elemente senzora koji su vam potrebni. Element se pojavljuje na slici i može se mišem postaviti na željeno mjesto.

Grafana+Zabbix: Vizualizacija rada proizvodne linije
Dijagram peći s metrikom temperature i tlaka

agenty-flowcharting-panel dodatak

Želio bih detaljnije govoriti o stvaranju vizualizacije FlowChartinga, budući da je to nevjerojatno funkcionalan alat. Omogućuje vam da napravite dinamički mnemonički dijagram, čiji će elementi reagirati na vrijednosti metrike (promijeniti boju, položaj, naziv itd.).

Primanje podataka

Kreiranje bilo kojeg elementa vizualizacije u Grafani započinje zahtjevom za podacima iz izvora, u našem slučaju to je zabbix. Pomoću upita moramo dobiti sve metrike koje želimo koristiti u dijagramu. Detalji metrike su nazivi podatkovnih elemenata u Zabbixu; možete navesti pojedinačnu metriku ili skup filtriran 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 s “linija 1” ili sadrži riječ “dostupnost ” ili sadrži riječ "tikvice"

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

Pretvorba podataka

Izvorni podaci možda neće uvijek biti u obliku u kojem ih trebamo prikazati. Na primjer, imamo podatke iz minute u minutu o težini proizvoda u kontejneru (kg), a trebamo prikazati brzinu punjenja u t/sat. To radim na sljedeći način: uzimam podatke o težini i pretvaram ih pomoću funkcije grafana delta, koja izračunava razliku između metričkih vrijednosti, tako da se trenutna težina pretvara u kg/min. Zatim pomnožim s 0.06 da dobijem rezultat u tonama/sat. Budući da se metrika težine koristi u nekoliko upita, navodim novi alias za nju (setAlias) i koristit ću je u pravilu vizualizacije.

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

Evo još jednog primjera pretvorbe podataka: Trebao sam izbrojati serije (početak ciklusa = pokretanje motora). Metrika se izračunava na temelju statusa motora "linija 1 - pumpa pumpa iz spremnika 1 (status)". Transformacija: mijenjamo podatke izvorne metrike s delta funkcijom (razlika vrijednosti), pa će metrika imati vrijednost “+1” za pokretanje motora, “-1” za zaustavljanje i “0” kada motor radi ne mijenja svoj status. Zatim uklanjam sve vrijednosti manje od 1 i zbrajam ih. Rezultat je broj pokretanja motora.

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

Sada o samoj vizualizaciji

U postavkama zaslona nalazi se gumb "Uredi crtež", koji pokreće uređivač u kojem možete nacrtati dijagram. Svaki objekt na dijagramu ima svoje parametre. Na primjer, ako odredite postavke fonta u editoru, one će se primijeniti na vizualizaciju podataka u Grafani.

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

Nakon spremanja dijagrama, pojavit će se u grafani i možete kreirati pravila za promjenu elemenata.

U parameters() specificiramo:

  • Opcije—postavite naziv pravila, naziv ili alias metrike čiji će se podaci koristiti (Primijeni na metrike). Vrsta agregacije podataka (Aggregation) utječe na konačni rezultat metrike, pa Last znači da će biti odabrana zadnja vrijednost, avg je prosječna vrijednost za odabrano razdoblje u gornjem desnom kutu.
  • Pragovi - parametar vrijednosti praga opisuje logiku primjene boja, odnosno odabrana boja će se primijeniti na elemente na dijagramu ovisno o metričkim podacima. U mom primjeru, ako je vrijednost metrike "0", status je "U redu", boja će biti zelena, ako je vrijednost ">1", status će biti Kritičan, a boja će biti crvena.
  • Color/Tooltip Mappings" i "Label/Text Mappings" - odabir elementa sheme i scenarija za njegovo ponašanje. U prvom scenariju objekt će biti prebojan, u drugom će na njemu biti tekst s podacima iz metrike. Za odabir objekta na dijagramu potrebno je kliknuti na znak kruga i kliknuti na dijagram.

Grafana+Zabbix: Vizualizacija rada proizvodne linije
U ovom primjeru crpku i njezinu strelicu bojim crveno ako radi i zeleno ako ne radi.

Koristeći dodatak za dijagram toka, uspio sam nacrtati dijagram cijele linije na kojem:

  1. boja jedinica se mijenja u skladu s njihovim statusom
  2. postoji alarm za nedostatak proizvoda u spremnicima
  3. prikazuje se postavka frekvencije motora
  4. prva brzina punjenja/ispuštanja spremnika
  5. izračunava se broj ciklusa rada linije (serija).

Grafana+Zabbix: Vizualizacija rada proizvodne linije
Vizualizacija rada proizvodne linije

Rezultirati

Najteže mi je bilo dobiti podatke od kontrolora. Zahvaljujući svestranosti Zabbixa u pogledu primanja podataka i fleksibilnosti Grafane zbog dodataka, bilo je potrebno samo nekoliko dana za izradu sveobuhvatnog ekrana za praćenje proizvodne linije. Vizualizacija je omogućila pregled grafikona i državne statistike te jednostavan pristup putem weba svima zainteresiranima – sve je to omogućilo brzo prepoznavanje uskih grla i neučinkovitog korištenja jedinica.

Zaključak

Jako mi se svidjela kombinacija Zabbix+Grafana i preporučujem da obratite pozornost na nju ako trebate brzo obraditi podatke s kontrolera ili senzora bez programiranja ili implementacije složenih komercijalnih proizvoda. Naravno, ovo neće zamijeniti profesionalne SCADA sustave, ali će biti dovoljno kao alat za centralizirani nadzor cjelokupne proizvodnje.

Izvor: www.habr.com

Dodajte komentar