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.
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
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.
- 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
- Nastavenie pripojení. V súbore agent.conf je potrebné špecifikovať parametre pripojenia pre PostgreSQL a Zabbix Server.
/etc/mamonsu/agent.conf
- Exportovanie šablóny na server Zabbix.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- 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
- Запуск.
$ 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č
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á.
-
Globálne parametre sa nastavujú na úrovni agenta, parametre Session a Macros určujú parametre pripojenia k databáze.
-
V súbore sú nastavené parametre pripojenia k PostgreSQL - Sessions zabbix_agent2.conf.
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.
- 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é.
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:
- Vytvorte súbor na získanie novej metriky:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Pripojíme balík a špecifikujeme jedinečné kľúče metrík:
- S požiadavkou vytvoríme handler, t.j. iniciujeme premennú, ktorá bude obsahovať výsledok:
- Vybavíme požiadavku:
Požiadavku je potrebné skontrolovať na chyby, po čom výsledok prevezme proces Zabbix Agent 2.
- Zaregistrujte nový kľúč metriky:
Po zaregistrovaní metriky môžete prebudovať agenta s novou metrikou.
Modul je dostupný od Zabbix 5.0 na webovej stránke
Ďakujem vám za pozornosť!
Užitočné odkazy
Zdroj: hab.com