PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix

PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix
Զեկույց Դարիա Վիլկովայի կողմից 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, որտեղ պետք է լինի ձևանմուշ իր չափումների համար։

PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix

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 կայքում:

PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix

GitHub-ում առկա չափումների ցանկ

Վազիր Mamonsu-ն 5 րոպեում

Դուք կարող եք կարգավորել PostgreSQL-ը և օպերացիոն համակարգի մոնիտորինգը Mamonsu-ի միջոցով 5 րոպեում՝ հետևելով 5 պարզ քայլերին:

  1. Mamonsu-ի տեղադրում. Mamonsu-ն կարող է կառուցվել աղբյուրից կամ օգտվելով առկա փաթեթներից:

$ git clone ... && cd mamonsu && python setup.py

build && python setup.py install

  1. Միացման կարգավորում. Անհրաժեշտ է agent.conf ֆայլում նշել PostgreSQL-ի և Zabbix Server-ի միացման պարամետրերը:

/etc/mamonsu/agent.conf

  1. Արտահանել ձևանմուշը Zabbix սերվեր.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Զաբբիքս սերվերին հյուրընկալող ավելացնելը. Արտահանված ձևանմուշը ավտոմատ կերպով կմիանա Zabbix սերվերի նոր հոսթին:

$ mamonsu zabbix host create mamonsu-demo

  1. Գործարկել.

$ service mamonsu start

Մամոնսուի զարգացման ուղղությունները

Որպես Mamonsu-ի մշակման մի մաս, մենք նախատեսում ենք կատարելագործել չափումները և ստեղծել նոր հավելումներ, օրինակ՝ առանձին աղյուսակների չափը վերահսկելու համար հավելված: Մենք նաև նախատեսում ենք կատարելագործել և ստեղծել լրացուցիչ գործիքներ, ինչպես նաև ընդլայնել ինքնակարգավորման հնարավորությունները հրամանի միջոցով mamonsu մեղեդի.

PostgreSQL մոնիտորինգի մոդուլը որպես Zabbix Agent 2-ի մաս

PostgreSQL-ին միանալու համար օգտագործվում է արագ և հանրաճանաչ դրայվեր pgx (PG վարորդ և գործիքակազմ Go-ի համար):

Առայժմ մենք օգտագործում ենք երկու ինտերֆեյս՝ Exporter, որը կանչում է կարգավորիչը բանալիով, և Configurator Zabbix Agent 2, որը կարդում և ստուգում է սերվերի միացման պարամետրերը, որոնք նշված են կազմաձևման ֆայլում:

Մենք փորձեցինք օպտիմիզացնել DBMS-ի աշխատանքը՝ խմբավորելով չափումները և օգտագործելով ցուցիչ չափումների և մետրային խմբերի համար, ինչպես նաև օգտագործելով մետրային խմբերը JSON-ում որպես կախյալ փոփոխականներ (կախվածության տարրեր) և ցածր մակարդակի հայտնաբերում (հայտնաբերման կանոններ):

Հիմնական հատկանիշները

  • չեկերի միջև մշտական ​​կապ պահպանել PostgreSQL-ի հետ.
  • հարցումների ճկուն ընդմիջումների աջակցություն;
  • համատեղելի է PostgreSQL տարբերակների հետ՝ սկսած 10-ից, և Zabbix Server-ի հետ՝ սկսած 4.4 տարբերակից;
  • Միաժամանակ մի քանի PostgreSQL ատյաններ միացնելու և վերահսկելու հնարավորությունը պայմանավորված է նրանով, որ Zabbix Agent 2-ը թույլ է տալիս ստեղծել մի քանի նիստեր:

PostgreSQL կապի պարամետրի մակարդակները

Ընդհանուր առմամբ, PostgreSQL-ին միացման պարամետրերի երեք մակարդակ հասանելի են, այսինքն՝ առաջադրանքներ և կարգավորումներ.

  • Համաշխարհային,
  • Նիստեր
  • Մակրոներ.

  1. Գլոբալ պարամետրերը սահմանվում են գործակալի մակարդակով, Session և Macros պարամետրերը որոշում են տվյալների բազայի միացման պարամետրերը:

  2. PostgreSQL-ի միացման պարամետրերը - ֆայլում դրված են նիստերը zabbix_agent2.conf.

PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix

PostgreSQL կապի պարամետրեր - Նիստեր

  • Հիմնաբառից հետո Sessions նշվում է սեսիայի եզակի անուն, որը պետք է նշվի բանալիում (կաղապար):
  • Պարամետրեր URI и Օգտագործողի անունը պահանջվում է յուրաքանչյուր նստաշրջանի համար:
  • Եթե ​​տվյալների շտեմարանի անունը նշված չէ, ապա օգտագործվում է բոլոր PostgreSQL նիստերի կանխադրված ընդհանուր տվյալների բազայի անունը, որը նույնպես նշված է կազմաձևման ֆայլում:

  1. PostgreSQL-ին միացման պարամետրերը - մակրոները նշված են ձևանմուշի մետրային բանալիում (նման է Zabbix Agent 1-ում օգտագործվող մեթոդին), այսինքն՝ դրանք ստեղծվում են ձևանմուշում և այնուհետև որպես պարամետրեր նշվում են բանալիում: Այս դեպքում մակրոների հաջորդականությունը ամրագրված է, այսինքն, օրինակ. URI միշտ առաջինը նշված է:

PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix

PostgreSQL կապի պարամետրեր - Մակրոներ

PostgreSQL մոնիտորինգի մոդուլն արդեն ներառում է ավելի քան 95 չափումներ, որոնք թույլ են տալիս ծածկել PostgreSQL պարամետրերի բավականին լայն շրջանակ, ներառյալ.

  • միացումների քանակը
  • տվյալների բազաների ծավալը,
  • wal ֆայլերի արխիվացում,
  • կառավարման կետեր,
  • «փքված» սեղանների քանակը,
  • կրկնօրինակման կարգավիճակը,
  • կրկնօրինակի ուշացում:

PostgreSQL չափիչները տեղեկատվական չեն առանց օպերացիոն համակարգի պարամետրերի: Բայց Zabbix Agent 2-ն արդեն գիտի, թե ինչպես հավաքել օպերացիոն համակարգի պարամետրերը, ուստի ամբողջական պատկեր ստանալու համար մենք պարզապես անհրաժեշտ կաղապարները միացնում ենք ցանցային հանգույցին։

Կառավարող

Բեռնիչը մոդուլի հիմնական միավորն է, որում կատարվում է հարցումն ինքնին, և որը թույլ է տալիս ստանալ չափումներ:

Պարզ չափիչ ստանալու համար.

  1. Ստեղծեք ֆայլ՝ նոր չափանիշ ստանալու համար.

zabbix/src/go/plugins/postgres/handler_uptime.go

  1. Մենք կապում ենք փաթեթը և նշում ենք չափումների եզակի բանալին (ստեղները).

PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix

  1. Մենք խնդրանքով ստեղծում ենք մշակող, այսինքն՝ նախաձեռնում ենք փոփոխական, որը կպարունակի արդյունքը.

PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix

  1. Մենք կատարում ենք հարցումը.

PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix

Անհրաժեշտ է ստուգել սխալների հարցումը, որից հետո արդյունքը կվերցվի Zabbix Agent 2 գործընթացով:

  1. Գրանցեք նոր մետրային բանալի.

PostgreSQL-ի մոնիտորինգ՝ օգտագործելով Zabbix

Չափանիշը գրանցելուց հետո դուք կարող եք վերակառուցել գործակալը նոր չափման միջոցով:

Մոդուլը հասանելի է Zabbix 5.0-ից սկսած կայքում https://www.zabbix.com/download. Zabbix-ի այս տարբերակում պարամետրերը սահմանվում են առանձին՝ հոսթի և պորտի միջոցով: Zabbix 5.0.2-ում, որը շուտով կթողարկվի, կապի պարամետրերը կմիավորվեն մեկ URI-ում:

Շնորհակալություն ձեր ուշադրության համար:

Օգտակար հղումներ

GitHub Mamonsu

Mamonsu Փաստաթղթեր

Zabbix Git

Source: www.habr.com

Добавить комментарий