Grafana+Zabbix: өндірістік желі жұмысын визуализациялау

Бұл мақалада мен өндірістік желілердің жұмысын визуализациялау үшін ашық бастапқы кодты Zabbix және Grafana жүйелерін пайдалану тәжірибеммен бөліскім келеді. Ақпарат өнеркәсіптік автоматтандыру немесе IoT жобаларында жиналған деректерді көрнекі түрде көрсету немесе талдаудың жылдам әдісін іздейтіндерге пайдалы болуы мүмкін. Мақала егжей-тегжейлі оқу құралы емес, керісінше өндірістік зауытқа арналған ашық бастапқы бағдарламалық қамтамасыз ету негізіндегі мониторинг жүйесінің тұжырымдамасы.

Құралдар жинағы

Zabbix – Біз оны зауыттың ІТ-инфрақұрылымын бақылау үшін көптен бері пайдаланып келеміз. Жүйе соншалықты ыңғайлы және әмбебап болды, біз оған өндірістік желілерден, сенсорлардан және контроллерлерден деректерді енгізе бастадық. Бұл бізге барлық метрикалық деректерді бір жерде жинауға, ресурстарды тұтынудың және жабдық өнімділігінің қарапайым графиктерін жасауға мүмкіндік берді, бірақ бізде аналитика мен әдемі графиктер жетіспеді.

Графана аналитика мен деректерді визуализациялаудың қуатты құралы болып табылады. Плагиндердің үлкен саны әртүрлі көздерден деректерді алуға (zabbix, clickhouse, influxDB), оны жылдам өңдеуге (орташа мәнді, қосындыны, айырмашылықты және т.б. есептеуге) және графиктердің барлық түрлерін (қарапайым сызықтардан, спидометрлер, күрделі диаграммаларға арналған кестелер).

Сурет.io – онлайн-редакторда қарапайым блок-схемадан еден жоспарына дейін сызуға мүмкіндік беретін қызмет. Көптеген дайын шаблондар мен сызылған нысандар бар. Деректерді барлық негізгі графикалық пішімдерге немесе xml-ге экспорттауға болады.

Оны бәріне бірге қою

Grafana және Zabbix орнату және конфигурациялау туралы көптеген мақалалар жазылған, мен сізге негізгі конфигурация нүктелері туралы айтып беремін.

Zabbix серверінде «желі түйіні» (хост) жасалады, ол сенсорларымыздың көрсеткіштері бар «деректер элементтерін» (элементтер) иеленеді. Түйіндердің және деректер элементтерінің атауларын алдын ала ойластырып, оларды мүмкіндігінше құрылымдық етіп жасаған жөн, өйткені біз оларға тұрақты өрнектер арқылы графанадан қол жеткіземіз. Бұл тәсіл ыңғайлы, себебі бір сұраумен элементтер тобынан деректерді алуға болады.

Графананы конфигурациялау үшін сізге қосымша плагиндерді орнату қажет:

  • Александр Зобниннің Zabbix (alexanderzobnin-zabbix-app) – zabbix-пен интеграция
  • natel-discrete-panel – көлденең графикте дискретті визуализацияға арналған плагин
  • pierosavi-imageit-panel – кескіннің жоғарғы жағында деректерді көрсетуге арналған плагин
  • agenty-flowcharting-panel – draw.io сайтынан диаграмманы динамикалық визуализациялауға арналған плагин

Zabbix-пен интеграцияның өзі графана, ConfigurationData sourcesZabbix мәзір элементінде конфигурацияланған. Онда сіз api zabbix серверінің мекенжайын көрсетуіңіз керек, бұл менде бар http://zabbix.local/zabbix/api_jsonrpc.php, және кіру үшін құпия сөзбен кіріңіз. Егер бәрі дұрыс орындалса, параметрлерді сақтау кезінде api нұсқасының нөмірі бар хабарлама пайда болады: zabbix API нұсқасы: 5.0.1

Бақылау тақтасын құру

Grafana және оның плагиндерінің сиқыры осы жерден басталады.

Natel-дискретті-панельдік плагин
Бізде желілердегі қозғалтқыштардың күйі туралы деректер бар (жұмыс = 1, жұмыс істемейді =0). Дискретті графикті пайдалана отырып, біз мыналарды көрсететін масштабты сала аламыз: қозғалтқыштың күйі, оның қанша минут/сағат немесе % жұмыс істегені және қаншалықты жиі іске қосылғаны.

