Զեկույց Դարիա Վիլկովայի կողմից Zabbix Meetup Online-ի համար
Ես կցանկանայի ձեզ ներկայացնել PostgreSQL-ի և օպերացիոն համակարգի մոնիտորինգի գործիքը, որը մեր ընկերությունը մշակում է Zabbix-ի միջոցով:
Մենք վաղուց ընտրել ենք Zabbix-ը որպես մոնիտորինգի մեր գործիք, քանի որ այն բաց կոդով հարթակ է, որն աջակցում է ակտիվ համայնքի կողմից, որը շատ տարածված է Ռուսաստանում:
Մենք ստեղծեցինք ակտիվ գործակալ՝ Mamonsu-ն, որն ապահովում էր ավելի ճկուն մոնիտորինգ, քան այն ժամանակ թույլատրված ստանդարտ գործիքները, և ապահովում էր չափումների հավաքումը և դրանց ուղարկումը Zabbix սերվեր: Մեր ընկերությունում Mamonsu-ն օգտագործվում է աուդիտներ իրականացնելիս:
Մամոնսու
Mamonsu-ն ակտիվ գործակալ է (Zabbix Trapper) PostgreSQL-ի և օպերացիոն համակարգի մոնիտորինգի համար: Mamonsu-ն (գրված է Python-ով) թույլ է տալիս հինգ րոպեում կարգավորել PostgreSQL-ի և օպերացիոն համակարգի մոնիտորինգի կարգավորումները:
Mamonsu-ն ունի լրացուցիչ գործիքներ.
- mamonsu tune-ը հրաման է, որը խմբագրում է կարգավորումները PostgreSQL կազմաձևման ֆայլում այն մեքենայի համար, որի վրա տեղադրված է Mamonsu գործակալը:
- mamonsu report-ը հրաման է, որը պատասխաններ է տալիս օպերացիոն համակարգի և PostgreSQL-ի մասին:
Mamonsu-ն տեղադրվում է DBMS սերվերի վրա, հավաքում է տեղեկատվություն, այն կազմում է JSON, որն ուղարկվում է վիզուալիզացիայի համար Zabbix Server, որտեղ պետք է լինի ձևանմուշ իր չափումների համար։
Mamonsu աշխատանքային սխեման
Մամոնսուի առանձնահատկությունները
- Արդյունավետ աշխատել PostgreSQL-ի հետ. PostgreSQL-ի հետ մշտական կապը Mamonsu-ի հիմնական առավելությունն է: Այս դեպքում կապերի առավելագույն քանակը հավասար է տվյալների բազաների առավելագույն քանակին, որոնց այն միանում է:
- Ընդարձակելիություն. Mamonsu-ն ամբողջովին plug-in գործակալ է, և յուրաքանչյուր պլագինի ֆիքսված կառուցվածքի և Python-ի հարաբերական պարզության շնորհիվ կարող եք հեշտությամբ սովորել, թե ինչպես գրել նոր կամ խմբագրել ստանդարտ պլագիններ, այսինքն՝ չափումների հավաքածուի պարամետրերը:
- Մոնիտորինգի համար չափումների լայն ծածկույթ PotgreSQL-ի համար, ներառյալ ընդլայնման հատուկ չափումները:
- Արագ մեկնարկ, առկայություն տուփից դուրս.
- Կաղապարների և կազմաձևման ֆայլերի բեռնում, ինչպես նաև բեռնում Zabbix սերվերում:
- Խաչաձեւ հարթակ, ինչը կարևոր է մեր հաճախորդների համար, ովքեր օգտագործում են Linux-ի տարբեր բաշխումներ, այդ թվում՝ ներքին:
- BSD կետի լիցենզիա.
Այս պահին մենք առաջարկում ենք բազմաթիվ պլագիններ և յուրաքանչյուր հաջորդ տարբերակում փորձում ենք նոր բան ավելացնել։
- 14 պլագին PostgreSQL-ի համար,
- 8 պլագիններ OS Linux-ի համար,
- 4 պլագին OS Windows-ի համար:
Mamonsu-ն հավաքում է ավելի քան 110 PostgreSQL և օպերացիոն համակարգի չափումներ.
- 70 PostgreSQL չափումներ,
- 40 OS Linux չափումներ,
- 8 OS Windows չափումներ.
Հիմնական չափումները ներառում են DBMS-ի առկայությունը, կապերի քանակը, տվյալների բազայի չափը, անցակետերը, կարդալու/գրելու արագությունը, կողպեքները, ավտովակուումային գործընթացների քանակը և WAL-ի ստեղծման արագությունը: Հասանելի չափումների ամբողջական ցանկը, ինչպես նաև բոլոր գործիքների մանրամասն նկարագրությունը հասանելի է այստեղ
GitHub-ում առկա չափումների ցանկ
Վազիր Mamonsu-ն 5 րոպեում
Դուք կարող եք կարգավորել PostgreSQL-ը և օպերացիոն համակարգի մոնիտորինգը Mamonsu-ի միջոցով 5 րոպեում՝ հետևելով 5 պարզ քայլերին:
- Mamonsu-ի տեղադրում. Mamonsu-ն կարող է կառուցվել աղբյուրից կամ օգտվելով առկա փաթեթներից:
$ git clone ... && cd mamonsu && python setup.py
build && python setup.py install
- Միացման կարգավորում. Անհրաժեշտ է agent.conf ֆայլում նշել PostgreSQL-ի և Zabbix Server-ի միացման պարամետրերը:
/etc/mamonsu/agent.conf
- Արտահանել ձևանմուշը Zabbix սերվեր.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- Զաբբիքս սերվերին հյուրընկալող ավելացնելը. Արտահանված ձևանմուշը ավտոմատ կերպով կմիանա Zabbix սերվերի նոր հոսթին:
$ mamonsu zabbix host create mamonsu-demo
- Գործարկել.
$ service mamonsu start
Մամոնսուի զարգացման ուղղությունները
Որպես Mamonsu-ի մշակման մի մաս, մենք նախատեսում ենք կատարելագործել չափումները և ստեղծել նոր հավելումներ, օրինակ՝ առանձին աղյուսակների չափը վերահսկելու համար հավելված: Մենք նաև նախատեսում ենք կատարելագործել և ստեղծել լրացուցիչ գործիքներ, ինչպես նաև ընդլայնել ինքնակարգավորման հնարավորությունները հրամանի միջոցով mamonsu մեղեդի.
PostgreSQL մոնիտորինգի մոդուլը որպես Zabbix Agent 2-ի մաս
PostgreSQL-ին միանալու համար օգտագործվում է արագ և հանրաճանաչ դրայվեր
Առայժմ մենք օգտագործում ենք երկու ինտերֆեյս՝ Exporter, որը կանչում է կարգավորիչը բանալիով, և Configurator Zabbix Agent 2, որը կարդում և ստուգում է սերվերի միացման պարամետրերը, որոնք նշված են կազմաձևման ֆայլում:
Մենք փորձեցինք օպտիմիզացնել DBMS-ի աշխատանքը՝ խմբավորելով չափումները և օգտագործելով ցուցիչ չափումների և մետրային խմբերի համար, ինչպես նաև օգտագործելով մետրային խմբերը JSON-ում որպես կախյալ փոփոխականներ (կախվածության տարրեր) և ցածր մակարդակի հայտնաբերում (հայտնաբերման կանոններ):
Հիմնական հատկանիշները
- չեկերի միջև մշտական կապ պահպանել PostgreSQL-ի հետ.
- հարցումների ճկուն ընդմիջումների աջակցություն;
- համատեղելի է PostgreSQL տարբերակների հետ՝ սկսած 10-ից, և Zabbix Server-ի հետ՝ սկսած 4.4 տարբերակից;
- Միաժամանակ մի քանի PostgreSQL ատյաններ միացնելու և վերահսկելու հնարավորությունը պայմանավորված է նրանով, որ Zabbix Agent 2-ը թույլ է տալիս ստեղծել մի քանի նիստեր:
PostgreSQL կապի պարամետրի մակարդակները
Ընդհանուր առմամբ, PostgreSQL-ին միացման պարամետրերի երեք մակարդակ հասանելի են, այսինքն՝ առաջադրանքներ և կարգավորումներ.
- Համաշխարհային,
- Նիստեր
- Մակրոներ.
-
Գլոբալ պարամետրերը սահմանվում են գործակալի մակարդակով, Session և Macros պարամետրերը որոշում են տվյալների բազայի միացման պարամետրերը:
-
PostgreSQL-ի միացման պարամետրերը - ֆայլում դրված են նիստերը zabbix_agent2.conf.
PostgreSQL կապի պարամետրեր - Նիստեր
- Հիմնաբառից հետո Sessions նշվում է սեսիայի եզակի անուն, որը պետք է նշվի բանալիում (կաղապար):
- Պարամետրեր URI и Օգտագործողի անունը պահանջվում է յուրաքանչյուր նստաշրջանի համար:
- Եթե տվյալների շտեմարանի անունը նշված չէ, ապա օգտագործվում է բոլոր PostgreSQL նիստերի կանխադրված ընդհանուր տվյալների բազայի անունը, որը նույնպես նշված է կազմաձևման ֆայլում:
- PostgreSQL-ին միացման պարամետրերը - մակրոները նշված են ձևանմուշի մետրային բանալիում (նման է Zabbix Agent 1-ում օգտագործվող մեթոդին), այսինքն՝ դրանք ստեղծվում են ձևանմուշում և այնուհետև որպես պարամետրեր նշվում են բանալիում: Այս դեպքում մակրոների հաջորդականությունը ամրագրված է, այսինքն, օրինակ. URI միշտ առաջինը նշված է:
PostgreSQL կապի պարամետրեր - Մակրոներ
PostgreSQL մոնիտորինգի մոդուլն արդեն ներառում է ավելի քան 95 չափումներ, որոնք թույլ են տալիս ծածկել PostgreSQL պարամետրերի բավականին լայն շրջանակ, ներառյալ.
- միացումների քանակը
- տվյալների բազաների ծավալը,
- wal ֆայլերի արխիվացում,
- կառավարման կետեր,
- «փքված» սեղանների քանակը,
- կրկնօրինակման կարգավիճակը,
- կրկնօրինակի ուշացում:
PostgreSQL չափիչները տեղեկատվական չեն առանց օպերացիոն համակարգի պարամետրերի: Բայց Zabbix Agent 2-ն արդեն գիտի, թե ինչպես հավաքել օպերացիոն համակարգի պարամետրերը, ուստի ամբողջական պատկեր ստանալու համար մենք պարզապես անհրաժեշտ կաղապարները միացնում ենք ցանցային հանգույցին։
Կառավարող
Բեռնիչը մոդուլի հիմնական միավորն է, որում կատարվում է հարցումն ինքնին, և որը թույլ է տալիս ստանալ չափումներ:
Պարզ չափիչ ստանալու համար.
- Ստեղծեք ֆայլ՝ նոր չափանիշ ստանալու համար.
zabbix/src/go/plugins/postgres/handler_uptime.go
- Մենք կապում ենք փաթեթը և նշում ենք չափումների եզակի բանալին (ստեղները).
- Մենք խնդրանքով ստեղծում ենք մշակող, այսինքն՝ նախաձեռնում ենք փոփոխական, որը կպարունակի արդյունքը.
- Մենք կատարում ենք հարցումը.
Անհրաժեշտ է ստուգել սխալների հարցումը, որից հետո արդյունքը կվերցվի Zabbix Agent 2 գործընթացով:
- Գրանցեք նոր մետրային բանալի.
Չափանիշը գրանցելուց հետո դուք կարող եք վերակառուցել գործակալը նոր չափման միջոցով:
Մոդուլը հասանելի է Zabbix 5.0-ից սկսած կայքում
Շնորհակալություն ձեր ուշադրության համար:
Օգտակար հղումներ
Source: www.habr.com