Kontrolearje PostgreSQL mei Zabbix

Kontrolearje PostgreSQL mei Zabbix
Ferslach fan Daria Vilkova foar Zabbix Meetup Online

Ik wol jo foarstelle oan it PostgreSQL- en bestjoeringssysteemmonitoring-ark, dat wurdt ûntwikkele troch ús bedriuw mei Zabbix.

Wy hawwe Zabbix keazen as ús monitoaring-ark foar in lange tiid, om't it in iepen boarne platfoarm is stipe troch in aktive mienskip dy't tige populêr is yn Ruslân.

Wy makken in aktive agint - Mamonsu, dy't fleksibeler tafersjoch levere dan standert ark op dat stuit tastien, en soarge foar it sammeljen fan metriken en har ferstjoeren nei Zabbix Server. Yn ús bedriuw wurdt Mamonsu brûkt yn 'e kontrôle.

Mamonsu

Mamonsu is in aktive agint (Zabbix Trapper) foar it kontrolearjen fan PostgreSQL en it bestjoeringssysteem. Mamonsu (skreaun yn Python) lit jo PostgreSQL- en bestjoeringssysteemmonitorynstellingen yn fiif minuten konfigurearje.

Mamonsu hat ekstra ark:

  • mamonsu tune is in kommando dat de ynstellings bewurket yn it PostgreSQL-konfiguraasjetriem foar de masine wêrop de Mamonsu-agint is ynstalleare.
  • mamonsu-rapport is in kommando dat antwurden genereart oer it bestjoeringssysteem en PostgreSQL.

Mamonsu is ynstalleare op 'e DBMS-tsjinner, sammelt ynformaasje, komponearret it yn JSON, dy't it stjoert nei Zabbix Server foar fisualisaasje, wêr't d'r in sjabloan wêze moat foar har metriken.

Kontrolearje PostgreSQL mei Zabbix

Mamonsu wurk skema

Features Mamonsu

  • Effisjint wurk mei PostgreSQL. In oanhâldende ferbining mei PostgreSQL is it wichtichste foardiel fan Mamonsu. Yn dit gefal is it maksimum oantal ferbinings gelyk oan it maksimum oantal databases wêrmei't it ferbynt.
  • Útwreidzjen. Mamonsu is in folslein "plugin"-agint, en troch de fêste struktuer fan elke plugin en de relative ienfâld fan Python, kin men maklik leare hoe't jo nije of bewurkje standert plugins kinne skriuwe, dus parameters foar metriken sammeljen.
  • Brede dekking fan tafersjochmetriken foar PotgreSQL ynklusyf útwreiding-spesifike metriken.
  • snelle lansearring, beskikberens út 'e doaze.
  • It opladen fan sjabloanen en konfiguraasjebestannen, likegoed as uploaden nei Zabbix Server.
  • Cross-platform, wat wichtich is foar ús klanten dy't ferskate Linux-distribúsjes brûke, ynklusyf ynlânske.
  • BSD-klausule lisinsje.

Op it stuit biede wy in protte plugins en yn elke folgjende ferzje besykje wy wat nijs ta te foegjen.

  • 14 plugins foar PostgreSQL,
  • 8 plugins foar OS Linux,
  • 4 plugins foar OS Windows.

Mamonsu sammelet mear dan 110 PostgreSQL- en bestjoeringssysteemmetriken:

  • 70 PostgreSQL-metriken,
  • 40 OS Linux metriken,
  • 8 OS Windows metrics.

Wichtige metriken omfetsje DBMS-beskikberens, oantal ferbiningen, databasegrutte, kontrôlepunten, lês- / skriuwsnelheid, slûzen, oantal autovacuumprosessen, en WAL-generaasjesnelheid. In folsleine list mei beskikbere metriken, lykas in detaillearre beskriuwing fan alle ark, is beskikber yn repositories op de GitHub-side.

Kontrolearje PostgreSQL mei Zabbix

List mei beskikbere metriken op GitHub

Run Mamonsu yn 5 minuten

Om tafersjoch op PostgreSQL en it bestjoeringssysteem mei Mamonsu yn te stellen, kinne jo it yn 5 minuten dwaan troch 5 ienfâldige stappen te folgjen.

  1. Mamonsu ynstallearje. Mamonsu kin wurde boud út boarne of brûk beskikbere pakketten.

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

build && python setup.py install

  1. Ferbining opset. It is nedich om de ferbiningsparameters foar PostgreSQL en Zabbix Server yn te stellen yn it agent.conf-bestân.

/etc/mamonsu/agent.conf

  1. Eksportearje sjabloan nei Zabbix Server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. In host tafoegje oan Zabbix Server. It eksportearre sjabloan sil automatysk ferbûn wurde mei de nije host op Zabbix Server.

$ mamonsu zabbix host create mamonsu-demo

  1. Te rinnen.

$ service mamonsu start

Mamonsu Untjouwing Rjochtings

As ûnderdiel fan 'e ûntwikkeling fan Mamonsu planje wy de metriken te ferfine en nije plugins te meitsjen, lykas in plugin foar it kontrolearjen fan de grutte fan yndividuele tabellen. Wy binne ek fan plan om ekstra ark te ferbetterjen en te meitsjen, lykas ek de mooglikheden foar auto-tuning útwreidzje fia it kommando mamonsu tune.