Grafana+Zabbix: өндірістік желі жұмысын визуализациялау
Қозғалтқыш күйлерінің визуализациясы

Менің ойымша, бұл аппараттық құрал өнімділігін визуализациялауға арналған ең жақсы графиктердің бірі. Сіз оның қанша уақыт бос тұрғанын және қандай режимдерде жиі жұмыс істейтінін бірден көре аласыз. Деректер көп болуы мүмкін, оларды ауқымдар бойынша біріктіруге, мәндер бойынша түрлендіруге болады (егер мән «1» болса, оны «ҚОСУЛЫ» ретінде көрсету)

Plugin pierosavi-imageit-panel

Суретті сізде сызылған диаграмма немесе сенсорлардан деректерді қолданғыңыз келетін еден жоспары болған кезде пайдалану ыңғайлы. Визуализация параметрлерінде суретке URL мекенжайын көрсетіп, қажетті сенсор элементтерін қосу керек. Элемент суретте пайда болады және оны тінтуірдің көмегімен қажетті орынға қоюға болады.

Grafana+Zabbix: өндірістік желі жұмысын визуализациялау
Температура және қысым көрсеткіштері бар пештің диаграммасы

Agenty-flowcharting-panel плагині

Мен FlowCharting визуализациясын жасау туралы толығырақ айтқым келеді, өйткені бұл керемет функционалды құрал. Ол динамикалық мнемоникалық диаграмманы жасауға мүмкіндік береді, оның элементтері метрика мәндеріне әсер етеді (түсін, орнын, атауын және т.б. өзгерту).

Деректерді қабылдау

Grafana-да кез келген визуализация элементін құру дереккөзден деректерді сұраудан басталады, біздің жағдайда бұл zabbix. Сұрауларды пайдалана отырып, диаграммада қолданғымыз келетін барлық көрсеткіштерді алуымыз керек. Метрика мәліметтері - Zabbix бағдарламасындағы деректер элементтерінің атаулары; сіз жеке метриканы немесе тұрақты өрнек арқылы сүзілген жиынды көрсете аласыз. Менің мысалдағы Элемент өрісінде мына өрнек бар: “/(^1-жол)|(қол жетімділік)|(цуккини)/” – бұл мынаны білдіреді: аты қатаң түрде “1-жолдан” басталатын немесе “қолжетімділік” сөзін қамтитын барлық көрсеткіштерді таңдаңыз. » немесе құрамында «цуккини» сөзі бар

Grafana+Zabbix: өндірістік желі жұмысын визуализациялау
Бірінші қатардағы қозғалтқыштар мен шикізаттың болуы туралы деректерге сұранысты орнату мысалы

Деректерді түрлендіру

Бастапқы деректер әрқашан біз оны көрсетуіміз қажет пішінде болмауы мүмкін. Мысалы, бізде контейнердегі өнімнің салмағы (кг) туралы минут сайын деректер бар және біз толтыру жылдамдығын т/сағатпен көрсетуіміз керек. Мен мұны келесі жолмен жасаймын: салмақ деректерін алып, оны метрикалық мәндер арасындағы айырмашылықты есептейтін графана дельта функциясымен түрлендіремін, осылайша ағымдағы салмақ кг/минутқа айналады. Содан кейін нәтижені тонна/сағатпен алу үшін 0.06-ға көбейтемін. Салмақ көрсеткіші бірнеше сұрауларда пайдаланылғандықтан, мен оған жаңа бүркеншік атын (setAlias) көрсетемін және оны визуализация ережесінде қолданамын.

Grafana+Zabbix: өндірістік желі жұмысын визуализациялау
Дельта және көбейткіш параметрін пайдалану және сұраудағы көрсеткішті қайта атау мысалы

Деректерді түрлендірудің тағы бір мысалы: маған партиялардың санын санау керек болды (циклдің басталуы = қозғалтқыштың іске қосылуы). Метрика қозғалтқыш күйіне негізделген «1-жол – 1 резервуардан сорғы сорғы (күй)» негізінде есептеледі. Трансформация: біз бастапқы метриканың деректерін үшбұрыш функциясымен өзгертеміз (мәндер айырмашылығы), осылайша метрика қозғалтқышты іске қосу үшін «+1», тоқтату үшін «-1» және қозғалтқыш жұмыс істегенде «0» мәніне ие болады. күйін өзгертпейді. Содан кейін мен 1-ден аз барлық мәндерді алып тастаймын және оларды қосамын. Нәтиже - қозғалтқышты іске қосу саны.

Grafana+Zabbix: өндірістік желі жұмысын визуализациялау
Деректерді ағымдағы күйден басталу санына түрлендіру мысалы

Енді визуализацияның өзі туралы

Дисплей параметрлерінде «Сызбаны өңдеу» түймесі бар, ол диаграмма салуға болатын редакторды іске қосады. Диаграммадағы әрбір нысанның өз параметрлері бар. Мысалы, өңдегіште қаріп параметрлерін көрсетсеңіз, олар Grafana бағдарламасында деректерді визуализациялауға қолданылады.

Grafana+Zabbix: өндірістік желі жұмысын визуализациялау
Draw.io-да редактор осылай көрінеді

Диаграмманы сақтағаннан кейін ол графанада пайда болады және сіз элементтерді өзгерту ережелерін жасай аласыз.

Parameters() ішінде біз мынаны көрсетеміз:

  • Параметрлер — ереже атын, деректері пайдаланылатын метриканың атын немесе бүркеншік атын орнатыңыз (Көрсеткіштерге қолдану). Деректерді біріктіру түрі (Агрегация) көрсеткіштің соңғы нәтижесіне әсер етеді, сондықтан Соңғы соңғы мән таңдалатынын білдіреді, орташа мән жоғарғы оң жақ бұрышта таңдалған кезең үшін орташа мән болып табылады.
  • Шектер – шекті мәндер параметрі түсті қолдану логикасын сипаттайды, яғни метрикалық деректерге байланысты таңдалған түс диаграммадағы элементтерге қолданылады. Менің мысалда, егер метрика мәні «0» болса, күй «Жарайды», түс жасыл болады, егер мән «>1» болса, күй Критикалық болады және түс қызыл болады.
  • Түс/Құралдар кеңесінің салыстырулары» және «Жапсырма/Мәтінді салыстыру» - схема элементін және оның әрекетіне сценарийді таңдау. Бірінші сценарийде нысан боялады, екіншісінде метрика деректері бар мәтін болады. Диаграммадағы объектіні таңдау үшін схеманың белгісін басып, диаграмманы басу керек.

Grafana+Zabbix: өндірістік желі жұмысын визуализациялау
Бұл мысалда мен сорғыны және оның көрсеткіні жұмыс істесе қызыл түске, ал жұмыс істемесе жасыл түске бояймын.

Блок-схема плагинін қолдана отырып, мен бүкіл сызықтың диаграммасын сыза алдым, ол бойынша:

  1. бірліктердің түсі олардың күйіне сәйкес өзгереді
  2. ыдыстарда өнімнің жоқтығы туралы дабыл бар
  3. қозғалтқыш жиілігінің параметрі көрсетіледі
  4. бірінші резервуарды толтыру/түсіру жылдамдығы
  5. желі жұмысының (партиясының) циклдарының саны есептеледі

Grafana+Zabbix: өндірістік желі жұмысын визуализациялау
Өндіріс желісінің жұмысын визуализациялау

нәтиже

Мен үшін ең қиыны контроллерлерден деректер алу болды. Zabbix-тің деректерді қабылдау тұрғысынан әмбебаптығы және плагиндерге байланысты Grafana икемділігі арқасында, жан-жақты өндірістік желіні бақылау экранын жасау үшін небәрі екі күн қажет болды. Визуализация графиктер мен мемлекеттік статистиканы көруге мүмкіндік берді, сонымен қатар қызығушылық танытқандардың барлығына веб арқылы оңай қол жеткізуге мүмкіндік берді - мұның бәрі кедергілерді және бірліктерді тиімсіз пайдалануды жылдам анықтауға мүмкіндік берді.

қорытынды

Маған Zabbix+Grafana комбинациясы қатты ұнады және күрделі коммерциялық өнімдерді бағдарламаламай немесе іске асырмай, контроллерлерден немесе сенсорлардан деректерді жылдам өңдеу қажет болса, оған назар аударуды ұсынамын. Әрине, бұл кәсіби SCADA жүйелерін алмастырмайды, бірақ ол бүкіл өндірісті орталықтандырылған бақылау құралы ретінде жеткілікті болады.

Ақпарат көзі: www.habr.com

пікір қалдыру