Grafana+Zabbix: Візуалізацыя працы вытворчай лініі

У гэтым артыкуле я хачу падзяліцца досведам выкарыстання open source сістэм Zabbix і Grafana для візуалізацыі працы вытворчых ліній. Інфармацыя можа быць карысная тым, хто шукае хуткі спосаб візуальнага адлюстравання ці аналітыкі сабраных дадзеных у праектах прамысловай аўтаматызацыі ці IoT. Артыкул не з'яўляецца падрабязным кіраўніцтвам, гэта хутчэй канцэпцыя сістэмы маніторынгу, заснаваная на адкрытым праграмным забеспячэнні для вытворчага прадпрыемства.

інструментар

Zabbix - Яго мы выкарыстоўваем даўно для маніторынгу ІТ інфраструктуры завода. Сістэма аказалася настолькі зручнай і ўніверсальнай, што мы сталі заводзіць у яе дадзеныя з вытворчых ліній, датчыкаў і кантролераў. Гэта нам дазволіла сабраць усе дадзеныя метрык у адным месцы, зрабіць простыя графікі выдатку рэсурсаў і прадукцыйнасці абсталявання, але вельмі не хапала аналітыкі і прыгожых графікаў.

Графана – гэта наймагутная прылада для аналітыкі і візуалізацыі дадзеных. Вялікая колькасць убудоў дазваляюць забіраць дадзеныя з розных крыніц (zabbix, clickhouse, influxDB), апрацоўваць іх на лёце (лічыць сярэдняе значэнне, суму, розніцу і г.д.) і маляваць разнастайныя графікі (ад простых ліній, спідометраў, табліц да складаных схем ).

Draw.io – сэрвіс, які дазваляе ў анлайн рэдактары намаляваць ад просты блок схемы да плана памяшканняў. Ёсць шмат гатовых шаблонаў і намаляваных аб'ектаў. Дадзеныя можна экспартаваць ва ўсе асноўныя графічныя фарматы ці XML.

Збіраны ўсе разам

Артыкул як усталяваць і наладзіць Grafana і Zabbix напісана шмат, я распавяду пра асноўныя моманты канфігурацыі.

На Zabbix серверы ствараецца "вузел сеткі" (host), якому будуць належаць "элементы дадзеных" (item) з метрыкамі ад нашых датчыкаў. Імёны вузлоў і элементаў дадзеных пажадана прадумаць загадзя і зрабіць максімальна структураваным, бо да іх мы будзем звяртацца з графаны праз рэгулярныя выразы. Такі падыход зручны тым, што можна адным запытам атрымліваць дадзеныя з групы элементаў.

Для наладкі графаны спатрэбіцца ўсталяваць дадатковыя плагіны:

  • Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) - інтэграцыя з zabbix
  • natel-discrete-panel – убудова для дыскрэтнай візуалізацыі на гарызантальным графіцы
  • pierosavi-imageit-panel – убудова для адлюстравання дадзеных па-над сваёй карцінкай.
  • agenty-flowcharting-panel - убудова для дынамічнай візуалізацыі схемы з draw.io

Сама інтэграцыя з заббіксам наладжваецца ў графане, пункт меню ConfigurationData sourcesZabbix. Там трэба ўказаць адрас api zabbix сервера, у мяне гэта http://zabbix.local/zabbix/api_jsonrpc.php, і лагін з паролем для доступу. Калі ўсё зроблена правільна, пры захаванні настроек будзе паведамленне з нумарам версіі api: zabbix API version: 5.0.1

Ствараем Dashboard

Вось тут пачынаецца тая самая магія графаны і яе плагінаў.

Убудова natel-discrete-panel
У нас ёсць дадзеныя аб статусах рухавікоў на лініях (працуе = 1, не працуе = 0). Пры дапамозе графіка discrete мы можам намаляваць шкалу, на якой будзе відаць: статут рухавіка, колькі ён прапрацаваў хвілінах/гадзіне або % і як часта запускаўся.

Grafana+Zabbix: Візуалізацыя працы вытворчай лініі
Візуалізацыя статусаў рухавікоў

