Бұл мақалада мен өндірістік желілердің жұмысын визуализациялау үшін ашық бастапқы кодты 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 серверінің мекенжайын көрсетуіңіз керек, бұл менде бар
Бақылау тақтасын құру
Grafana және оның плагиндерінің сиқыры осы жерден басталады.
Natel-дискретті-панельдік плагин
Бізде желілердегі қозғалтқыштардың күйі туралы деректер бар (жұмыс = 1, жұмыс істемейді =0). Дискретті графикті пайдалана отырып, біз мыналарды көрсететін масштабты сала аламыз: қозғалтқыштың күйі, оның қанша минут/сағат немесе % жұмыс істегені және қаншалықты жиі іске қосылғаны.
Қозғалтқыш күйлерінің визуализациясы
Менің ойымша, бұл аппараттық құрал өнімділігін визуализациялауға арналған ең жақсы графиктердің бірі. Сіз оның қанша уақыт бос тұрғанын және қандай режимдерде жиі жұмыс істейтінін бірден көре аласыз. Деректер көп болуы мүмкін, оларды ауқымдар бойынша біріктіруге, мәндер бойынша түрлендіруге болады (егер мән «1» болса, оны «ҚОСУЛЫ» ретінде көрсету)
Plugin pierosavi-imageit-panel
Суретті сізде сызылған диаграмма немесе сенсорлардан деректерді қолданғыңыз келетін еден жоспары болған кезде пайдалану ыңғайлы. Визуализация параметрлерінде суретке URL мекенжайын көрсетіп, қажетті сенсор элементтерін қосу керек. Элемент суретте пайда болады және оны тінтуірдің көмегімен қажетті орынға қоюға болады.
Температура және қысым көрсеткіштері бар пештің диаграммасы
Agenty-flowcharting-panel плагині
Мен FlowCharting визуализациясын жасау туралы толығырақ айтқым келеді, өйткені бұл керемет функционалды құрал. Ол динамикалық мнемоникалық диаграмманы жасауға мүмкіндік береді, оның элементтері метрика мәндеріне әсер етеді (түсін, орнын, атауын және т.б. өзгерту).
Деректерді қабылдау
Grafana-да кез келген визуализация элементін құру дереккөзден деректерді сұраудан басталады, біздің жағдайда бұл zabbix. Сұрауларды пайдалана отырып, диаграммада қолданғымыз келетін барлық көрсеткіштерді алуымыз керек. Метрика мәліметтері - Zabbix бағдарламасындағы деректер элементтерінің атаулары; сіз жеке метриканы немесе тұрақты өрнек арқылы сүзілген жиынды көрсете аласыз. Менің мысалдағы Элемент өрісінде мына өрнек бар: “/(^1-жол)|(қол жетімділік)|(цуккини)/” – бұл мынаны білдіреді: аты қатаң түрде “1-жолдан” басталатын немесе “қолжетімділік” сөзін қамтитын барлық көрсеткіштерді таңдаңыз. » немесе құрамында «цуккини» сөзі бар
Бірінші қатардағы қозғалтқыштар мен шикізаттың болуы туралы деректерге сұранысты орнату мысалы
Деректерді түрлендіру
Бастапқы деректер әрқашан біз оны көрсетуіміз қажет пішінде болмауы мүмкін. Мысалы, бізде контейнердегі өнімнің салмағы (кг) туралы минут сайын деректер бар және біз толтыру жылдамдығын т/сағатпен көрсетуіміз керек. Мен мұны келесі жолмен жасаймын: салмақ деректерін алып, оны метрикалық мәндер арасындағы айырмашылықты есептейтін графана дельта функциясымен түрлендіремін, осылайша ағымдағы салмақ кг/минутқа айналады. Содан кейін нәтижені тонна/сағатпен алу үшін 0.06-ға көбейтемін. Салмақ көрсеткіші бірнеше сұрауларда пайдаланылғандықтан, мен оған жаңа бүркеншік атын (setAlias) көрсетемін және оны визуализация ережесінде қолданамын.
Дельта және көбейткіш параметрін пайдалану және сұраудағы көрсеткішті қайта атау мысалы
Деректерді түрлендірудің тағы бір мысалы: маған партиялардың санын санау керек болды (циклдің басталуы = қозғалтқыштың іске қосылуы). Метрика қозғалтқыш күйіне негізделген «1-жол – 1 резервуардан сорғы сорғы (күй)» негізінде есептеледі. Трансформация: біз бастапқы метриканың деректерін үшбұрыш функциясымен өзгертеміз (мәндер айырмашылығы), осылайша метрика қозғалтқышты іске қосу үшін «+1», тоқтату үшін «-1» және қозғалтқыш жұмыс істегенде «0» мәніне ие болады. күйін өзгертпейді. Содан кейін мен 1-ден аз барлық мәндерді алып тастаймын және оларды қосамын. Нәтиже - қозғалтқышты іске қосу саны.
Деректерді ағымдағы күйден басталу санына түрлендіру мысалы
Енді визуализацияның өзі туралы
Дисплей параметрлерінде «Сызбаны өңдеу» түймесі бар, ол диаграмма салуға болатын редакторды іске қосады. Диаграммадағы әрбір нысанның өз параметрлері бар. Мысалы, өңдегіште қаріп параметрлерін көрсетсеңіз, олар Grafana бағдарламасында деректерді визуализациялауға қолданылады.
Draw.io-да редактор осылай көрінеді
Диаграмманы сақтағаннан кейін ол графанада пайда болады және сіз элементтерді өзгерту ережелерін жасай аласыз.
Parameters() ішінде біз мынаны көрсетеміз:
- Параметрлер — ереже атын, деректері пайдаланылатын метриканың атын немесе бүркеншік атын орнатыңыз (Көрсеткіштерге қолдану). Деректерді біріктіру түрі (Агрегация) көрсеткіштің соңғы нәтижесіне әсер етеді, сондықтан Соңғы соңғы мән таңдалатынын білдіреді, орташа мән жоғарғы оң жақ бұрышта таңдалған кезең үшін орташа мән болып табылады.
- Шектер – шекті мәндер параметрі түсті қолдану логикасын сипаттайды, яғни метрикалық деректерге байланысты таңдалған түс диаграммадағы элементтерге қолданылады. Менің мысалда, егер метрика мәні «0» болса, күй «Жарайды», түс жасыл болады, егер мән «>1» болса, күй Критикалық болады және түс қызыл болады.
- Түс/Құралдар кеңесінің салыстырулары» және «Жапсырма/Мәтінді салыстыру» - схема элементін және оның әрекетіне сценарийді таңдау. Бірінші сценарийде нысан боялады, екіншісінде метрика деректері бар мәтін болады. Диаграммадағы объектіні таңдау үшін схеманың белгісін басып, диаграмманы басу керек.
Бұл мысалда мен сорғыны және оның көрсеткіні жұмыс істесе қызыл түске, ал жұмыс істемесе жасыл түске бояймын.
Блок-схема плагинін қолдана отырып, мен бүкіл сызықтың диаграммасын сыза алдым, ол бойынша:
- бірліктердің түсі олардың күйіне сәйкес өзгереді
- ыдыстарда өнімнің жоқтығы туралы дабыл бар
- қозғалтқыш жиілігінің параметрі көрсетіледі
- бірінші резервуарды толтыру/түсіру жылдамдығы
- желі жұмысының (партиясының) циклдарының саны есептеледі
Өндіріс желісінің жұмысын визуализациялау
нәтиже
Мен үшін ең қиыны контроллерлерден деректер алу болды. Zabbix-тің деректерді қабылдау тұрғысынан әмбебаптығы және плагиндерге байланысты Grafana икемділігі арқасында, жан-жақты өндірістік желіні бақылау экранын жасау үшін небәрі екі күн қажет болды. Визуализация графиктер мен мемлекеттік статистиканы көруге мүмкіндік берді, сонымен қатар қызығушылық танытқандардың барлығына веб арқылы оңай қол жеткізуге мүмкіндік берді - мұның бәрі кедергілерді және бірліктерді тиімсіз пайдалануды жылдам анықтауға мүмкіндік берді.
қорытынды
Маған Zabbix+Grafana комбинациясы қатты ұнады және күрделі коммерциялық өнімдерді бағдарламаламай немесе іске асырмай, контроллерлерден немесе сенсорлардан деректерді жылдам өңдеу қажет болса, оған назар аударуды ұсынамын. Әрине, бұл кәсіби SCADA жүйелерін алмастырмайды, бірақ ол бүкіл өндірісті орталықтандырылған бақылау құралы ретінде жеткілікті болады.
Ақпарат көзі: www.habr.com