Reportáž Darii Vilkové pro Zabbix Meetup Online
Chci vám představit PostgreSQL a nástroj pro monitorování operačního systému, který naše společnost vyvíjí pomocí Zabbix.
Zabbix jsme si vybrali jako náš monitorovací nástroj na dlouhou dobu, protože se jedná o open source platformu podporovanou aktivní komunitou, která je v Rusku velmi populární.
Vytvořili jsme aktivního agenta Mamonsu, který poskytoval flexibilnější monitoring, než umožňovaly standardní nástroje v té době, a zajišťoval sběr metrik a jejich odesílání na Zabbix Server. V naší společnosti se při auditu používá Mamonsu.
Mamonsu
Mamonsu je aktivní agent (Zabbix Trapper) pro monitorování PostgreSQL a operačního systému. Mamonsu (napsané v Pythonu) vám umožňuje nakonfigurovat PostgreSQL a nastavení monitorování operačního systému během pěti minut.
Mamonsu má další nástroje:
- mamonsu tune je příkaz, který upravuje nastavení v konfiguračním souboru PostgreSQL pro počítač, na kterém je nainstalován agent Mamonsu.
- mamonsu report je příkaz, který generuje odpovědi o operačním systému a PostgreSQL.
Mamonsu se nainstaluje na DBMS server, shromažďuje informace, skládá je do JSON, který je posílá na Zabbix Server k vizualizaci, kde by měla být šablona pro jeho metriky.
Pracovní schéma Mamonsu
Představuje Mamonsu
- Efektivní práce s PostgreSQL. Trvalé připojení k PostgreSQL je hlavní výhodou Mamonsu. V tomto případě se maximální počet připojení rovná maximálnímu počtu databází, ke kterým se připojuje.
- Rozšiřitelnost. Mamonsu je plně „pluginový“ agent a díky pevné struktuře každého pluginu a relativní jednoduchosti Pythonu se lze snadno naučit, jak psát nové nebo upravovat standardní pluginy, tedy parametry sběru metrik.
- Široké pokrytí monitorovacích metrik pro PotgreSQL včetně metrik specifických pro rozšíření.
- rychlý oběd, dostupnost ihned po vybalení.
- Nahrávání šablon a konfiguračních souborů, stejně jako nahrávání na Zabbix Server.
- Cross-platform, což je důležité pro naše zákazníky, kteří používají různé distribuce Linuxu, včetně domácích.
- Licence klauzule BSD.
Momentálně nabízíme spoustu pluginů a v každé další verzi se snažíme přidat něco nového.
- 14 pluginů pro PostgreSQL,
- 8 pluginů pro OS Linux,
- 4 pluginy pro OS Windows.
Mamonsu shromažďuje více než 110 metrik PostgreSQL a operačního systému:
- 70 PostgreSQL metrik,
- 40 metrik OS Linux,
- 8 Metriky OS Windows.
Mezi klíčové metriky patří dostupnost DBMS, počet připojení, velikost databáze, kontrolní body, rychlost čtení/zápisu, zámky, počet procesů autovakuování a rychlost generování WAL. Kompletní seznam dostupných metrik, stejně jako podrobný popis všech nástrojů, je k dispozici v
Seznam dostupných metrik na GitHubu
Spusťte Mamonsu za 5 minut
Chcete-li nastavit monitorování PostgreSQL a operačního systému pomocí Mamonsu, můžete to udělat za 5 minut podle 5 jednoduchých kroků.
- Instalace Mamonsu. Mamonsu lze sestavit ze zdroje nebo použít dostupné balíčky.
$ git clone ... && cd mamonsu && python setup.py
build && python setup.py install
- Nastavení připojení. V souboru agent.conf je nutné nastavit parametry připojení pro PostgreSQL a Zabbix Server.
/etc/mamonsu/agent.conf
- Export šablony na server Zabbix.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- Přidání hostitele na server Zabbix. Exportovaná šablona bude automaticky připojena k novému hostiteli na serveru Zabbix.
$ mamonsu zabbix host create mamonsu-demo
- Spusťte.
$ service mamonsu start
Pokyny pro vývoj Mamonsu
V rámci vývoje Mamonsu plánujeme zpřesnění metrik a vytvoření nových pluginů, jako je plugin pro sledování velikosti jednotlivých tabulek. Plánujeme také vylepšit a vytvořit další nástroje a také rozšířit možnosti automatického ladění prostřednictvím příkazu mamonská melodie.
Monitorovací modul PostgreSQL jako součást Zabbix Agent 2
Pro připojení k PostgreSQL se používá rychlý a oblíbený ovladač
Zatím používáme dvě rozhraní: Exporter, který volá handler pomocí klíče, a Configurator Zabbix Agent 2, který čte a kontroluje parametry připojení se serverem uvedeným v konfiguračním souboru.
Pokusili jsme se optimalizovat práci DBMS seskupením metrik a použitím handleru (handleru) pro metriky a skupiny metrik, stejně jako použitím skupin metrik v JSON jako závislých proměnných (položky závislosti) a nízkoúrovňového zjišťování (pravidla zjišťování ).
Klíčové vlastnosti
- udržování trvalého připojení k PostgreSQL mezi kontrolami;
- podpora flexibilních intervalů dotazování;
- kompatibilita s verzemi PostgreSQL od 10 a Zabbix Server od verze 4.4;
- možnost připojit a monitorovat více instancí PostgreSQL současně díky tomu, že Zabbix Agent 2 umožňuje vytvářet více relací.
Úrovně parametrů připojení PostgreSQL
Celkem existují tři úrovně parametrů připojení PostgreSQL, tedy úkoly a nastavení:
- Globální,
- zasedání,
- Makra.
-
Parametry Global se nastavují na úrovni agenta, parametry Session a Macros definují parametry připojení k databázi.
-
Parametry připojení k PostgreSQL - Sessions se nastavují v souboru zabbix_agent2.conf.
Možnosti připojení PostgreSQL - relace
- Po klíčovém slově Sessions je určen jedinečný název relace, který musí být uveden v klíči (šabloně).
- Parametry URI и UserName vyžadováno pro každou relaci.
- Pokud není zadán základní název, použije se výchozí společný základní název pro všechny relace PostgreSQL, který je také nastaven v konfiguračním souboru.
- Parametry připojení k PostgreSQL - Makra se nastavují v metrickém klíči v šabloně (podobně jako metoda použitá v Zabbix Agent 1), tj. jsou vytvořena v šabloně a následně specifikována jako parametry v klíči. V tomto případě je posloupnost maker pevná, tj. URI vždy uveden jako první.
Parametry připojení PostgreSQL - Makra
Monitorovací modul PostgreSQL již obsahuje více než 95 metrik, které vám umožňují pokrýt poměrně širokou škálu parametrů PostgreSQL, včetně:
- počet spojení
- velikost databáze,
- archivace souborů wal,
- kontrolní body,
- počet „nafouknutých“ stolů,
- stav replikace,
- zpoždění repliky.
Bez parametrů operačního systému nejsou metriky PostgreSQL informativní. Zabbix Agent 2 už ale ví, jak sbírat parametry operačního systému, takže abychom získali úplný obrázek, jednoduše připojíme potřebné šablony k hostiteli.
Psovod
Obslužná rutina je hlavní jednotkou modulu, ve které se provádí samotný požadavek a která umožňuje přijímat metriky.
Chcete-li získat jednoduchou metriku:
- Vytvořte soubor a získejte novou metriku:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Připojíme balíček a určíme jedinečný klíč (klíče) metrik:
- Vytvoříme handler (handler) s požadavkem, tj. iniciujeme proměnnou, která bude obsahovat výsledek:
- Vyřídíme požadavek:
Požadavek je nutné zkontrolovat na chyby, poté bude výsledek vyzvednut procesem Zabbix Agent 2.
- Zaregistrujte nový klíč metriky:
Po registraci metriky můžete agenta znovu sestavit s novou metrikou.
Modul je k dispozici od Zabbix 5.0 na webu
Спасибо за внимание!
Užitečné odkazy
Zdroj: www.habr.com