Monitorimi i PostgreSQL duke përdorur Zabbix

Monitorimi i PostgreSQL duke përdorur Zabbix
Raport nga Daria Vilkova për Zabbix Meetup Online

Dua t'ju prezantoj me PostgreSQL dhe mjetin e monitorimit të sistemit operativ, i cili po zhvillohet nga kompania jonë duke përdorur Zabbix.

Ne kemi zgjedhur Zabbix si mjetin tonë të monitorimit për një kohë të gjatë, sepse është një platformë me kod të hapur e mbështetur nga një komunitet aktiv që është shumë i popullarizuar në Rusi.

Ne krijuam një agjent aktiv - Mamonsu, i cili siguroi monitorim më fleksibël sesa mjetet standarde të lejuara në atë kohë, dhe siguroi mbledhjen e matjeve dhe dërgimin e tyre në serverin Zabbix. Në kompaninë tonë, Mamonsu përdoret në auditim.

Mamon

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

Mamonsu ka mjete shtesë:

  • mamonsu tune është një komandë që redakton cilësimet në skedarin e konfigurimit PostgreSQL për makinën në të cilën është instaluar agjenti Mamonsu.
  • raporti mamonsu është një komandë që gjeneron përgjigje në lidhje me sistemin operativ dhe PostgreSQL.

Mamonsu është i instaluar në serverin DBMS, mbledh informacion, e kompozon atë në JSON, i cili e dërgon te Zabbix Server për vizualizim, ku duhet të ketë një shabllon për matjet e tij.

Monitorimi i PostgreSQL duke përdorur Zabbix

Skema e punës Mamonsu

Paraqet Mamonsu

  • Punë efikase me PostgreSQL. Një lidhje e vazhdueshme me PostgreSQL është avantazhi kryesor i Mamonsu. Në këtë rast, numri maksimal i lidhjeve është i barabartë me numrin maksimal të bazave të të dhënave me të cilat lidhet.
  • Zgjerimi. Mamonsu është një agjent plotësisht "plugin" dhe për shkak të strukturës fikse të secilës shtojcë dhe thjeshtësisë relative të Python, mund të mësohet lehtësisht se si të shkruani shtojca të reja ose të modifikoni standarde, d.m.th. parametrat e mbledhjes së metrikës.
  • Mbulim i gjerë i metrikës së monitorimit për PotgreSQL duke përfshirë metrikat specifike të zgjerimit.
  • nisje e shpejtë, disponueshmëria jashtë kutisë.
  • Ngarkimi i shablloneve dhe skedarëve të konfigurimit, si dhe ngarkimi në serverin Zabbix.
  • Ndër-platformë, e cila është e rëndësishme për klientët tanë që përdorin shpërndarje të ndryshme Linux, përfshirë ato vendase.
  • Licenca BSD-klauzolë.

Për momentin ne ofrojmë shumë shtojca dhe në çdo version tjetër përpiqemi të shtojmë diçka të re.

  • 14 shtojca për PostgreSQL,
  • 8 shtojca për OS Linux,
  • 4 shtojca për OS Windows.

Mamonsu mbledh mbi 110 metrika të PostgreSQL dhe sistemit operativ:

  • 70 metrikë PostgreSQL,
  • 40 matjet e OS Linux,
  • 8 metrikë të OS Windows.

Metrikat kryesore përfshijnë disponueshmërinë e DBMS, numrin e lidhjeve, madhësinë e bazës së të dhënave, pikat e kontrollit, shpejtësinë e leximit/shkrimit, kyçjet, numrin e proceseve të autovakumit dhe shpejtësinë e gjenerimit të WAL. Një listë e plotë e metrikave të disponueshme, si dhe një përshkrim i detajuar i të gjitha mjeteve, është i disponueshëm në depove në faqen e GitHub.

Monitorimi i PostgreSQL duke përdorur Zabbix

Lista e matjeve të disponueshme në GitHub

Vraponi Mamonsu në 5 minuta

Për të konfiguruar monitorimin e PostgreSQL dhe sistemit operativ duke përdorur Mamonsu, mund ta bëni në 5 minuta duke ndjekur 5 hapa të thjeshtë.

  1. Instalimi i Mamonsu. Mamonsu mund të ndërtohet nga burimi ose të përdorë paketat e disponueshme.

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

build && python setup.py install

  1. Konfigurimi i lidhjes. Është e nevojshme të vendosni parametrat e lidhjes për PostgreSQL dhe Zabbix Server në skedarin agent.conf.

/etc/mamonsu/agent.conf

  1. Eksporto shabllonin në serverin Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Shtimi i një hosti në serverin Zabbix. Shablloni i eksportuar do të lidhet automatikisht me hostin e ri në serverin Zabbix.

$ mamonsu zabbix host create mamonsu-demo

  1. lëshim.

$ service mamonsu start

Udhëzimet e zhvillimit të Mamonsu

Si pjesë e zhvillimit të Mamonsu, ne planifikojmë të përsosim metrikat dhe të krijojmë shtojca të reja, të tilla si një shtojcë për monitorimin e madhësisë së tabelave individuale. Ne gjithashtu planifikojmë të përmirësojmë dhe të krijojmë mjete shtesë, si dhe të zgjerojmë aftësitë e akordimit automatik përmes komandës mamonsu melodi.