На мой погляд, гэта адзін з найлепшых графікаў для візуалізацыі прадукцыйнасці абсталявання. Адразу бачна колькі часу яно прастойвае, у якіх рэжымах працуе часцей. Дадзеных можа быць шмат, ёсць магчымасць іх агрэгацыі па дыяпазонах, пераўтварэнне па значэннях (калі значэнне "1", то адлюстроўваць як "ON")

Убудова pierosavi-imageit-panel

Imageit зручна выкарыстоўваць калі ў вас ужо ёсць намаляваная схема ці план памяшкання, на якую вы хочаце нанесці дадзеныя з датчыкаў. У наладах візуалізацыі трэба паказаць url адрас да карцінкі і дадаць патрэбныя вам элементы sensor. Элемент з'яўляецца на малюнку і яго можна размясціць у патрэбным месцы мышкай.

Grafana+Zabbix: Візуалізацыя працы вытворчай лініі
Схема печы з метрыкамі тэмпературы і ціскі

Убудова agenty-flowcharting-panel

Пра стварэнне візуалізацыі FlowCharting я хацеў бы расказаць больш падрабязна, бо гэта неверагодна функцыянальная прылада. Ён дазваляе зрабіць дынамічную мнемосхему, элементы якой будуць рэагаваць на значэнні метрык (мяняць колер, становішча, назва і г.д.).

Атрыманне дадзеных

Стварэнне любога элемента візуалізацыі ў графане пачынаецца з запыту даных з крыніцы, у нашым выпадку гэта zabbix. Пры дапамозе запытаў трэба атрымаць усе метрыкі, якімі мы жадаем скарыстацца на схеме. Рэквізіты метрык - гэта імёны элементаў дадзеных у заббіксе, можна паказаць як асобную метрыку, так і мноства з фільтраваннем праз рэгулярнае выраз. У маім прыкладзе поле Item утрымоўвае выраз: "/(^лінія 1)|(наяўнасць)|(шынок)/" - гэта азначае: адабраць усе метрыкі, імя якіх строга пачынаецца з "лінія 1" або ўтрымоўвае слова "наяўнасць" або ўтрымоўвае слова «кабачок»

Grafana+Zabbix: Візуалізацыя працы вытворчай лініі
Прыклад настройкі запыту даных аб рухавіках першай лініі і наяўнасці сыравіны

Пераўтварэнне дадзеных

Зыходныя дадзеныя могуць быць не заўсёды ў тым выглядзе, у якім нам трэба іх адлюстраваць. Напрыклад, у нас ёсць штохвілінныя дадзеныя аб вазе прадукта ў ёмістасці (кг), і нам трэба адлюстраваць хуткасць запаўнення ў т/гадзіну. Я гэта раблю наступным чынам: бяру дадзеныя аб вазе і пераўтвору іх функцыяй графаны delta, якая лічыць розніцу паміж значэннямі метрыкі, бо бягучая вага ператвараецца ў кг/мін. Затым памнажаю на 0.06 для прывядзення выніку ў тоны / гадзіну. Так як метрыка вагі выкарыстоўваецца ў некалькіх запытах, я паказваю для яе новы псеўданім (setAlias) і буду яго выкарыстоўваць у правіле візуалізацыі.

Grafana+Zabbix: Візуалізацыя працы вытворчай лініі
Прыклад выкарыстання параметру delta і множніка і перайменавання метрыкі ў запыце

Вось яшчэ прыклад пераўтварэнні дадзеных: мне трэба было падлічыць кол-ва замесаў (пачатак цыклу = пуск рухавіка). Метрыка лічыцца на аснове статусу рухавіка "лінія 1 - помпа адпампоўкі з бака 1 (статус)". Пераўтварэнне: дадзеныя зыходнай метрыкі змяняем функцыяй delta (розніца значэнняў), такім чынам у метрыцы будзе значэнне 1 для пуску рухавіка, -1 для прыпынку і 0 калі рухавік не змяняе свой статут. Затым прыбіраю ўсе значэння меншыя за 1 і сумую іх. У выніку атрымліваецца кол-ць пускаў рухавіка.

