Monitorimi i PostgreSQL me përdorimin e Zabbix

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

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

E kemi zgjedhur Zabbix si mjet monitorimi shumë kohë më parë, sepse është një platformë me burim të hapur, e mbështetur nga një komunitet aktiv, që g Enjoyin popullaritet të madh në Rusi.

Kemi krijuar njĂ« agjent aktiv — Mamonsu, i cili ofronte monitorim mĂ« fleksibĂ«l se ç'kĂ«shtu lejonin mjetet standarde nĂ« atĂ« kohĂ« dhe siguronte mbledhjen e metrikeve dhe dĂ«rgimin e tyre nĂ« Zabbix Server. NĂ« kompaninĂ« tonĂ«, Mamonsu pĂ«rdoret gjatĂ« auditimit.

Mamonsu

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

Mamonsu posedon mjete shtesë:

  • mamonsu tune — njĂ« komandĂ« qĂ« redakton parametrat e konfigurimit nĂ« skedarin e konfigurimit tĂ« PostgreSQL pĂ«r makinat ku Ă«shtĂ« instaluar agjenti Mamonsu.
  • mamonsu report — njĂ« komandĂ« qĂ« krijon raporte rreth sistemit operativ dhe PostgreSQL.

Mamonsu instalohet në serverin e DBMS, mbledh informacionin, e kompoziton atë në JSON, të cilin e dërgon për vizualizim në Zabbix Server, ku duhet të ketë një template për metrike të tij.

Monitorimi i PostgreSQL me përdorimin e Zabbix

Skema e funksionimit të Mamonsu

Mundësitë e Mamonsu

  • PĂ«rgjegjshmĂ«ria efektive me PostgreSQL. KĂ«tu, lidhja e vazhdueshme me PostgreSQL Ă«shtĂ« avantazhi kryesor i Mamonsu. NdĂ«rkohĂ«, numri maksimal i lidhjeve Ă«shtĂ« i barabartĂ« me numrin maksimale tĂ« bazave tĂ« tĂ« dhĂ«nave me tĂ« cilat ai lidhet.
  • ZgjerueshmĂ«ria. Mamonsu Ă«shtĂ« njĂ« agjent plotĂ«sisht "plugin", dhe falĂ« strukturĂ«s sĂ« fixuar tĂ« çdo plugini dhe thjeshtĂ«sisĂ« relative tĂ« Python, Ă«shtĂ« e lehtĂ« tĂ« mĂ«soni si tĂ« shkruani tĂ« rinj ose tĂ« redaktoni pluginat standardĂ«, dmth parametrat e mbledhjes sĂ« metrikeve.
  • Kapacitet tĂ« gjerĂ« tĂ« metrikeve pĂ«r monitorim pĂ«r PostgreSQL, pĂ«rfshirĂ« edhe metrikat specifike pĂ«r zgjerime.
  • Nisje e shpejtĂ«, disponueshmĂ«ri "nga kutia".
  • Shkarkimi i-templateve dhe skedarĂ«ve tĂ« konfigurimit, si dhe ngarkimi nĂ« Zabbix Server.
  • Kros-platformĂ«, qĂ« Ă«shtĂ« e rĂ«ndĂ«sishme pĂ«r klientĂ«t tanĂ«, tĂ« cilĂ«t pĂ«rdorin distribucione tĂ« ndryshme Linux, pĂ«rfshirĂ« ato vendase.
  • LicencĂ« BSD-clause.

Aktualisht ofrojmë shumë plugina dhe në çdo version të ardhshëm përpiqemi të shtojmë diçka të re.

  • 14 plugina pĂ«r PostgreSQL,
  • 8 plugina pĂ«r OS Linux,
  • 4 plugina pĂ«r OS Windows.

Mamonsu mbledh më shumë se 110 metrika për PostgreSQL dhe sistemet operuese:

  • 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, kontrollin, shpejtësinë e leximit/shkrimit, bllokimet, numrin e proceseve autovacuum dhe shpejtësinë e gjenerimit të WAL. Lista e plotë e metrikeve të disponueshme, si dhe përshkrimi i detajuar i të gjitha mjeteve është në repotitë e tij faqen GitHub.

Monitorimi i PostgreSQL me përdorimin e Zabbix

Lista e metrikeve të disponueshme në faqen GitHub

Nisja e Mamonsu për 5 minuta

Për të konfiguruar monitorimin e PostgreSQL dhe sistemit operativ me Mamonsu mund të bëhet brenda 5 minutash duke ndjekur 5 hapa të thjeshtë.

  1. Instalimi i Mamonsu. Mamonsu mund të ndërtohet nga kodi burimor ose të përdoren paketat e disponueshme.

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

build && python setup.py install

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

/etc/mamonsu/agent.conf

  1. Eksportimi i modelit në Zabbix Server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Shtimi i një nodi rrjeti në Zabbix Server. Modeli i eksportuar do të lidhet automatikisht me nodin e ri në Zabbix Server.

$ mamonsu zabbix host create mamonsu-demo

  1. Nisja.

$ 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ë plugina të rinj, siç është plugin për monitorimin e madhësisë së tabelave të veçanta. Ne gjithashtu planifikojmë të përmirësojmë dhe të krijojmë mjete të tjera, si dhe të zgjerojmë mundësitë e vetëkonfigurimit përmes komandës mamonsu tune.

Moduli i monitorimit PostgreSQL si pjesë e Zabbix Agent 2

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

Aktualisht ne përdorim dy ndërfaqe: Eksportues, i cili thërret trajtuesin me çelës, dhe Konfiguruesi Zabbix Agent 2, i cili lexon dhe kontrollon parametrat e lidhjes me serverin, të vendosur në skedarin e konfigurimit.

Ne kemi përpiquar të optimizojmë funksionimin e DBMS duke grupuar metrikat dhe duke përdorur trajtues (handler) për metrikat dhe grupet e metrikeve, si dhe duke përdorur grupe metrikash në JSON si variabla të varura (dependency items) dhe zbulesë të niveleve të ulëta (discovery rules).

Veçoritë kryesore

  • ruajtja e njĂ« lidhjeje tĂ« qĂ«ndrueshme me PostgreSQL midis kontrolleve;
  • mbĂ«shtetje pĂ«r intervale fleksibile sondazhi;
  • kompatibiliteti 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 sesioneve.

Nivelet e parameterëve të lidhjes me PostgreSQL

Ka gjithsej tre nivele parameteresh lidhjeje me PostgreSQL, dmth. detyrat dhe konfigurimet:

  • Global,
  • Sesione,
  • Makro.

  1. Parametrat Global vendosen në nivelin e agentit, parametrat Sesion dhe Makro përcaktojnë parametrat e lidhjes me bazën.

  2. Parametrat e lidhjes me PostgreSQL — Sesionet vendosen nĂ« skedarin zabbix_agent2.conf.

Monitorimi i PostgreSQL me përdorimin e Zabbix

Parametrat e lidhjes me PostgreSQL — Sesionet

  • Pas fjalĂ«s kyçe Sesione jepet njĂ« emĂ«r unik sesi qĂ« duhet tĂ« pĂ«rmendet nĂ« çelĂ«s (shabllon).
  • Parametrat URI dhe UserName janĂ« tĂ« detyrueshme pĂ«r çdo sesion.
  • NĂ«se emri i bazĂ«s nuk Ă«shtĂ« specifikuar, pĂ«rdoret emri i pĂ«rgjithshĂ«m i bazĂ«s pĂ«r tĂ« gjitha sesionet pĂ«r PostgreSQL, i cili gjithashtu pĂ«rcaktohet nĂ« skedarin e konfigurimit.

  1. Parametrat e lidhjes me PostgreSQL — Makro vendosen nĂ« çelĂ«sin e metrikĂ«s nĂ« shabllon (nĂ« mĂ«nyrĂ« tĂ« ngjashme me metodĂ«n e pĂ«rdorur nĂ« Zabbix Agent 1), dmth. krijohen nĂ« shabllon dhe mĂ« pas pĂ«rmenden si parametra nĂ« çelĂ«s. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, rendi i makrove Ă«shtĂ« i fiksuar, dmth., pĂ«r shembull, URI pĂ«rherĂ« pĂ«rmendet nĂ« vendin e parĂ«.

Monitorimi i PostgreSQL me përdorimin e Zabbix

Parametrat e lidhjes me PostgreSQL — Makro

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

  • numrin e lidhjeve,
  • vĂ«llimin e bazave tĂ« tĂ« dhĂ«nave,
  • arkivimin e skedarĂ«ve wal,
  • pikave kontrolluese,
  • numrin e tabelave "tĂ« fryra",
  • statusin e replikimit,
  • pasivitetin e replikĂ«s.

Metrikat e PostgreSQL nuk janë informuese pa parametrat e sistemit operativ. Por Zabbix Agent 2 tashmë di të mbledhë parametrat e sistemit operativ, kështu që për të marrë një pamje të plotë thjesht lidhni shabllonet e nevojshme me nyjën e rrjetit.

Trajtuesi (handler)

Trajtuesi (handler) — njĂ«sia kryesore e moduli, nĂ« tĂ« cilĂ«n kryhet vetĂ« kĂ«rkesa dhe e cila lejon marrjen e metrikave.

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

  1. Krijoni një skedar për marrjen e një metrikë të re:

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

  1. Lidhni paketën dhe përcaktoni çelësin unik (çelësat e) metrikave:

Monitorimi i PostgreSQL me përdorimin e Zabbix

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

Monitorimi i PostgreSQL me përdorimin e Zabbix

  1. Kryeni kërkesën:

Monitorimi i PostgreSQL me përdorimin e Zabbix

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

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

Monitorimi i PostgreSQL me përdorimin e Zabbix

Pasi të regjistrohet matja, mund të rikompilohet agjenti me matjen e re.

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

Faleminderit për vëmendjen!

Useful links

GitHub Mamonsu

Dokumentacioni mbi Mamonsu

Zabbix Git

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster