Monitorování PostgreSQL pomocí Zabbix

Monitorování PostgreSQL pomocí Zabbix
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.

Monitorování PostgreSQL pomocí Zabbix

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 úložišť na webu GitHub.

Monitorování PostgreSQL pomocí Zabbix

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ů.

  1. 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

  1. Nastavení připojení. V souboru agent.conf je nutné nastavit parametry připojení pro PostgreSQL a Zabbix Server.

/etc/mamonsu/agent.conf

  1. Export šablony na server Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. 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

  1. 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č pgx (PG ovladač a sada nástrojů pro Go).

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.

  1. Parametry Global se nastavují na úrovni agenta, parametry Session a Macros definují parametry připojení k databázi.

  2. Parametry připojení k PostgreSQL - Sessions se nastavují v souboru zabbix_agent2.conf.

Monitorování PostgreSQL pomocí Zabbix

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.

  1. 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í.

Monitorování PostgreSQL pomocí Zabbix

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:

  1. Vytvořte soubor a získejte novou metriku:

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

  1. Připojíme balíček a určíme jedinečný klíč (klíče) metrik:

Monitorování PostgreSQL pomocí Zabbix

  1. Vytvoříme handler (handler) s požadavkem, tj. iniciujeme proměnnou, která bude obsahovat výsledek:

Monitorování PostgreSQL pomocí Zabbix

  1. Vyřídíme požadavek:

Monitorování PostgreSQL pomocí Zabbix

Požadavek je nutné zkontrolovat na chyby, poté bude výsledek vyzvednut procesem Zabbix Agent 2.

  1. Zaregistrujte nový klíč metriky:

Monitorování PostgreSQL pomocí Zabbix

Po registraci metriky můžete agenta znovu sestavit s novou metrikou.

Modul je k dispozici od Zabbix 5.0 na webu https://www.zabbix.com/download. V této verzi Zabbix se parametry nastavují samostatně prostřednictvím hostitele a portu. V Zabbix 5.0.2, který bude brzy vydán, budou parametry připojení zabaleny do jediného URI.

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

Užitečné odkazy

GitHub Mamonsu

Dokumentace Mamonsu

Zabbix Git

Zdroj: www.habr.com

Přidat komentář