Monitorovanie PostgreSQL pomocou Zabbix

Monitorovanie PostgreSQL pomocou Zabbix
Reportáž Darie Vilkovej pre Zabbix Meetup Online

Rád by som vám predstavil PostgreSQL a nástroj na monitorovanie operačného systému, ktorý naša spoločnosť vyvíja pomocou Zabbixu.

Zabbix sme si vybrali ako náš monitorovací nástroj už dávno, pretože je to open source platforma podporovaná aktívnou komunitou, ktorá je v Rusku veľmi populárna.

Vytvorili sme aktívneho agenta Mamonsu, ktorý poskytoval flexibilnejší monitoring ako v tom čase umožňovali štandardné nástroje a zabezpečoval zber metrík a ich odosielanie na Zabbix Server. V našej spoločnosti sa Mamonsu používa pri vykonávaní auditov.

Mamonsu

Mamonsu je aktívny agent (Zabbix Trapper) na monitorovanie PostgreSQL a operačného systému. Mamonsu (napísané v Pythone) vám umožňuje nakonfigurovať PostgreSQL a nastavenia monitorovania operačného systému za päť minút.

Mamonsu má ďalšie nástroje:

  • mamonsu tune je príkaz, ktorý upravuje nastavenia v konfiguračnom súbore PostgreSQL pre počítač, na ktorom je nainštalovaný agent Mamonsu.
  • mamonsu report je príkaz, ktorý generuje odpovede o operačnom systéme a PostgreSQL.

Mamonsu sa nainštaluje na server DBMS, zhromažďuje informácie, skompiluje ich do JSON, ktorý sa odošle na vizualizáciu na server Zabbix, kde by mala byť šablóna pre jeho metriky.

Monitorovanie PostgreSQL pomocou Zabbix

Operačná schéma Mamonsu

Vlastnosti Mamonsu

  • Efektívna práca s PostgreSQL. Trvalé pripojenie k PostgreSQL je hlavnou výhodou Mamonsu. V tomto prípade sa maximálny počet pripojení rovná maximálnemu počtu databáz, ku ktorým sa pripája.
  • Rozšíriteľnosť. Mamonsu je úplne plug-in agent a vďaka pevnej štruktúre každého pluginu a relatívnej jednoduchosti Pythonu sa môžete ľahko naučiť, ako písať nové alebo upravovať štandardné pluginy, teda parametre zberu metrík.
  • Široké pokrytie metrík na monitorovanie pre PotgreSQL vrátane metrík pre konkrétne rozšírenia.
  • Rýchly štart, Dostupnosť po vybalení.
  • Nahrávanie šablón a konfiguračných súborov, ako aj nahrávanie na server Zabbix.
  • Viacplatformový, čo je dôležité pre našich zákazníkov, ktorí používajú rôzne distribúcie Linuxu, vrátane domácich.
  • Licencia na klauzulu BSD.

V súčasnosti ponúkame veľa pluginov a v každej ďalšej verzii sa snažíme pridať niečo nové.

  • 14 pluginov pre PostgreSQL,
  • 8 pluginov pre OS Linux,
  • 4 pluginy pre OS Windows.

Mamonsu zhromažďuje viac ako 110 metrík PostgreSQL a operačného systému:

  • 70 metrík PostgreSQL,
  • 40 metrík OS Linux,
  • 8 metriky OS Windows.

Medzi kľúčové metriky patrí dostupnosť DBMS, počet pripojení, veľkosť databázy, kontrolné body, rýchlosť čítania/zápisu, zámky, počet procesov automatického vákuovania a rýchlosť generovania WAL. Kompletný zoznam dostupných metrík, ako aj podrobný popis všetkých nástrojov je k dispozícii v úložiská na webovej stránke GitHub.

Monitorovanie PostgreSQL pomocou Zabbix

Zoznam dostupných metrík na GitHub

Spustite Mamonsu za 5 minút

PostgreSQL a monitorovanie operačného systému môžete nastaviť pomocou Mamonsu za 5 minút podľa 5 jednoduchých krokov.

  1. Inštalácia Mamonsu. Mamonsu je možné zostaviť zo zdroja alebo pomocou dostupných balíkov.

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

build && python setup.py install

  1. Nastavenie pripojení. V súbore agent.conf je potrebné špecifikovať parametre pripojenia pre PostgreSQL a Zabbix Server.

/etc/mamonsu/agent.conf

  1. Exportovanie šablóny na server Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Pridanie hostiteľa na server Zabbix. Exportovaná šablóna sa automaticky pripojí k novému hostiteľovi na serveri Zabbix.

$ mamonsu zabbix host create mamonsu-demo

  1. Запуск.

$ service mamonsu start

Smery vývoja Mamonsu

V rámci vývoja Mamonsu plánujeme dolaďovať metriky a vytvárať nové pluginy, napríklad plugin na sledovanie veľkosti jednotlivých tabuliek. Plánujeme tiež zlepšiť a vytvoriť ďalšie nástroje, ako aj rozšíriť možnosti automatického ladenia prostredníctvom príkazu mamonská melódia.

