PostgreSQL figyelése Zabbix segítségével

PostgreSQL figyelése Zabbix segítségével
Daria Vilkova riportja a Zabbix Meetup Online számára

Szeretném bemutatni a PostgreSQL és operációs rendszer figyelő eszközt, amelyet cégünk Zabbix segítségével fejleszt.

A Zabbixot régóta választottuk felügyeleti eszközünknek, mert ez egy nyílt forráskódú platform, amelyet egy Oroszországban nagyon népszerű aktív közösség támogat.

Létrehoztunk egy aktív ügynököt - a Mamonsut, amely az akkori szabványos eszközöknél rugalmasabb felügyeletet biztosított, és biztosította a mérőszámok összegyűjtését és elküldését a Zabbix szerverre. Cégünknél a Mamonsut használjuk az audit során.

Mamonsu

A Mamonsu egy aktív ügynök (Zabbix Trapper) a PostgreSQL és az operációs rendszer figyelésére. A Mamonsu (Python nyelven írva) lehetővé teszi a PostgreSQL és az operációs rendszer megfigyelési beállításainak konfigurálását öt perc alatt.

A Mamonsu további eszközökkel rendelkezik:

  • A mamonsu tune egy parancs, amely módosítja a PostgreSQL konfigurációs fájl beállításait azon a gépen, amelyre a Mamonsu ügynök telepítve van.
  • A mamonsu report egy parancs, amely válaszokat generál az operációs rendszerről és a PostgreSQL-ről.

A Mamonsu telepítve van a DBMS-kiszolgálóra, összegyűjti az információkat, JSON-ba állítja be, amely elküldi a Zabbix szerverre megjelenítésre, ahol kell lennie egy sablonnak a metrikáihoz.

PostgreSQL figyelése Zabbix segítségével

Mamonsu munkaséma

Mamonsut tartalmaz

  • Hatékony munka a PostgreSQL-lel. A PostgreSQL-hez való folyamatos kapcsolat a Mamonsu fő előnye. Ebben az esetben a kapcsolatok maximális száma megegyezik azon adatbázisok maximális számával, amelyekhez csatlakozik.
  • Bővíthetőség. A Mamonsu egy teljesen "plugin" ágens, és az egyes pluginok fix felépítése és a Python viszonylagos egyszerűsége miatt könnyen megtanulható az új beépülő modulok írása vagy a szabványos bővítmények, azaz a metrikagyűjtési paraméterek szerkesztése.
  • A megfigyelési mérőszámok széles körű lefedettsége a PotgreSQL-hez, beleértve a bővítmény-specifikus mérőszámokat.
  • Gyorsindítás, elérhetőség a dobozból.
  • Sablonok és konfigurációs fájlok feltöltése, valamint feltöltés a Zabbix szerverre.
  • Cross-platform, ami fontos azon ügyfeleink számára, akik különféle Linux disztribúciókat használnak, beleértve a hazait is.
  • BSD-klauzula licenc.

Jelenleg rengeteg bővítményt kínálunk, és minden következő verzióban megpróbálunk valami újat hozzáadni.

  • 14 plugin a PostgreSQL-hez,
  • 8 plugin az OS Linuxhoz,
  • 4 bővítmény Windows operációs rendszerhez.

A Mamonsu több mint 110 PostgreSQL és operációs rendszer mérőszámot gyűjt össze:

  • 70 PostgreSQL mérőszám,
  • 40 operációs rendszer Linux mérőszámai,
  • 8 operációs rendszer Windows mérőszámai.

A legfontosabb mérőszámok közé tartozik a DBMS elérhetősége, a kapcsolatok száma, az adatbázis mérete, az ellenőrzési pontok, az olvasási/írási sebesség, a zárolások, az autovákuumos folyamatok száma és a WAL generálási sebesség. Az elérhető mérőszámok teljes listája, valamint az összes eszköz részletes leírása elérhető a következő helyen: adattárak a GitHub oldalon.

PostgreSQL figyelése Zabbix segítségével

A GitHubon elérhető mutatók listája

Futtassa a Mamonsut 5 perc alatt

A PostgreSQL és az operációs rendszer figyelésének beállításához a Mamonsu használatával 5 perc alatt megteheti 5 egyszerű lépést követve.

  1. Mamonsu telepítése. A Mamonsu megépíthető forrásból, vagy felhasználható a rendelkezésre álló csomagok.

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

build && python setup.py install

  1. Kapcsolat beállítása. A PostgreSQL és a Zabbix Server kapcsolati paramétereit be kell állítani az agent.conf fájlban.

/etc/mamonsu/agent.conf

  1. Sablon exportálása a Zabbix szerverre.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Gazda hozzáadása a Zabbix szerverhez. Az exportált sablon automatikusan csatlakozik az új gazdagéphez a Zabbix szerveren.

$ mamonsu zabbix host create mamonsu-demo

  1. dob.

$ service mamonsu start

Mamonsu fejlesztési irányok

A Mamonsu fejlesztésének részeként a mérőszámok finomítását és új beépülő modulok létrehozását tervezzük, például az egyes táblák méretének figyelésére szolgáló bővítményt. Tervezzük továbbá további eszközök fejlesztését és létrehozását, valamint az automatikus hangolási képességek bővítését a parancs segítségével mamonsu dallam.

