Praćenje PostgreSQL-a pomoću Zabbixa

Praćenje PostgreSQL-a pomoću Zabbixa
Izvješće Darije Vilkove za Zabbix Meetup Online

Želim vam predstaviti PostgreSQL i alat za nadzor operativnog sustava, koji razvija naša tvrtka koristeći Zabbix.

Dugo smo odabrali Zabbix kao naš alat za praćenje jer je to platforma otvorenog koda koju podržava aktivna zajednica koja je vrlo popularna u Rusiji.

Kreirali smo aktivnog agenta - Mamonsu, koji je omogućio fleksibilniji nadzor nego što su standardni alati u to vrijeme dopuštali, te osigurao prikupljanje metrika i njihovo slanje na Zabbix server. U našoj tvrtki Mamonsu se koristi u reviziji.

Mamonsu

Mamonsu je aktivni agent (Zabbix Trapper) za nadzor PostgreSQL-a i operativnog sustava. Mamonsu (napisan u Pythonu) omogućuje vam da konfigurirate PostgreSQL i postavke nadzora operativnog sustava u pet minuta.

Mamonsu ima dodatne alate:

  • mamonsu tune je naredba koja uređuje postavke u konfiguracijskoj datoteci PostgreSQL za stroj na kojem je instaliran Mamonsu agent.
  • mamonsu report je naredba koja generira odgovore o operativnom sustavu i PostgreSQL-u.

Mamonsu se instalira na DBMS server, skuplja informacije, sastavlja ih u JSON, koji ih šalje na Zabbix Server na vizualizaciju, gdje bi trebao biti predložak za njegovu metriku.

Praćenje PostgreSQL-a pomoću Zabbixa

Shema rada Mamonsu

Značajke Mamonsua

  • Učinkovit rad s PostgreSQL. Trajna veza s PostgreSQL glavna je prednost Mamonsua. U ovom slučaju, najveći broj veza jednak je maksimalnom broju baza podataka na koje se povezuje.
  • Proširivost. Mamonsu je potpuno "plugin" agent, a zbog fiksne strukture svakog dodatka i relativne jednostavnosti Pythona, lako se može naučiti kako pisati nove ili uređivati ​​standardne dodatke, tj. parametre prikupljanja metrika.
  • Široka pokrivenost metrike praćenja za PotgreSQL uključujući metriku specifičnu za proširenje.
  • brzo pokretanje, dostupnost izvan kutije.
  • Prijenos predložaka i konfiguracijskih datoteka, kao i učitavanje na Zabbix poslužitelj.
  • Višeplatformski, što je važno za naše kupce koji koriste razne Linux distribucije, pa tako i domaće.
  • Licenca BSD-klauzule.

Trenutno nudimo puno dodataka iu svakoj sljedećoj verziji nastojimo dodati nešto novo.

  • 14 dodataka za PostgreSQL,
  • 8 dodataka za OS Linux,
  • 4 dodatka za OS Windows.

Mamonsu prikuplja preko 110 metrika PostgreSQL-a i operativnih sustava:

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

Ključne metrike uključuju dostupnost DBMS-a, broj veza, veličinu baze podataka, kontrolne točke, brzinu čitanja/pisanja, zaključavanja, broj autovacuum procesa i brzinu generiranja WAL-a. Potpuni popis dostupnih metrika, kao i detaljan opis svih alata, dostupni su u spremišta na GitHub stranici.

Praćenje PostgreSQL-a pomoću Zabbixa

Popis dostupnih metrika na GitHubu

Pokrenite Mamonsu za 5 minuta

Za postavljanje nadzora PostgreSQL-a i operativnog sustava pomoću Mamonsua, možete to učiniti u 5 minuta slijedeći 5 jednostavnih koraka.

  1. Instaliranje Mamonsua. Mamonsu se može izgraditi iz izvora ili pomoću dostupnih paketa.

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

build && python setup.py install

  1. Postavljanje veze. U agent.conf datoteci potrebno je postaviti parametre povezivanja za PostgreSQL i Zabbix poslužitelj.

/etc/mamonsu/agent.conf

  1. Izvoz predloška na Zabbix poslužitelj.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Dodavanje hosta na Zabbix poslužitelj. Izvezeni predložak automatski će se povezati s novim hostom na Zabbix poslužitelju.

$ mamonsu zabbix host create mamonsu-demo

  1. lansiranje.

$ service mamonsu start

Smjerovi razvoja Mamonsua

U sklopu razvoja Mamonsua planiramo doraditi metriku i izraditi nove dodatke, poput dodatka za praćenje veličine pojedinačnih tablica. Također planiramo poboljšati i stvoriti dodatne alate, kao i proširiti mogućnosti automatskog podešavanja putem naredbe mamonsu melodija.

PostgreSQL modul za praćenje uključen u Zabbix Agent 2