Grafana+Zabbix: Візуалізацыя працы вытворчай лініі
Прыклад пераўтварэнні дадзеных з бягучага статуту ў кольк пускаў

Цяпер пра саму візуалізацыю

У наладах адлюстравання ёсць кнопка "Edit Draw", яна запускае рэдактар, у якім можна намаляваць схему. У кожнага аб'екта на схеме ёсць свае параметры. Напрыклад, калі пазначыць налады шрыфта ў рэдактары – яны будуць прымяняцца да візуалізацыі дадзеных у графане.

Grafana+Zabbix: Візуалізацыя працы вытворчай лініі
Так выглядае рэдактар ​​у Draw.io

Пасля захавання схемы, яна з'явіцца ў графане і можна будзе ствараць правілы змены элементаў.

У параметрах () мы паказваем:

  • Options - задаецца імя правіла (Rule name), назва або псеўданім метрыкі, дадзеныя якой будуць выкарыстоўвацца (Apply to metrics). Тып агрэгацыі дадзеных (Aggregation) уплывае на канчатковы вынік метрыкі, так Last - азначае, што будзе абрана апошняе значэнне, avg - сярэдняе значэнне за перыяд, абраны ў верхнім правым куце.
  • Thresholds - параметр парогавых значэнняў, апісвае логіку прымянення колеру, гэта значыць абраны колер будзе прымяняцца да элементаў на схеме ў залежнасці ад дадзеных метрыкі. У маім прыкладзе пры значэнні метрык "0" - статут "Ok" колер будзе зялёны, пры значэнні ">1" статут Critical і колер будзе чырвоны.
  • Color/Tooltip Mappings» і «Label/Text Mappings» - выбар элемента схемы і сцэнара яго паводзін. У першым сцэнары аб'ект будзе зафарбаваны, у другім - на ім будзе тэкст з дадзенымі з метрыкі. Для выбару аб'екта на схеме трэба націснуць знак ланцуга і клікнуць мышкай на схеме.

Grafana+Zabbix: Візуалізацыя працы вытворчай лініі
На гэтым прыкладзе я зафарбоўваю помпа і яго стрэлку чырвоным колерам калі ён працуе і зялёным калі не

Пры дапамозе плагіна flowcharting мне ўдалося намаляваць схему ўсёй лініі, на якой:

  1. змяняецца колер агрэгатаў у адпаведнасці з іх статусам
  2. ёсць сігналізацыя адсутнасці прадукта ў ёмістасцях
  3. адлюстроўваецца настройка частот рухавікоў
  4. хуткасць запаўнення/скіду першага бака
  5. падлічваецца кольк-ць цыклаў працы лініі (замесы)

Grafana+Zabbix: Візуалізацыя працы вытворчай лініі
Візуалізацыя працы вытворчай лініі

Вынік

Самым складаным для мяне было атрымаць дадзеныя з кантролераў. Дзякуючы ўніверсальнасці заббікса ў плане атрымання дадзеных і гнуткасці графаны за кошт убудоў, запатрабавалася ўсяго пару дзён для стварэння комплекснага экрана маніторынгу вытворчай лініі. Візуалізацыя дала магчымасць прагляду графікаў і статыстыкі станаў, плюс лёгкі доступ праз вэб усім зацікаўленым - усё гэта дазволіла хутка выяўляць вузкія месцы і неэфектыўнае выкарыстанне агрэгатаў.

Заключэнне

Мне вельмі спадабалася звязак Zabbix+Grafana і я рэкамендую звярнуць на яе ўвага, калі вам трэба хутка апрацаваць дадзеныя з кантролераў ці датчыкаў без праграмавання ці ўкараненні складаных камерцыйных прадуктаў. Безумоўна, гэта не заменіць прафесійныя SCADA сістэмы, але будзе дастаткова як інструмент цэнтралізаванага маніторынгу ўсёй вытворчасці.

Крыніца: habr.com

Дадаць каментар