Monitorovací modul PostgreSQL zahrnutý v Zabbix Agent 2

Na pripojenie k PostgreSQL sa používa rýchly a obľúbený ovládač pgx (PG ovládač a súprava nástrojov pre Go).

Zatiaľ používame dve rozhrania: Exporter, ktorý volá handler pomocou kľúča, a Configurator Zabbix Agent 2, ktorý číta a kontroluje parametre pripojenia k serveru špecifikované v konfiguračnom súbore.

Pokúsili sme sa optimalizovať výkon DBMS zoskupením metrík a použitím handlera pre metriky a skupiny metrík, ako aj použitím skupín metrík v JSON ako závislých premenných (položky závislosti) a nízkoúrovňového zisťovania (pravidlá zisťovania).

Kľúčové vlastnosti

  • udržiavanie trvalého pripojenia k PostgreSQL medzi kontrolami;
  • podpora flexibilných intervalov hlasovania;
  • kompatibilný s verziami PostgreSQL od verzie 10 a serverom Zabbix od verzie 4.4;
  • možnosť pripojiť a monitorovať niekoľko inštancií PostgreSQL súčasne vďaka tomu, že Zabbix Agent 2 umožňuje vytvárať viaceré relácie.

Úrovne parametrov pripojenia PostgreSQL

Celkovo sú k dispozícii tri úrovne parametrov pripojenia k PostgreSQL, t. j. úlohy a nastavenia:

  • Globálne,
  • Relácie
  • Makrá.

  1. Globálne parametre sa nastavujú na úrovni agenta, parametre Session a Macros určujú parametre pripojenia k databáze.

  2. V súbore sú nastavené parametre pripojenia k PostgreSQL - Sessions zabbix_agent2.conf.

Monitorovanie PostgreSQL pomocou Zabbix

Parametre pripojenia PostgreSQL - Relácie

  • Po kľúčovom slove Sessions je uvedený jedinečný názov relácie, ktorý musí byť uvedený v kľúči (šablóne).
  • Parametre URI и Username potrebné pre každú reláciu.
  • Ak nie je zadaný názov databázy, použije sa predvolený spoločný názov databázy pre všetky relácie PostgreSQL, ktorý je uvedený aj v konfiguračnom súbore.

  1. Parametre pripojenia k PostgreSQL – makrá sú špecifikované v metrickom kľúči v šablóne (podobne ako metóda použitá v Zabbix Agent 1), t.j. sú vytvorené v šablóne a následne špecifikované ako parametre v kľúči. V tomto prípade je postupnosť makier pevná, t.j. URI je vždy uvedené ako prvé.

Monitorovanie PostgreSQL pomocou Zabbix

Parametre pripojenia PostgreSQL - Makrá

Monitorovací modul PostgreSQL už obsahuje viac ako 95 metrík, ktoré vám umožňujú pokryť pomerne širokú škálu parametrov PostgreSQL, vrátane:

  • počet spojení,
  • objem databáz,
  • archivácia súborov wal,
  • kontrolné body,
  • počet „nafúknutých“ stolov,
  • stav replikácie,
  • oneskorenie repliky.

PostgreSQL metriky nie sú informatívne bez parametrov operačného systému. Ale Zabbix Agent 2 už vie, ako zbierať parametre operačného systému, takže pre úplný obraz jednoducho pripojíme potrebné šablóny k sieťovému uzlu.

Handler

Obsluha je hlavná jednotka modulu, v ktorej sa vykonáva samotná požiadavka a ktorá umožňuje získať metriky.

Ak chcete získať jednoduchú metriku:

  1. Vytvorte súbor na získanie novej metriky:

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

  1. Pripojíme balík a špecifikujeme jedinečné kľúče metrík:

Monitorovanie PostgreSQL pomocou Zabbix

  1. S požiadavkou vytvoríme handler, t.j. iniciujeme premennú, ktorá bude obsahovať výsledok:

Monitorovanie PostgreSQL pomocou Zabbix

  1. Vybavíme požiadavku:

Monitorovanie PostgreSQL pomocou Zabbix

Požiadavku je potrebné skontrolovať na chyby, po čom výsledok prevezme proces Zabbix Agent 2.

  1. Zaregistrujte nový kľúč metriky:

Monitorovanie PostgreSQL pomocou Zabbix

Po zaregistrovaní metriky môžete prebudovať agenta s novou metrikou.

Modul je dostupný od Zabbix 5.0 na webovej stránke https://www.zabbix.com/download. V tejto verzii Zabbix sa parametre nastavujú samostatne cez hostiteľa a port. V Zabbix 5.0.2, ktorý bude čoskoro vydaný, budú parametre pripojenia spojené do jedného URI.

Ďakujem vám za pozornosť!

Užitočné odkazy

GitHub Mamonsu

Dokumentácia Mamonsu

Zabbix Git

Zdroj: hab.com

Pridať komentár