Monitorimi i PostgreSQL me Zabbix

Monitorimi i PostgreSQL me Zabbix
Raporti i Darya Vilkovaya për Zabbix Meetup Online

Dua t'ju prezantoj me një mjet monitorimi për PostgreSQL dhe sistemin operativ, i cili po zhvillohet nga kompania jonë duke përdorur Zabbix.

E kemi zgjedhur Zabbix si mjet monitorimi prej kohësh, sepse është një platformë me burim të hapur, e mbështetur nga një komunitet aktiv, e cila gëzon një popullaritet të madh në Rusi.

Krijuam njĂ« agjent aktiv — Mamonsu, i cili siguron monitorim mĂ« fleksibĂ«l se sa lejonin mjetet standarde atĂ«herĂ« dhe siguron grumbullimin e metrikeve dhe dĂ«rgimin e tyre nĂ« Zabbix Server. NĂ« kompaninĂ« tonĂ«, Mamonsu pĂ«rdoret gjatĂ« auditit.

Mamonsu

Mamonsu është një agjent aktiv (Zabbix Trapper) për monitorimin e PostgreSQL dhe sistemit operativ. Mamonsu (i shkruar në Python) ju lejon të konfiguroni parametrat e monitorimit të PostgreSQL dhe sistemit operativ brenda pesë minutash.

Mamonsu ka mjete shtesë:

  • mamonsu tune — komandĂ« qĂ« redakton parametrat e konfigurimit nĂ« skedarin e konfigurimit tĂ« PostgreSQL pĂ«r makinĂ«n ku Ă«shtĂ« instaluar agjenti Mamonsu.
  • raporti mamonsu — njĂ« ekip qĂ« krijon pĂ«rgjigje pĂ«r sistemin operativ dhe PostgreSQL.

Mamonsu instalohet në serverin e DBMS, mbledh informacionin, e kompozon atë në JSON, i cili dërgohet për vizualizim në Zabbix Server, ku duhet të ekzistojë një shabllon për metrikat e tij.

Monitorimi i PostgreSQL me Zabbix

Skema e funksionimit të Mamonsu

Mundësitë e Mamonsu

  • Puna efektive me PostgreSQL. Lidhja e vazhdueshme me PostgreSQL Ă«shtĂ« avantazhi kryesor i Mamonsu. NdĂ«rkohĂ«, numri maksimal i lidhjeve Ă«shtĂ« i barabartĂ« me numrin maksimal tĂ« bazave tĂ« tĂ« dhĂ«nave, tĂ« cilave i Ă«shtĂ« lidhur.
  • ZgjerueshmĂ«ria. Mamonsu Ă«shtĂ« njĂ« agjent plotĂ«sisht "plugin", dhe falĂ« strukturĂ«s fikse tĂ« çdo plugin-i dhe thjeshtĂ«sisĂ« relative tĂ« Python, Ă«shtĂ« e lehtĂ« tĂ« mĂ«sohesh tĂ« shkruash tĂ« reja ose tĂ« redaktosh standardet e plugini, dmth parametrat e mbledhjes sĂ« metrikave.
  • GjerĂ«sia e mbulimit tĂ« metrikave pĂ«r monitorim pĂ«r PostgreSQL pĂ«rfshirĂ« metrika specifike tĂ« zgjerimeve.
  • Fillim i shpejtĂ«, disponueshmĂ«ria "nga kutia".
  • Shkarkimi i shablloneve dhe skedarĂ«ve tĂ« konfigurimeve, si dhe ngarkimi nĂ« Zabbix Server.
  • Kros-platformĂ«s, qĂ« Ă«shtĂ« e rĂ«ndĂ«sishme pĂ«r klientĂ«t tanĂ« qĂ« pĂ«rdorin distribucione tĂ« ndryshme Linux, pĂ«rfshirĂ« ato vendore.
  • licenca BSD-clause.

Aktualisht ofrojmë një shumëllojshmëri plugin-ësh, dhe në çdo version të ri përpiqemi të sjellim diçka të re.

  • 14 plugin-a pĂ«r PostgreSQL,
  • 8 plugin-a pĂ«r OS Linux,
  • 4 plugin-a pĂ«r OS Windows.

