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.
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
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.
- 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
- Postavljanje veze. U agent.conf datoteci potrebno je postaviti parametre povezivanja za PostgreSQL i Zabbix poslužitelj.
/etc/mamonsu/agent.conf
- Izvoz predloška na Zabbix poslužitelj.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- 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
- 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
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.
-
Globalni parametri postavljaju se na razini agenta, parametri Session i Macros definiraju parametre veze s bazom podataka.
-
Parametri povezivanja s PostgreSQL - Sesije su postavljene u datoteci zabbix_agent2.conf.
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.
- 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.
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:
- Izradite datoteku da biste dobili novu metriku:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Povezujemo paket i specificiramo jedinstveni ključ (ključeve) metrike:
- Zahtjevom kreiramo rukovatelj (handler), tj. iniciramo varijablu koja će sadržavati rezultat:
- Izvršavamo zahtjev:
Potrebno je provjeriti zahtjev za greškama, nakon čega će Zabbix Agent 2 proces preuzeti rezultat.
- Registrirajte novi metrički ključ:
Nakon registracije metrike, možete ponovno izgraditi agenta s novom metrikom.
Modul je dostupan počevši od Zabbix 5.0 na web stranici
Hvala vam!
korisni linkovi
Izvor: www.habr.com