Grafana+Zabbix: Визуализация на производствената линия

В тази статия искам да споделя опита си от използването на системи с отворен код Zabbix и Grafana за визуализиране на работата на производствените линии. Информацията може да бъде полезна за тези, които търсят бърз начин за визуално показване или анализ на събраните данни в проекти за индустриална автоматизация или IoT. Статията не е подробно ръководство, а по-скоро концепция за система за мониторинг, базирана на софтуер с отворен код за производствено предприятие.

Инструменти

Zabbix – използваме го от дълго време за наблюдение на IT инфраструктурата на завода. Системата се оказа толкова удобна и универсална, че започнахме да въвеждаме данни от производствени линии, сензори и контролери в нея. Това ни позволи да съберем всички данни за показателите на едно място, да направим прости графики на потреблението на ресурси и производителността на оборудването, но наистина ни липсваха анализи и красиви графики.

Графана е мощен инструмент за анализ и визуализация на данни. Голям брой плъгини ви позволяват да вземате данни от различни източници (zabbix, clickhouse, influxDB), да ги обработвате в движение (изчислявате средна стойност, сума, разлика и т.н.) и да рисувате всякакви графики (от прости линии, скоростомери , таблици до сложни диаграми ).

Draw.io - услуга, която ви позволява да рисувате в онлайн редактор от проста блокова диаграма до етажен план. Има много готови шаблони и нарисувани обекти. Данните могат да бъдат експортирани във всички основни графични формати или xml.

Всичко това заедно

Изписани са много статии за това как да инсталирате и конфигурирате Grafana и Zabbix, аз ще говоря за основните точки на конфигурацията.

Създава се „мрежов възел“ (хост) на Zabbix сървъра, който ще притежава „елементи от данни“ (елемент) с показатели от нашите сензори. Препоръчително е предварително да обмислите имената на възлите и елементите от данни и да ги направите възможно най-структурирани, тъй като ще имаме достъп до тях от graphana чрез регулярни изрази. Този подход е удобен, защото можете да получите данни от група елементи с една заявка.

За да конфигурирате grafana, ще трябва да инсталирате допълнителни добавки:

  • Zabbix от Александър Зобнин (alexanderzobnin-zabbix-app) - интеграция със zabbix
  • natel-discrete-panel - плъгин за дискретна визуализация върху хоризонтална диаграма
  • pierosavi-imageit-panel - плъгин за показване на данни върху вашето изображение
  • agenty-flowcharting-panel - плъгин за визуализация на динамична диаграма от draw.io

Самата интеграция със Zabbix се конфигурира в grafana, елемент от менюто ConfigurationData sourcesZabbix. Там трябва да посочите api адреса на zabbix сървъра, имам това http://zabbix.local/zabbix/api_jsonrpc.php, и логин с парола за достъп. Ако всичко е направено правилно, при запазване на настройките ще има съобщение с номера на версията на api: zabbix API версия: 5.0.1

Създаване на табло за управление

Тук започва самата магия на grafana и нейните добавки.

плъгин на natel-discrete-panel
Имаме данни за статусите на двигателите по линиите (работещ = 1, неработещ = 0). Използвайки дискретната графика, можем да начертаем скала, която ще покаже: състоянието на двигателя, колко минути / часа или % е работил и колко често е бил стартиран.

Grafana+Zabbix: Визуализация на производствената линия
Визуализация на състоянието на двигателя

Според мен това е една от най-добрите графики за визуализиране на производителността на хардуера. Веднага можете да видите колко време не работи, в какви режими работи по-често. Може да има много данни, възможно е да ги обобщите по диапазони, да конвертирате по стойности (ако стойността е "1", тогава се показва като "ON")

pierosavi-imageit-панел плъгин

Изображението е удобно за използване, когато вече имате начертана диаграма или план на стаята, върху която искате да приложите данни от сензори. В настройките за визуализация трябва да посочите url адреса на изображението и да добавите сензорните елементи, от които се нуждаете. Елементът се появява на снимката и може да бъде поставен на правилното място с мишката.

Grafana+Zabbix: Визуализация на производствената линия
Схема на пещта с показатели за температура и налягане

плъгин за панел за блокове на агенти

Бих искал да ви разкажа повече за създаването на визуализация на FlowCharting, тъй като това е невероятно функционален инструмент. Тя ви позволява да направите динамична мнемоника, чиито елементи ще отговарят на стойностите на показателите (промяна на цвят, позиция, име и т.н.).

Получаване на данни

Създаването на всеки елемент за визуализация в grafana започва с искане за данни от източника, в нашия случай това е zabbix. С помощта на заявки трябва да получим всички показатели, които искаме да използваме в диаграмата. Подробностите за показателите са имената на елементите от данни в Zabbix, можете да посочите както отделен показател, така и набор с филтриране чрез регулярен израз. В моя пример полето Елемент съдържа израза: "/(^ред 1)|(наличност)|(тиквички)/" - това означава: изберете всички показатели, чието име започва стриктно с "ред 1" или съдържа думата "наличност " или съдържа думата "тиквички"