Za spajanje na PostgreSQL koristi se brz i popularan upravljački program pgx (PG upravljački program i alat za Go).

Za sada koristimo dva sučelja: Exporter, koji poziva rukovatelj ključem, i Configurator Zabbix Agent 2, koji čita i provjerava parametre veze s poslužiteljem navedenim u konfiguracijskoj datoteci.

Pokušali smo optimizirati rad DBMS-a grupiranjem metrika i korištenjem rukovatelja (handler) za metrike i grupe metrika, kao i korištenjem grupa metrika u JSON-u kao zavisnih varijabli (stavke ovisnosti), te otkrivanja niske razine (pravila otkrivanja ).

Ključne značajke

  • održavanje stalne veze s PostgreSQL između provjera;
  • podrška za fleksibilne intervale glasanja;
  • kompatibilnost s verzijama PostgreSQL počevši od 10 i Zabbix poslužiteljem počevši od verzije 4.4;
  • mogućnost povezivanja i praćenja više PostgreSQL instanci u isto vrijeme zbog činjenice da Zabbix Agent 2 omogućuje stvaranje više sesija.

Razine parametara veze PostgreSQL

Ukupno postoje tri razine parametara povezivanja PostgreSQL-a, tj. zadataka i postavki:

  • Globalno,
  • sjednica,
  • Makronaredbe.

  1. Globalni parametri postavljaju se na razini agenta, parametri Session i Macros definiraju parametre veze s bazom podataka.

  2. Parametri povezivanja s PostgreSQL - Sesije su postavljene u datoteci zabbix_agent2.conf.

Praćenje PostgreSQL-a pomoću Zabbixa

PostgreSQL opcije povezivanja - sesije

  • Nakon ključne riječi sjednice navedeno je jedinstveno ime sesije koje mora biti navedeno u ključu (predlošku).
  • Parametri URI и Korisničko ime potrebno za svaku sesiju.
  • Ako osnovno ime nije navedeno, koristi se zadano zajedničko osnovno ime za sve PostgreSQL sesije, koje je također postavljeno u konfiguracijskoj datoteci.

  1. Parametri povezivanja s PostgreSQL - Makronaredbe se postavljaju u metričkom ključu u predlošku (slično metodi koja se koristi u Zabbix Agentu 1), tj. kreiraju se u predlošku i zatim specificiraju kao parametri u ključu. U ovom slučaju, redoslijed makronaredbi je fiksan, tj. npr. URI uvijek na prvom mjestu.

Praćenje PostgreSQL-a pomoću Zabbixa

Parametri povezivanja PostgreSQL - Makronaredbe

PostgreSQL modul za praćenje već uključuje više od 95 metrika koje vam omogućuju pokrivanje prilično širokog raspona PostgreSQL parametara, uključujući:

  • broj veza
  • veličina baze podataka,
  • arhiviranje wal datoteka,
  • kontrolne točke,
  • broj "napuhanih" stolova,
  • status replikacije,
  • kašnjenje replike.

PostgreSQL metrike nisu informativne bez parametara operativnog sustava. Ali Zabbix Agent 2 već zna kako prikupiti parametre operativnog sustava, pa da bismo dobili potpunu sliku, jednostavno povezujemo potrebne predloške s hostom.

rukovatelj

Rukovatelj je glavna jedinica modula u kojoj se izvršava sam zahtjev i koja vam omogućuje primanje metrike.

Da biste dobili jednostavnu metriku:

  1. Izradite datoteku da biste dobili novu metriku:

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

  1. Povezujemo paket i specificiramo jedinstveni ključ (ključeve) metrike:

Praćenje PostgreSQL-a pomoću Zabbixa

  1. Zahtjevom kreiramo rukovatelj (handler), tj. iniciramo varijablu koja će sadržavati rezultat:

Praćenje PostgreSQL-a pomoću Zabbixa

  1. Izvršavamo zahtjev:

Praćenje PostgreSQL-a pomoću Zabbixa

Potrebno je provjeriti zahtjev za greškama, nakon čega će Zabbix Agent 2 proces preuzeti rezultat.

  1. Registrirajte novi metrički ključ:

Praćenje PostgreSQL-a pomoću Zabbixa

Nakon registracije metrike, možete ponovno izgraditi agenta s novom metrikom.

Modul je dostupan počevši od Zabbix 5.0 na web stranici https://www.zabbix.com/download. U ovoj verziji Zabbixa, parametri se postavljaju odvojeno preko hosta i porta. U Zabbixu 5.0.2, koji će uskoro biti objavljen, parametri veze bit će pakirani u jedan URI.

Hvala vam!

korisni linkovi

GitHub Mamonsu

Mamonsu dokumentacija

Zabbix Git

Izvor: www.habr.com

Dodajte komentar