Mamonsu mbledh më shumë se 110 metrika PostgreSQL dhe operative:

  • 70 metrika PostgreSQL,
  • 40 metrika OS Linux,
  • 8 metrika OS Windows.

Metrikat kryesore përfshijnë disponueshmërinë e DBMS, numrin e lidhjeve, madhësinë e bazës së të dhënave, piketat, shpejtësinë e leximit/shkruarjes, bllokimet, numrin e proceseve të avtokohes dhe shpejtësinë e gjenerimit të WAL. Lista e plotë e metrikave në dispozicion dhe përshkrimi i detajuar i të gjitha mjeteve janë të disponueshme në repozitorit faqen GitHub.

Monitorimi i PostgreSQL me Zabbix

Lista e metrikave në faqen GitHub

Kryeni Mamonsu brenda 5 minutash

Për të konfiguruar monitorimin e PostgreSQL dhe sistemit operative me Mamonsu, mund ta bëni brenda 5 minutash duke e ndjekur 5 hapa të thjeshtë.

  1. Instalimi i Mamonsu. Mamonsu mund të ndërtohet nga kodet burimore ose të përdorni paketat e disponueshme.

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

build && python setup.py install

  1. Konfigurimi i lidhjeve. Duhet të shkruani parametrat e lidhjes me PostgreSQL dhe Zabbix Server në skedarin agent.conf.

/etc/mamonsu/agent.conf

  1. Eksportimi i shabllonit në Zabbix Server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Shtimi i nodit të rrjetit në Zabbix Server. Shablloni i eksportuar do të lidhet automatikisht me nyjën e re të rrjetit në Zabbix Server.

$ mamonsu zabbix host create mamonsu-demo

  1. Fillimi.

$ service mamonsu start

Direktivat e zhvillimit të Mamonsu

Në kuadër të zhvillimit të Mamonsu, ne planifikojmë të përmirësojmë metrikat dhe të krijojmë plugins të rinj, për shembull, një plugin për monitorimin e madhësisë së tabelave individuale. Ne gjithashtu planifikojmë të përmirësojmë dhe të krijojmë mjete të tjera, si dhe të zgjerim mundësitë e vetëkonfigurimit përmes komandës mamonsu tune.

Moduli i monitorimit PostgreSQL në përbërje të Zabbix Agent 2

Për lidhjen me PostgreSQL përdoret një drejtuese e shpejtë dhe të njohur pgx (PG driver dhe toolkit për Go).

Aktualisht ne përdorim dy ndërfaqe: Exporter, i cili thërret një procesor sipas çelësit, dhe Configurator Zabbix Agent 2, i cili lexon dhe kontrollon parametrat e lidhjes me serverin, të cilat janë të dhëna në skedarin e konfigurimit.

Ne u përpoqëm të optimizojmë punën e DBMS duke grupuar metrikat dhe duke përdorur një procesor (handler) për metrikat dhe grupet e metrikave, si dhe duke përdorur grupe metrikash në JSON si variabla të varura (dependency items), dhe zbuluar me nivel të ulët (discovery rules).

Përgjegjësi kryesore

  • mbajtja e njĂ« lidhjeje tĂ« qĂ«ndrueshme me PostgreSQL mes kontrolleve;
  • mbĂ«shtetje pĂ«r intervale fleksibĂ«l tĂ« pyetjeve;
  • kompatibilitet me versionet PostgreSQL, duke filluar nga 10, dhe Zabbix Server, duke filluar nga versioni 4.4;
  • mundĂ«sia pĂ«r tĂ« lidhur dhe monitoruar disa instanca PostgreSQL njĂ«kohĂ«sisht, falĂ« faktit se Zabbix Agent 2 lejon krijimin e disa seancave.

Nivelet e parametrit të lidhjes me PostgreSQL

