Spremljanje PostgreSQL z uporabo Zabbix

Spremljanje PostgreSQL z uporabo Zabbix
Poročilo Darije Vilkove za Zabbix Meetup Online

Želim vam predstaviti PostgreSQL in orodje za spremljanje operacijskega sistema, ki ga naše podjetje razvija s pomočjo Zabbixa.

Zabbix smo že dolgo izbrali kot naše orodje za spremljanje, ker je odprtokodna platforma, ki jo podpira aktivna skupnost in je zelo priljubljena v Rusiji.

Izdelali smo aktivnega agenta - Mamonsu, ki je omogočal bolj fleksibilen nadzor, kot so to omogočala takrat standardna orodja, ter zagotavljal zbiranje metrik in njihovo pošiljanje na Zabbix Server. V našem podjetju se pri reviziji uporablja Mamonsu.

Mamonsu

Mamonsu je aktivni agent (Zabbix Trapper) za spremljanje PostgreSQL in operacijskega sistema. Mamonsu (napisan v Pythonu) vam omogoča, da v petih minutah konfigurirate nastavitve za nadzor PostgreSQL in operacijskega sistema.

Mamonsu ima dodatna orodja:

  • mamonsu tune je ukaz, ki ureja nastavitve v konfiguracijski datoteki PostgreSQL za stroj, na katerem je nameščen agent Mamonsu.
  • mamonsu report je ukaz, ki generira odgovore o operacijskem sistemu in PostgreSQL.

Mamonsu je nameščen na strežniku DBMS, zbira informacije, jih sestavi v JSON, ki jih pošlje v Zabbix Server v vizualizacijo, kjer bi morala biti predloga za njegove metrike.

Spremljanje PostgreSQL z uporabo Zabbix

Shema dela Mamonsu

Vsebuje Mamonsu

  • Učinkovito delo s PostgreSQL. Trajna povezava s PostgreSQL je glavna prednost Mamonsu. V tem primeru je največje število povezav enako največjemu številu baz podatkov, s katerimi se povezuje.
  • Razširljivost. Mamonsu je v celoti "plugin" agent in zaradi fiksne strukture vsakega vtičnika in relativne preprostosti Pythona se lahko preprosto naučite pisati nove ali urejati standardne vtičnike, tj. parametre zbiranja metrik.
  • Široka pokritost meritev spremljanja za PotgreSQL, vključno z meritvami, specifičnimi za razširitev.
  • hiter začetek, razpoložljivost izven škatle.
  • Nalaganje predlog in konfiguracijskih datotek, kot tudi nalaganje na strežnik Zabbix.
  • Na več platformah, kar je pomembno za naše stranke, ki uporabljajo različne distribucije Linuxa, tudi domače.
  • Licenca klavzule BSD.

Trenutno ponujamo veliko vtičnikov in v vsaki naslednji različici poskušamo dodati nekaj novega.

  • 14 vtičnikov za PostgreSQL,
  • 8 vtičnikov za OS Linux,
  • 4 vtičniki za OS Windows.

Mamonsu zbira več kot 110 meritev PostgreSQL in operacijskega sistema:

  • 70 metrik PostgreSQL,
  • 40 meritev OS Linux,
  • 8 OS Windows meritve.

Ključne metrike vključujejo razpoložljivost DBMS, število povezav, velikost baze podatkov, kontrolne točke, hitrost branja/pisanja, zaklepanja, število procesov samodejnega vakuumiranja in hitrost generiranja WAL. Popoln seznam razpoložljivih meritev in podroben opis vseh orodij je na voljo v repozitorije na spletnem mestu GitHub.

Spremljanje PostgreSQL z uporabo Zabbix

Seznam razpoložljivih meritev na GitHubu

Zaženi Mamonsu v 5 minutah

Če želite nastaviti spremljanje PostgreSQL in operacijskega sistema z Mamonsu, lahko to storite v 5 minutah, tako da sledite 5 preprostim korakom.

  1. Namestitev Mamonsu. Mamonsu je mogoče zgraditi iz izvorne kode ali uporabiti razpoložljive pakete.

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

build && python setup.py install

  1. Nastavitev povezave. V datoteki agent.conf je potrebno nastaviti parametre povezave za PostgreSQL in Zabbix Server.

/etc/mamonsu/agent.conf

  1. Izvoz predloge v strežnik Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Dodajanje gostitelja strežniku Zabbix. Izvožena predloga bo samodejno povezana z novim gostiteljem na strežniku Zabbix.

$ mamonsu zabbix host create mamonsu-demo

  1. Izstrelite.

$ service mamonsu start

Navodila za razvoj Mamonsu

V okviru razvoja Mamonsu načrtujemo izpopolnitev metrik in ustvarjanje novih vtičnikov, kot je na primer vtičnik za spremljanje velikosti posameznih tabel. Načrtujemo tudi izboljšavo in ustvarjanje dodatnih orodij ter razširitev zmožnosti samodejnega prilagajanja prek ukaza mamonsu melodija.

