Այս հոդվածում ես ուզում եմ կիսվել բաց կոդով Zabbix և Grafana համակարգերի օգտագործման իմ փորձով՝ արտադրական գծերի աշխատանքը պատկերացնելու համար: Տեղեկատվությունը կարող է օգտակար լինել նրանց համար, ովքեր փնտրում են արագ ճանապարհ՝ տեսողականորեն ցուցադրելու կամ վերլուծելու հավաքագրված տվյալները արդյունաբերական ավտոմատացման կամ IoT նախագծերում: Հոդվածը մանրամասն ձեռնարկ չէ, այլ ավելի շուտ՝ արտադրական գործարանի համար բաց կոդով ծրագրաշարի վրա հիմնված մոնիտորինգի համակարգի հայեցակարգ:
Инструментарий
Zabbix- ը – Մենք այն երկար ժամանակ օգտագործում ենք գործարանի ՏՏ ենթակառուցվածքը վերահսկելու համար: Համակարգն այնքան հարմար և համընդհանուր ստացվեց, որ մենք սկսեցինք դրա մեջ մուտքագրել տվյալներ արտադրական գծերից, սենսորներից և կարգավորիչներից: Սա մեզ թույլ տվեց հավաքել չափման բոլոր տվյալները մեկ տեղում, կազմել ռեսուրսների սպառման և սարքավորումների կատարողականի պարզ գրաֆիկներ, սակայն մեզ իսկապես բացակայում էր վերլուծությունը և գեղեցիկ գրաֆիկները:
Գրաֆանա հզոր գործիք է վերլուծության և տվյալների վիզուալիզացիայի համար: Պլագինների մեծ քանակությունը թույլ է տալիս վերցնել տվյալներ տարբեր աղբյուրներից (zabbix, clickhouse, influxDB), անմիջապես մշակել դրանք (հաշվել միջին արժեքը, գումարը, տարբերությունը և այլն) և նկարել բոլոր տեսակի գրաֆիկները (պարզ գծերից, արագաչափեր, աղյուսակներ մինչև բարդ դիագրամներ):
Նկար.io – ծառայություն, որը թույլ է տալիս պարզ բլոկային դիագրամից մինչև հատակագիծ առցանց խմբագրում նկարել: Կան բազմաթիվ պատրաստի կաղապարներ և գծված առարկաներ։ Տվյալները կարող են արտահանվել բոլոր հիմնական գրաֆիկական ձևաչափերով կամ xml:
Այս ամենը միասին դնելով
Կան բազմաթիվ հոդվածներ գրված, թե ինչպես տեղադրել և կարգավորել Grafana-ն և Zabbix-ը, ես ձեզ կասեմ հիմնական կազմաձևման կետերի մասին:
Zabbix սերվերի վրա ստեղծվում է «ցանցային հանգույց» (հոսթ), որը կունենա «տվյալների տարրեր» (տարրեր)՝ մեր սենսորների չափագրմամբ: Ցանկալի է նախօրոք մտածել հանգույցների և տվյալների տարրերի անունները և դրանք հնարավորինս կառուցվածքային դարձնել, քանի որ մենք դրանք մուտք գործելու ենք grafana-ից կանոնավոր արտահայտությունների միջոցով: Այս մոտեցումը հարմար է, քանի որ մեկ խնդրանքով կարող եք տվյալներ ստանալ տարրերի խմբից:
Grafana-ն կարգավորելու համար ձեզ հարկավոր է տեղադրել լրացուցիչ պլագիններ.
- Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) – ինտեգրում zabbix-ի հետ
- natel-discrete-panel – պլագին հորիզոնական գրաֆիկի վրա դիսկրետ արտացոլման համար
- pierosavi-imageit-panel – պլագին ձեր պատկերի վերևում տվյալները ցուցադրելու համար
- agenty-flowcharting-panel – plugin գծապատկերի դինամիկ պատկերացման համար draw.io-ից
Ինտեգրումը Zabbix-ի հետ կազմաձևված է grafana-ում, ընտրացանկի ConfigurationData sourcesZabbix-ում: Այնտեղ դուք պետք է նշեք api zabbix սերվերի հասցեն, սա այն է, ինչ ես ունեմ
Վահանակի ստեղծում
Այստեղից է սկսվում Grafana-ի և նրա պլագինների կախարդանքը:
Natel-discrete-panel plugin
Մենք ունենք տվյալներ գծերի վրա շարժիչների կարգավիճակի մասին (աշխատող = 1, չաշխատող =0): Օգտագործելով դիսկրետ գրաֆիկը, մենք կարող ենք գծել սանդղակ, որը ցույց կտա՝ շարժիչի կարգավիճակը, քանի րոպե/ժամ կամ % է այն աշխատել և որքան հաճախ է գործարկվել:
Շարժիչի կարգավիճակների պատկերացում
Իմ կարծիքով, սա լավագույն գծապատկերներից մեկն է ապարատային կատարողականությունը պատկերացնելու համար: Դուք անմիջապես կարող եք տեսնել, թե որքան ժամանակ է այն անգործության մատնված և ինչ ռեժիմներում է այն ավելի հաճախ աշխատում: Կարող են լինել շատ տվյալներ, հնարավոր է դրանք համախմբել ըստ տիրույթների, փոխակերպել դրանք ըստ արժեքների (եթե արժեքը «1» է, ապա ցուցադրել որպես «ON»)
Plugin pierosavi-imageit-panel
Պատկերը հարմար է օգտագործել, երբ արդեն ունեք գծված դիագրամ կամ հատակագիծ, որի վրա ցանկանում եք կիրառել սենսորների տվյալները: Վիզուալիզացիայի կարգավորումներում դուք պետք է նշեք նկարի URL-ը և ավելացրեք ձեզ անհրաժեշտ սենսորային տարրերը: Տարրը հայտնվում է նկարում և մկնիկի օգնությամբ կարող է տեղադրվել ցանկալի տեղում։
Վառարանների դիագրամ ջերմաստիճանի և ճնշման ցուցանիշներով
agenty-flowcharting-panel plugin
Կցանկանայի ավելի մանրամասն խոսել FlowCharting վիզուալիզացիայի ստեղծման մասին, քանի որ այն անհավանական ֆունկցիոնալ գործիք է։ Այն թույլ է տալիս կատարել դինամիկ մնեմոնիկ դիագրամ, որի տարրերը կարձագանքեն չափումների արժեքներին (փոխել գույնը, դիրքը, անունը և այլն):
Տվյալների ստացում
Վիզուալիզացիայի ցանկացած տարրի ստեղծումը Grafana-ում սկսվում է աղբյուրից տվյալների խնդրանքով, մեր դեպքում դա zabbix է: Օգտագործելով հարցումները, մենք պետք է ստանանք բոլոր չափիչները, որոնք ցանկանում ենք օգտագործել դիագրամում: Մետրային մանրամասները Zabbix-ում տվյալների տարրերի անուններն են: Դուք կարող եք նշել կա՛մ անհատական չափանիշ, կա՛մ սովորական արտահայտության միջոցով զտված հավաքածու: Իմ օրինակում Item դաշտը պարունակում է արտահայտությունը. կամ պարունակում է «ցուկկինի» բառը
Առաջին գծի շարժիչների և հումքի առկայության վերաբերյալ տվյալների հարցման ձևավորման օրինակ
Տվյալների փոխակերպում
Աղբյուրի տվյալները միշտ չէ, որ կարող են լինել այն ձևով, որով մենք պետք է ցուցադրենք դրանք: Օրինակ, մենք ունենք րոպե առ րոպե տվյալներ տարայի մեջ ապրանքի քաշի մասին (կգ), և մենք պետք է ցուցադրենք լցման արագությունը տ/ժամով: Ես դա անում եմ հետևյալ կերպ՝ վերցնում եմ քաշի տվյալները և փոխակերպում այն grafana delta ֆունկցիայի միջոցով, որը հաշվարկում է մետրային արժեքների տարբերությունը, ուստի ընթացիկ քաշը վերածվում է կգ/րոպե։ Հետո ես բազմապատկում եմ 0.06-ով, որպեսզի արդյունքը ստացվի տոննա/ժամով: Քանի որ քաշի չափիչն օգտագործվում է մի քանի հարցումներում, ես դրա համար նշում եմ նոր կեղծանուն (setAlias) և այն կօգտագործեմ վիզուալիզացիայի կանոնում:
Դելտա և բազմապատկիչ պարամետրի օգտագործման և հարցումում չափանիշը վերանվանելու օրինակ
Ահա տվյալների փոխակերպման ևս մեկ օրինակ. ես պետք է հաշվեի խմբաքանակների քանակը (ցիկլի սկիզբ = շարժիչի մեկնարկ): Չափանիշը հաշվարկվում է շարժիչի կարգավիճակի հիման վրա «տող 1 - պոմպ պոմպ տանկ 1-ից (կարգավիճակ)»: Փոխակերպում. սկզբնական չափման տվյալները փոխում ենք եռանկյուն ֆունկցիայով (արժեքների տարբերություն), այնպես որ մետրիկը կունենա «+1» արժեքը շարժիչը գործարկելու համար, «-1»՝ կանգառի համար և «0», երբ շարժիչը չփոխել իր կարգավիճակը. Այնուհետև ես հանում եմ 1-ից փոքր բոլոր արժեքները և գումարում դրանք: Արդյունքը շարժիչի մեկնարկների քանակն է:
Տվյալների ընթացիկ կարգավիճակից մեկնարկների քանակի փոխակերպման օրինակ
Հիմա ինքնին վիզուալիզացիայի մասին
Ցուցադրման կարգավորումներում կա «Խմբագրել նկարը» կոճակը, այն գործարկում է խմբագիր, որտեղ կարող եք գծապատկեր նկարել: Դիագրամի յուրաքանչյուր օբյեկտ ունի իր պարամետրերը: Օրինակ, եթե խմբագրում նշեք տառատեսակի կարգավորումները, դրանք կկիրառվեն Grafana-ում տվյալների վիզուալիզացիայի համար:
Ահա թե ինչ տեսք ունի խմբագիրը Draw.io-ում
Դիագրամը պահպանելուց հետո այն կհայտնվի grafana-ում և կարող եք ստեղծել տարրեր փոխելու կանոններ:
Պարամետրերում () մենք նշում ենք.
- Ընտրանքներ - սահմանեք կանոնի անունը, անունը կամ այլանունը այն չափման համար, որի տվյալները կօգտագործվեն (Կիրառել չափումների համար): Տվյալների համախմբման տեսակը (Aggregation) ազդում է չափման վերջնական արդյունքի վրա, ուստի Last նշանակում է, որ վերջին արժեքը կընտրվի, միջին արժեքը վերին աջ անկյունում ընտրված ժամանակաշրջանի միջին արժեքն է:
- Շեմեր - շեմային արժեքների պարամետրը նկարագրում է գունային կիրառման տրամաբանությունը, այսինքն՝ ընտրված գույնը կկիրառվի դիագրամի տարրերի վրա՝ կախված մետրային տվյալներից: Իմ օրինակում, եթե չափման արժեքը «0» է, կարգավիճակը՝ «Լավ», գույնը կլինի կանաչ, եթե արժեքը «>1», կարգավիճակը կլինի Կրիտիկական, իսկ գույնը՝ կարմիր:
- Color/Tooltip Mappings» և «Label/Text Mappings» - ընտրելով սխեմայի տարրը և դրա վարքագծի սցենարը: Առաջին սցենարում օբյեկտը կնկարվի, երկրորդում՝ դրա վրա կլինի տեքստ՝ չափման տվյալների հետ: Դիագրամի վրա օբյեկտ ընտրելու համար հարկավոր է սեղմել սխեմայի նշանը և սեղմել դիագրամի վրա:
Այս օրինակում ես ներկում եմ պոմպը և նրա սլաքը կարմիր, եթե այն աշխատում է, և կանաչ, եթե այն չի աշխատում:
Օգտագործելով flowcharting plugin-ը, ես կարողացա նկարել ամբողջ գծի դիագրամը, որի վրա.
- միավորների գույնը փոխվում է իրենց կարգավիճակին համապատասխան
- ահազանգ կա տարաներում ապրանքի բացակայության մասին
- ցուցադրվում է շարժիչի հաճախականության կարգավորումը
- առաջին տանկի լցման/թափման արագությունը
- հաշվարկվում է գծի շահագործման ցիկլերի քանակը (խմբաքանակ):
Արտադրական գծի շահագործման պատկերացում
Արդյունք
Ինձ համար ամենադժվարը վերահսկիչներից տվյալներ ստանալն էր։ Տվյալների ստացման առումով Zabbix-ի բազմակողմանիության և պլագինների շնորհիվ Grafana-ի ճկունության շնորհիվ ընդամենը մի քանի օր պահանջվեց արտադրական գծի մոնիտորինգի համապարփակ էկրան ստեղծելու համար: Վիզուալիզացիան հնարավորություն տվեց դիտել գրաֆիկները և վիճակագրությունը, ինչպես նաև համացանցի միջոցով հեշտ հասանելիություն բոլոր հետաքրքրվածներին. այս ամենը հնարավորություն տվեց արագ բացահայտել խցանումները և միավորների անարդյունավետ օգտագործումը:
Ամփոփում
Ինձ շատ դուր եկավ Zabbix+Grafana համադրությունը, և ես խորհուրդ եմ տալիս ուշադրություն դարձնել դրան, եթե ձեզ անհրաժեշտ է արագ մշակել կարգավորիչներից կամ սենսորներից ստացված տվյալները՝ առանց ծրագրավորման կամ բարդ կոմերցիոն արտադրանքի ներդրման: Իհարկե, դա չի փոխարինի պրոֆեսիոնալ SCADA համակարգերին, բայց այն բավարար կլինի որպես ամբողջ արտադրության կենտրոնացված մոնիտորինգի գործիք:
Source: www.habr.com