Disponohen gjithsej tre nivele të parametrave të lidhjes me PostgreSQL, domethënë detyrat dhe configurimet:

  • Global,
  • Sessions,
  • Macros.

  1. Parametrat Global përcaktohen në nivelin e agentit, ndërsa parametrat Session dhe Macros përcaktojnë parametrat e lidhjes me databazën.

  2. Parametrat e lidhjes me PostgreSQL — Sessions pĂ«rcaktohen nĂ« skedarin zabbix_agent2.conf.

Monitorimi i PostgreSQL me Zabbix

Parametrat e lidhjes me PostgreSQL — Sessions

  • Pas fjalĂ«s kyçe Sessions shkruhet njĂ« emĂ«r unik seance, e cila duhet tĂ« jetĂ« e specifikuar nĂ« çelĂ«s (shablon).
  • Parametrat URI dhe UserName janĂ« tĂ« detyrueshme pĂ«r çdo seancĂ«.
  • NĂ«se emri i bazĂ«s nuk Ă«shtĂ« pĂ«rcaktuar, pĂ«rdoret emri i pĂ«rgjithshĂ«m si parazgjedhje pĂ«r tĂ« gjitha seancat pĂ«r PostgreSQL, i cili pĂ«rcaktohet gjithashtu nĂ« skedarin e konfigurimit.

  1. Parametrat e lidhjes me PostgreSQL - Makroset përcaktohen në çelësin e metrikës në model (në mënyrë analogjike me metodën e përdorur në Zabbix Agent 1), dmth. krijohen në model dhe më pas shënohen si parametra në çelës. Në këtë rast, rendi i makrove është i fiksuar, dmth. për shembull, URI gjithmonë shënohet në vendin e parë.

Monitorimi i PostgreSQL me Zabbix

Parametrat e lidhjes me PostgreSQL - Makroset

Moduli i monitorimit PostgreSQL përfshin më shumë se 95 metrika, të cilat lejojnë mbulimin e një numri të gjerë parametrash të PostgreSQL, duke përfshirë:

  • numrin e lidhjeve,
  • volumin e bazave tĂ« tĂ« dhĂ«nave,
  • arkivimin e dosjeve wal,
  • pikĂ« kontrolli,
  • numrin e ‘shkallĂ«zuar’ tĂ« tabelave,
  • statusin e replikimit,
  • tĂ« vonesĂ«s sĂ« replikĂ«s.

Metrikat e PostgreSQL nuk janë informative pa parametrat e sistemit operativ. Por Zabbix Agent 2 tashmë di të mbledhë parametrat e sistemit operativ, prandaj për të marrë një pamje të plotë thjesht lidhim modelet e nevojshme në nyjën e rrjetit.

Menaxhuesi (handler)

Menaxhuesi (handler) - njësi kryesore e modulit, në të cilën ekzekutohet kërkesa vetë dhe që lejon marrjen e metrikave.

Për të marrë një metrikë të thjeshtë:

  1. Krijojmë një file për të marrë një metrikë të re:

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

  1. Lidhim paketën dhe tregojmë çelësin unik (çelësat) të metrikave:

Monitorimi i PostgreSQL me Zabbix

  1. Krijojmë një trajtues (handler) me kërkesën, dmth. iniciativë një variabël në të cilën do të jetë rezultati:

Monitorimi i PostgreSQL me Zabbix

  1. Kryejmë kërkesën:

Monitorimi i PostgreSQL me Zabbix

Duhet të kontrollojmë kërkesën për gabime, pas së cilës rezultati do të kapet nga procesi Zabbix Agent 2.

  1. Regjistrojmë çelësin e metrikës së re:

Monitorimi i PostgreSQL me Zabbix

Pas regjistrimit të metrikës, mund të rindërtojmë agjentin me metrikën e re.

Moduli është i disponueshëm, duke filluar nga Zabbix 5.0 në faqen https://www.zabbix.com/download. Në këtë version, Zabbix parametrat caktohen veçmas përmes host dhe port. Në versionin Zabbix 5.0.2, e cila do të publikohet së shpejti, parametrat e lidhjes do të kompozohen në një URI të vetëm.

Faleminderit për vëmendjen!

Linqe të dobishme

GitHub Mamonsu

Dokumentacioni për Mamonsu

Zabbix Git

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster