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.
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
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.
- 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
- Nastavitev povezave. V datoteki agent.conf je potrebno nastaviti parametre povezave za PostgreSQL in Zabbix Server.
/etc/mamonsu/agent.conf
- Izvoz predloge v strežnik Zabbix.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- Dodajanje gostitelja strežniku Zabbix. Izvožena predloga bo samodejno povezana z novim gostiteljem na strežniku Zabbix.
$ mamonsu zabbix host create mamonsu-demo
- 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
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.
-
Globalni parametri so nastavljeni na ravni agenta, parametra Session in Macros določata parametre povezave z bazo podatkov.
-
Parametri povezave s PostgreSQL – seje so nastavljene v datoteki zabbix_agent2.conf.
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.
- 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.
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:
- Ustvarite datoteko, da dobite novo meritev:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Paket povežemo in določimo edinstven ključ (ključe) metrike:
- Z zahtevo izdelamo obdelovalnik (handler), torej iniciiramo spremenljivko, ki bo vsebovala rezultat:
- Zahtevo izpolnimo:
Zahtevo je treba preveriti glede napak, nato pa bo rezultat prevzel proces Zabbix Agent 2.
- Registrirajte nov metrični ključ:
Po registraciji metrike lahko znova sestavite agenta z novo metriko.
Modul je na spletni strani na voljo od Zabbix 5.0
Спасибо за внимание!
Uporabne povezave
Vir: www.habr.com