Modul za spremljanje PostgreSQL kot del Zabbix Agent 2

Za povezavo s PostgreSQL se uporablja hiter in priljubljen gonilnik pgx (PG gonilnik in komplet orodij za Go).

Zaenkrat uporabljamo dva vmesnika: Exporter, ki po ključu pokliče upravljalnik, in Configurator Zabbix Agent 2, ki bere in preverja parametre povezave s strežnikom, navedenim v konfiguracijski datoteki.

Poskušali smo optimizirati delo DBMS z združevanjem metrik in uporabo obdelovalca (handler) za metrike in skupine metrik, kot tudi z uporabo skupin metrik v JSON kot odvisnih spremenljivk (postavke odvisnosti) in odkrivanja na nizki ravni (pravila odkrivanja ).

Glavne lastnosti

  • vzdrževanje trajne povezave s PostgreSQL med preverjanji;
  • podpora za prilagodljive intervale glasovanja;
  • združljivost z različicami PostgreSQL od 10 naprej in strežnikom Zabbix od različice 4.4 naprej;
  • možnost povezovanja in spremljanja več instanc PostgreSQL hkrati zaradi dejstva, da Zabbix Agent 2 omogoča ustvarjanje več sej.

Ravni parametrov povezave PostgreSQL

Skupno obstajajo tri ravni parametrov povezave PostgreSQL, tj. naloge in nastavitve:

  • Globalno,
  • seja,
  • Makri.

  1. Globalni parametri so nastavljeni na ravni agenta, parametra Session in Macros določata parametre povezave z bazo podatkov.

  2. Parametri povezave s PostgreSQL – seje so nastavljene v datoteki zabbix_agent2.conf.

Spremljanje PostgreSQL z uporabo Zabbix

Možnosti povezave PostgreSQL – Seje

  • Po ključni besedi Sessions podano je unikatno ime seje, ki mora biti podano v ključu (predlogi).
  • Parametri URI и Uporabniško ime potrebno za vsako sejo.
  • Če ime baze podatkov ni podano, se uporabi privzeto skupno ime baze podatkov za vse seje PostgreSQL, ki je prav tako podano v konfiguracijski datoteki.

  1. Parametri povezave s PostgreSQL - Makri so nastavljeni v metričnem ključu v predlogi (podobno kot metoda, uporabljena v Zabbix Agent 1), tj. ustvarjeni so v predlogi in nato navedeni kot parametri v ključu. V tem primeru je zaporedje makrov fiksno, tj. URI vedno naveden prvi.

Spremljanje PostgreSQL z uporabo Zabbix

Parametri povezave PostgreSQL - Makri

Modul za spremljanje PostgreSQL že vključuje več kot 95 metrik, ki vam omogočajo, da pokrijete precej širok razpon parametrov PostgreSQL, vključno z:

  • število povezav
  • velikost baze podatkov,
  • arhiviranje wal datotek,
  • kontrolne točke,
  • število "napihnjenih" miz,
  • stanje replikacije,
  • zakasnitev replike.

Meritve PostgreSQL niso informativne brez parametrov operacijskega sistema. Toda Zabbix Agent 2 že zna zbirati parametre operacijskega sistema, tako da za popolno sliko preprosto povežemo potrebne predloge z gostiteljem.

Voditelj

Upravljalnik je glavna enota modula, v kateri se izvaja sama zahteva in ki vam omogoča prejemanje metrik.

Če želite dobiti preprosto meritev:

  1. Ustvarite datoteko, da dobite novo meritev:

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

  1. Paket povežemo in določimo edinstven ključ (ključe) metrike:

Spremljanje PostgreSQL z uporabo Zabbix

  1. Z zahtevo izdelamo obdelovalnik (handler), torej iniciiramo spremenljivko, ki bo vsebovala rezultat:

Spremljanje PostgreSQL z uporabo Zabbix

  1. Zahtevo izpolnimo:

Spremljanje PostgreSQL z uporabo Zabbix

Zahtevo je treba preveriti glede napak, nato pa bo rezultat prevzel proces Zabbix Agent 2.

  1. Registrirajte nov metrični ključ:

Spremljanje PostgreSQL z uporabo Zabbix

Po registraciji metrike lahko znova sestavite agenta z novo metriko.

Modul je na spletni strani na voljo od Zabbix 5.0 https://www.zabbix.com/download. V tej različici Zabbixa se parametri nastavijo ločeno prek gostitelja in vrat. V Zabbix 5.0.2, ki bo kmalu izdan, bodo parametri povezave pakirani v en sam URI.

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

Uporabne povezave

GitHub Mamonsu

Dokumentacija Mamonsu

Zabbix Git

Vir: www.habr.com

Dodaj komentar