Grafana+Zabbix: Визуализация на производствената линия
Пример за настройка на заявка за данни за двигателите на първа линия и наличието на суровини

Преобразуване на данни

Изходните данни може не винаги да са във формата, в която трябва да ги покажем. Например, имаме ежеминутни данни за теглото на продукт в контейнер (kg) и искаме да покажем скоростта на запълване в t/h. Правя го по следния начин: вземам данните за теглото и ги конвертирам с функцията delta graphana, която изчислява разликата между метричните стойности, така че текущото тегло се преобразува в kg/min. След това умножавам по 0.06, за да приведа резултата в тонове/час. Тъй като показателят за тегло се използва в множество заявки, ще му дам нов псевдоним (setAlias) и ще го използвам в правилото за изобразяване.

Grafana+Zabbix: Визуализация на производствената линия
Пример за използване на делта параметър и множител и преименуване на показател в заявка

Ето още един пример за трансформация на данни: Трябваше да изчисля броя на партидите (стартиране на цикъл = стартиране на двигателя). Показателят се изчислява въз основа на състоянието на двигателя "ред 1 - помпа на резервоара 1 (статус)". Трансформация: ние променяме данните на оригиналната метрика с делта функцията (разлика в стойността), така че метриката ще има стойност "+1" за стартиране на двигателя, "-1" за спиране и "0", когато двигателят не работи промени статуса си. След това премахвам всички стойности по-малки от 1 и ги сумирам. Резултатът е броят на стартиранията на двигателя.

Grafana+Zabbix: Визуализация на производствената линия
Пример за преобразуване на данни от текущо състояние в брой стартирания

Сега за самата визуализация

В настройките на дисплея има бутон "Edit Draw", той стартира редактор, в който можете да начертаете диаграма. Всеки обект на диаграмата има свои собствени параметри. Например, ако зададете настройки на шрифта в редактора, те ще бъдат приложени към визуализацията на данни в grafana.

Grafana+Zabbix: Визуализация на производствената линия
Ето как изглежда редакторът в Draw.io

След като запазите схемата, тя ще се появи в graphana и ще можете да създавате правила за промяна на елементите.

В параметрите () посочваме:

  • Опции - задайте името на правилото (Rule name), името или псевдонима на показателя, чиито данни ще се използват (Apply to metrics). Видът на агрегирането на данни (Aggregation) влияе върху крайния резултат на показателя, така че Last означава, че ще бъде избрана последната стойност, avg означава средната стойност за периода, избран в горния десен ъгъл.
  • Прагове - параметър на праговата стойност, описва логиката на прилагане на цвета, тоест избраният цвят ще бъде приложен към елементите на диаграмата, в зависимост от метричните данни. В моя пример, ако стойността на показателя е „0“, статусът ще бъде „Добре“, цветът ще бъде зелен, ако стойността е „>1“, статусът ще бъде Критичен и цветът ще бъде червен.
  • Color/Tooltip Mappings” и „Label/Text Mappings” — избор на елемент от веригата и неговия сценарий на поведение. В първия сценарий обектът ще бъде боядисан, във втория - ще има текст с данни от метриката. За да изберете обект от диаграмата, трябва да натиснете знака на веригата и да кликнете върху диаграмата с мишката.

Grafana+Zabbix: Визуализация на производствената линия
В този пример рисувам помпата и нейната стрелка в червено, ако работи, и в зелено, ако не работи.

С помощта на плъгина за блок-схеми успях да начертая диаграма на цялата линия, на която:

  1. цветът на агрегатите се променя според състоянието им
  2. има аларма за липса на продукт в контейнери
  3. се показва настройката на честотата на двигателя
  4. скорост на пълнене/изпразване на първия резервоар
  5. броят на циклите на работа на линията (партида) се отчита

Grafana+Zabbix: Визуализация на производствената линия
Визуализация на производствената линия

Резултат

Най-трудно ми беше да получа данните от контрольорите. Благодарение на гъвкавостта на Zabbix по отношение на събирането на данни и гъвкавостта на Grafana чрез плъгини, бяха необходими само няколко дни, за да се създаде цялостен екран за наблюдение на производствената линия. Визуализацията направи възможно преглед на графики и статистически данни за състоянието, плюс лесен достъп през мрежата за всеки заинтересован - всичко това направи възможно бързото идентифициране на тесните места и неефективното използване на агрегатите.

Заключение

Наистина ми хареса пакетът Zabbix + Grafana и препоръчвам да му обърнете внимание, ако трябва бързо да обработвате данни от контролери или сензори, без да програмирате или внедрявате сложни търговски продукти. Разбира се, това няма да замени професионалните SCADA системи, но ще бъде достатъчно като инструмент за централизиран мониторинг на цялото производство.

Източник: www.habr.com

Добавяне на нов коментар