PostgreSQL-monitoringsmodule as ûnderdiel fan Zabbix Agent 2

In rappe en populêre bestjoerder wurdt brûkt om te ferbinen mei PostgreSQL pgx (PG-bestjoerder en toolkit foar Go).

Oant no brûke wy twa ynterfaces: Eksporter, dy't de handler mei kaai ropt, en Configurator Zabbix Agent 2, dy't de ferbiningsparameters lêst en kontrolearret mei de tsjinner oantsjutte yn it konfiguraasjetriem.

Wy hawwe besocht it wurk fan 'e DBMS te optimalisearjen troch metriken te groepearjen en in handler (handler) te brûken foar metriken en metrike groepen, en ek groepen metriken yn JSON te brûken as ôfhinklike fariabelen (ôfhinklikheidsitems), en ûntdekking op leech nivo (ûntdekkingsregels ).

Main Features

  • behâld fan in oanhâldende ferbining mei PostgreSQL tusken kontrôles;
  • stipe foar fleksibele polling-yntervallen;
  • kompatibiliteit mei PostgreSQL ferzjes begjinnend fan 10 en Zabbix Server begjinnend fan ferzje 4.4;
  • de mooglikheid om meardere PostgreSQL-eksimplaren tagelyk te ferbinen en te kontrolearjen fanwege it feit dat Zabbix Agent 2 jo meardere sesjes kinne oanmeitsje.

PostgreSQL Connection Parameter Levels

Yn totaal binne trije nivo's fan PostgreSQL-ferbiningparameters beskikber, d.w.s. taken en ynstellingen:

  • Mondiaal,
  • sitting,
  • Makro's.

  1. De globale parameters wurde ynsteld op it agentnivo, de parameters Sesje en Makro's definiearje de parameters foar databaseferbining.

  2. Ferbiningsparameters nei PostgreSQL - Sesjes wurde ynsteld yn it bestân zabbix_agent2.conf.

Kontrolearje PostgreSQL mei Zabbix

PostgreSQL-ferbiningsopsjes - sesjes

  • Nei kaaiwurd sesjes in unike sesje namme wurdt oantsjutte, dat moat wurde oantsjutte yn de kaai (sjabloan).
  • parameters URI и Brûkersnamme nedich foar elke sesje.
  • As gjin databanknamme is oantsjutte, wurdt de standert mienskiplike databanknamme foar alle PostgreSQL-sesjes brûkt, dy't ek oantsjutte is yn it konfiguraasjetriem.

  1. Ferbiningsparameters nei PostgreSQL - Makro's wurde ynsteld yn 'e metrike kaai yn' e sjabloan (fergelykber mei de metoade brûkt yn Zabbix Agent 1), d.w.s. se wurde makke yn it sjabloan en dan oantsjutte as parameters yn 'e kaai. Yn dit gefal is de folchoarder fan makro's fêst, dat wol sizze, bygelyks, URI altyd listed earst.

Kontrolearje PostgreSQL mei Zabbix

PostgreSQL-ferbiningsparameters - Makro's

De PostgreSQL-monitoringmodule omfettet al mear dan 95 metriken wêrtroch jo in frij breed oanbod fan PostgreSQL-parameters kinne dekke, ynklusyf:

  • oantal ferbinings
  • databank grutte,
  • argivearjen fan wal-bestannen,
  • kontrôles,
  • it oantal "opblaasde" tabellen,
  • replikaasjestatus,
  • replika fertraging.

PostgreSQL-metriken binne net ynformatyf sûnder bestjoeringssysteemparameters. Mar Zabbix Agent 2 wit al hoe't jo bestjoeringssysteemparameters sammelje, dus om it folsleine byld te krijen, ferbine wy ​​gewoan de nedige sjabloanen mei de host.

Handler

De handler is de haadienheid fan 'e module wêryn it fersyk sels wurdt útfierd en wêrmei jo metriken kinne ûntfange.

Om in ienfâldige metryske te krijen:

  1. Meitsje in bestân om in nije metrik te krijen:

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

  1. Wy ferbine it pakket en spesifisearje de unike kaai (kaaien) fan 'e metriken:

Kontrolearje PostgreSQL mei Zabbix

  1. Wy meitsje in handler (handler) mei in fersyk, dat wol sizze, wy begjinne in fariabele dy't it resultaat sil befetsje:

Kontrolearje PostgreSQL mei Zabbix

  1. Wy fiere it fersyk út:

Kontrolearje PostgreSQL mei Zabbix

It is needsaaklik om it fersyk foar flaters te kontrolearjen, wêrnei't it resultaat wurdt ophelle troch it Zabbix Agent 2-proses.

  1. Registrearje de nije metrike kaai:

Kontrolearje PostgreSQL mei Zabbix

Nei it registrearjen fan de metrik, kinne jo de agint opnij opbouwe mei de nije metrik.

De module is te krijen fanôf Zabbix 5.0 op 'e webside https://www.zabbix.com/download. Yn dizze ferzje fan Zabbix wurde de parameters apart ynsteld fia host en haven. Yn Zabbix 5.0.2, dy't gau frijlitten wurdt, wurde de ferbiningsparameters yn ien URI ferpakt.

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

Nuttige keppelings

GitHub Mamonsu

Mamonsu dokumintaasje

Zabbix Git

Boarne: www.habr.com

Add a comment