Moduli i monitorimit PostgreSQL si pjesë e Zabbix Agent 2

Një drejtues i shpejtë dhe popullor përdoret për t'u lidhur me PostgreSQL fqx (Shoferi PG dhe paketa e veglave për Go).

Deri më tani, ne jemi duke përdorur dy ndërfaqe: Exporter, i cili thërret mbajtësin me çelës dhe Konfiguruesi Zabbix Agent 2, i cili lexon dhe kontrollon parametrat e lidhjes me serverin e specifikuar në skedarin e konfigurimit.

Ne u përpoqëm të optimizonim punën e DBMS duke grupuar metrikat dhe duke përdorur një mbajtës (trajtues) për metrikat dhe grupet metrike, si dhe duke përdorur grupe metrikash në JSON si variabla të varur (artikuj të varësisë) dhe zbulim të nivelit të ulët (rregullat e zbulimit ).

Karakteristikat kryesore

  • mbajtja e një lidhjeje të vazhdueshme me PostgreSQL ndërmjet kontrolleve;
  • mbështetje për intervale fleksibël të votimit;
  • pajtueshmëri me versionet PostgreSQL duke filluar nga 10 dhe Zabbix Server duke filluar nga versioni 4.4;
  • aftësia për të lidhur dhe monitoruar shumë instanca PostgreSQL në të njëjtën kohë për shkak të faktit se Zabbix Agent 2 ju lejon të krijoni seanca të shumta.

Nivelet e parametrave të lidhjes PostgreSQL

Në total, ekzistojnë tre nivele të parametrave të lidhjes PostgreSQL, d.m.th., detyrat dhe cilësimet:

  • Globale,
  • seancë,
  • Makrot.

  1. Parametrat Global vendosen në nivel agjenti, parametrat Session dhe Macros përcaktojnë parametrat e lidhjes së bazës së të dhënave.

  2. Parametrat e lidhjes me PostgreSQL - Sesionet vendosen në skedar zabbix_agent2.conf.

Monitorimi i PostgreSQL duke përdorur Zabbix

Opsionet e lidhjes PostgreSQL - Sesionet

  • Pas fjalës kyçe Seancat specifikohet një emër unik i sesionit, i cili duhet të specifikohet në çelës (shabllon).
  • Parameters URI и USERNAME kërkohet për çdo seancë.
  • Nëse emri i bazës nuk specifikohet, përdoret emri i zakonshëm i bazës së paracaktuar për të gjitha sesionet PostgreSQL, i cili vendoset gjithashtu në skedarin e konfigurimit.

  1. Parametrat e lidhjes me PostgreSQL - Makrot vendosen në çelësin metrikë në shabllon (ngjashëm me metodën e përdorur në Zabbix Agent 1), d.m.th. ato krijohen në shabllon dhe më pas specifikohen si parametra në çelës. Në këtë rast, sekuenca e makrove është e fiksuar, d.m.th., për shembull, URI renditet gjithmonë i pari.

Monitorimi i PostgreSQL duke përdorur Zabbix

Parametrat e lidhjes PostgreSQL - Makrot

Moduli i monitorimit PostgreSQL tashmë përfshin më shumë se 95 metrikë që ju lejojnë të mbuloni një gamë mjaft të gjerë parametrash PostgreSQL, duke përfshirë:

  • numri i lidhjeve
  • madhësia e bazës së të dhënave,
  • arkivimi i skedarëve wal,
  • pika kontrolli,
  • numri i tabelave "të fryra",
  • statusi i replikimit,
  • vonesa e kopjes.

Metrikat e PostgreSQL nuk janë informuese pa parametrat e sistemit operativ. Por Zabbix Agent 2 tashmë e di se si të mbledhë parametrat e sistemit operativ, kështu që për të marrë pamjen e plotë, ne thjesht lidhim shabllonet e nevojshme me hostin.

Trajtues

Trajtuesi është njësia kryesore e modulit në të cilin ekzekutohet vetë kërkesa dhe që ju lejon të merrni metrikë.

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

  1. Krijo një skedar për të marrë një metrikë të re:

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

  1. Ne e lidhim paketën dhe specifikojmë çelësin (çelësat) unik të metrikës:

Monitorimi i PostgreSQL duke përdorur Zabbix

  1. Ne krijojmë një mbajtës (trajtues) me një kërkesë, d.m.th., ne inicojmë një variabël që do të përmbajë rezultatin:

Monitorimi i PostgreSQL duke përdorur Zabbix

  1. Ne ekzekutojmë kërkesën:

Monitorimi i PostgreSQL duke përdorur Zabbix

Është e nevojshme të kontrolloni kërkesën për gabime, pas së cilës rezultati do të merret nga procesi Zabbix Agent 2.

  1. Regjistroni çelësin e ri metrikë:

Monitorimi i PostgreSQL duke përdorur Zabbix

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

Moduli është i disponueshëm duke filluar nga Zabbix 5.0 në sit https://www.zabbix.com/download. Në këtë version të Zabbix, parametrat vendosen veçmas nëpërmjet hostit dhe portit. Në Zabbix 5.0.2, i cili do të dalë së shpejti, parametrat e lidhjes do të paketohen në një URI të vetme.

Спасибо за внимание!

Lidhje të dobishme

GitHub Mamonsu

Dokumentacioni Mamonsu

Zabbix git

Burimi: www.habr.com

Shto një koment