PostgreSQL megfigyelő modul a Zabbix Agent 2 részeként

A PostgreSQL-hez való csatlakozáshoz gyors és népszerű illesztőprogramot használnak pgx (PG illesztőprogram és eszközkészlet a Go-hoz).

Eddig két interfészt használunk: az Exportert, amely kulcsonként hívja meg a kezelőt, és a Configurator Zabbix Agent 2-t, amely beolvassa és ellenőrzi a kapcsolati paramétereket a konfigurációs fájlban megadott szerverrel.

Megpróbáltuk optimalizálni a DBMS munkáját a metrikák csoportosításával és egy kezelő (kezelő) használatával a metrikák és metrikacsoportok számára, valamint a JSON-ban lévő metrikacsoportok függő változóként (függőségi tételek) és alacsony szintű felfedezés (felfedezési szabályok) használatával. ).

Főbb jellemzők

  • folyamatos kapcsolat fenntartása a PostgreSQL-lel az ellenőrzések között;
  • rugalmas lekérdezési intervallumok támogatása;
  • kompatibilitás a PostgreSQL 10-es verziójától és a Zabbix Server 4.4-es verziójától kezdődően;
  • több PostgreSQL-példány egyidejű csatlakoztatásának és figyelésének képessége, mivel a Zabbix Agent 2 lehetővé teszi több munkamenet létrehozását.

PostgreSQL kapcsolati paraméterszintek

A PostgreSQL kapcsolati paramétereinek összesen három szintje érhető el, azaz feladatok és beállítások:

  • Globális,
  • Munkamenetek,
  • Makrók.

  1. A Globális paraméterek az ügynök szintjén vannak beállítva, a Session és Makros paraméterek pedig az adatbázis-kapcsolat paramétereit határozzák meg.

  2. A PostgreSQL-hez való csatlakozási paraméterek – A munkamenetek a fájlban vannak beállítva zabbix_agent2.conf.

PostgreSQL figyelése Zabbix segítségével

PostgreSQL csatlakozási lehetőségek – Munkamenetek

  • A kulcsszó után Sessions egyedi munkamenetnév van megadva, amelyet a kulcsban (sablonban) kell megadni.
  • Paraméterek URI и Felhasználónév minden üléshez szükséges.
  • Ha az alapnév nincs megadva, akkor az összes PostgreSQL-munkamenet alapértelmezett közös alapneve kerül felhasználásra, amely szintén be van állítva a konfigurációs fájlban.

  1. A PostgreSQL-hez való kapcsolódási paraméterek - A makrók a sablon metrikus kulcsában vannak beállítva (hasonlóan a Zabbix Agent 1-ben használt módszerhez), azaz létrejönnek a sablonban, majd paraméterként adják meg a kulcsban. Ebben az esetben a makrók sorrendje rögzített, azaz pl. URI mindig az első helyen szerepel.

PostgreSQL figyelése Zabbix segítségével

PostgreSQL kapcsolati paraméterek – Makrók

A PostgreSQL felügyeleti modul már több mint 95 metrikát tartalmaz, amelyek lehetővé teszik a PostgreSQL paraméterek meglehetősen széles skálájának lefedését, beleértve:

  • kapcsolatok száma
  • adatbázis mérete,
  • wal fájlok archiválása,
  • ellenőrző pontok,
  • a „felduzzasztott” asztalok száma,
  • replikációs állapot,
  • replika késleltetés.

A PostgreSQL metrikák nem informatívak az operációs rendszer paraméterei nélkül. De a Zabbix Agent 2 már tudja, hogyan kell összegyűjteni az operációs rendszer paramétereit, így a teljes kép érdekében egyszerűen csatlakoztatjuk a szükséges sablonokat a gazdagéphez.

Kezelő

A kezelő a modul fő egysége, amelyben maga a kérés végrehajtásra kerül, és amely lehetővé teszi a mérőszámok fogadását.

Egy egyszerű mutató eléréséhez:

  1. Hozzon létre egy fájlt új mérőszám fogadásához:

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

  1. Összekapcsoljuk a csomagot, és megadjuk a metrikák egyedi kulcsát (kulcsait):

PostgreSQL figyelése Zabbix segítségével

  1. Kéréssel létrehozunk egy kezelőt (handlert), azaz elindítunk egy változót, amely az eredményt tartalmazza:

PostgreSQL figyelése Zabbix segítségével

  1. A kérést teljesítjük:

PostgreSQL figyelése Zabbix segítségével

Szükséges a hibakérés ellenőrzése, amely után az eredményt a Zabbix Agent 2 folyamat veszi át.

  1. Regisztrálja az új metrikakulcsot:

PostgreSQL figyelése Zabbix segítségével

A metrika regisztrálása után újraépítheti az ügynököt az új metrikával.

A modul a Zabbix 5.0-tól kezdve elérhető a weboldalon https://www.zabbix.com/download. A Zabbix ezen verziójában a paraméterek külön-külön vannak beállítva a gazdagépen és a porton keresztül. A hamarosan megjelenő Zabbix 5.0.2-ben a kapcsolati paraméterek egyetlen URI-ba lesznek csomagolva.

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

Hasznos Linkek

GitHub Mamonsu

Mamonsu dokumentáció

Zabbix Git

Forrás: will.com

Hozzászólás