Monitering van PostgreSQL met Zabbix

Monitering van PostgreSQL met Zabbix
Verslag deur Daria Vilkova vir Zabbix Meetup Online

Ek wil jou bekendstel aan die PostgreSQL en bedryfstelsel monitering instrument, wat ontwikkel word deur ons maatskappy met behulp van Zabbix.

Ons het Zabbix vir 'n lang tyd as ons moniteringsinstrument gekies omdat dit 'n oopbronplatform is wat ondersteun word deur 'n aktiewe gemeenskap wat baie gewild is in Rusland.

Ons het 'n aktiewe agent geskep - Mamonsu, wat meer buigsame monitering verskaf het as wat standaardgereedskap op daardie tydstip toegelaat het, en verseker het dat metrieke versamel en na Zabbix Server gestuur word. In ons maatskappy word Mamonsu in die oudit gebruik.

Mamonsu

Mamonsu is 'n aktiewe agent (Zabbix Trapper) vir die monitering van PostgreSQL en die bedryfstelsel. Mamonsu (geskryf in Python) laat jou toe om PostgreSQL- en bedryfstelselmoniteringinstellings binne vyf minute op te stel.

Mamonsu het bykomende gereedskap:

  • mamonsu tune is 'n opdrag wat die instellings in die PostgreSQL-konfigurasielêer wysig vir die masjien waarop die Mamonsu-agent geïnstalleer is.
  • mamonsu-verslag is 'n opdrag wat antwoorde oor die bedryfstelsel en PostgreSQL genereer.

Mamonsu word op die DBMS-bediener geïnstalleer, versamel inligting, stel dit saam in JSON, wat dit na Zabbix Server stuur vir visualisering, waar daar 'n sjabloon vir sy maatstawwe moet wees.

Monitering van PostgreSQL met Zabbix

Mamonsu werkskema

Beskik oor Mamonsu

  • Doeltreffende werk met PostgreSQL. 'N Aanhoudende verbinding met PostgreSQL is die grootste voordeel van Mamonsu. In hierdie geval is die maksimum aantal verbindings gelyk aan die maksimum aantal databasisse waaraan dit koppel.
  • Uitbreidbaarheid. Mamonsu is 'n ten volle "inprop" agent, en as gevolg van die vaste struktuur van elke inprop en die relatiewe eenvoud van Python, kan 'n mens maklik leer hoe om nuwe inproppe te skryf of te redigeer, dit wil sê metrieke versameling parameters.
  • Wye dekking van moniteringsmetrieke vir PotgreSQL insluitend uitbreiding-spesifieke statistieke.
  • vinnige bekendstelling, beskikbaarheid uit die boks.
  • Laai sjablone en konfigurasielêers op, sowel as oplaai na Zabbix Server.
  • Kruis-platform, wat belangrik is vir ons kliënte wat verskeie Linux-verspreidings gebruik, insluitend huishoudelike.
  • BSD-klousule lisensie.

Op die oomblik bied ons baie plugins en in elke volgende weergawe probeer ons om iets nuuts by te voeg.

  • 14 plugins vir PostgreSQL,
  • 8 plugins vir OS Linux,
  • 4 plugins vir OS Windows.

Mamonsu versamel meer as 110 PostgreSQL en bedryfstelsel statistieke:

  • 70 PostgreSQL-statistieke,
  • 40 OS Linux-statistieke,
  • 8 OS Windows-statistieke.

Sleutelmaatstawwe sluit in DBMS-beskikbaarheid, aantal verbindings, databasisgrootte, kontrolepunte, lees-/skryfspoed, slotte, aantal outovakuumprosesse en WAL-genereringspoed. 'n Volledige lys van beskikbare maatstawwe, sowel as 'n gedetailleerde beskrywing van alle gereedskap, is beskikbaar in bewaarplekke op die GitHub-werf.

Monitering van PostgreSQL met Zabbix

Lys van beskikbare maatstawwe op GitHub

Hardloop Mamonsu in 5 minute

Om die monitering van PostgreSQL en die bedryfstelsel met Mamonsu op te stel, kan jy dit binne 5 minute doen deur 5 eenvoudige stappe te volg.

  1. Installeer Mamonsu. Mamonsu kan vanaf bron gebou word of beskikbare pakkette gebruik.

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

build && python setup.py install

  1. Verbinding opstel. Dit is nodig om die verbinding parameters vir PostgreSQL en Zabbix Server in die agent.conf lêer te stel.

/etc/mamonsu/agent.conf

  1. Voer sjabloon uit na Zabbix Server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Voeg 'n gasheer by Zabbix Server. Die uitgevoerde sjabloon sal outomaties aan die nuwe gasheer op Zabbix Server gekoppel word.

$ mamonsu zabbix host create mamonsu-demo

  1. bekendstelling.

$ service mamonsu start

Mamonsu Ontwikkelingsaanwysings

As deel van die ontwikkeling van Mamonsu, beplan ons om die maatstawwe te verfyn en nuwe inproppe te skep, soos 'n inprop om die grootte van individuele tabelle te monitor. Ons beplan ook om bykomende gereedskap te verbeter en te skep, sowel as om outo-instelvermoëns uit te brei deur die opdrag mamonsu deuntjie.

PostgreSQL-moniteringsmodule as deel van Zabbix Agent 2

'n Vinnige en gewilde bestuurder word gebruik om aan PostgreSQL te koppel blx (PG-bestuurder en gereedskapstel vir Go).

Tot dusver gebruik ons ​​twee koppelvlakke: Uitvoerder, wat die hanteerder per sleutel oproep, en Configurator Zabbix Agent 2, wat die verbindingsparameters lees en kontroleer met die bediener wat in die konfigurasielêer gespesifiseer is.

Ons het probeer om die werk van die DBBS te optimaliseer deur metrieke te groepeer en 'n hanteerder (hanteerder) vir metrieke en metrieke groepe te gebruik, asook om groepe metrieke in JSON as afhanklike veranderlikes (afhanklikheidsitems) en laevlak-ontdekking (ontdekkingreëls) te gebruik ).

Belangrike kenmerke

  • die handhawing van 'n aanhoudende verbinding met PostgreSQL tussen tjeks;
  • ondersteuning vir buigsame stemintervalle;
  • verenigbaarheid met PostgreSQL-weergawes vanaf 10 en Zabbix Server vanaf weergawe 4.4;
  • die vermoë om verskeie PostgreSQL-gevalle gelyktydig te koppel en te monitor as gevolg van die feit dat Zabbix Agent 2 jou toelaat om verskeie sessies te skep.

PostgreSQL-verbindingsparametervlakke

In totaal is drie vlakke van PostgreSQL-verbindingsparameters beskikbaar, dit wil sê take en instellings:

  • Wêreldwyd,
  • sessie,
  • Makros.

  1. Die globale parameters word op agentvlak gestel, die sessie- en makro's-parameters definieer die databasisverbindingsparameters.

  2. Verbindingsparameters na PostgreSQL - Sessies word in die lêer gestel zabbix_agent2.conf.

Monitering van PostgreSQL met Zabbix

PostgreSQL-verbindingsopsies - Sessies

  • Na sleutelwoord Sessies 'n unieke sessienaam word gespesifiseer, wat in die sleutel (sjabloon) gespesifiseer moet word.
  • Parameters URI и UserName vereis vir elke sessie.
  • As die basisnaam nie gespesifiseer is nie, word die standaard algemene basisnaam vir alle PostgreSQL-sessies gebruik, wat ook in die konfigurasielêer gestel word.

  1. Verbindingsparameters na PostgreSQL - Makro's word in die metrieke sleutel in die sjabloon gestel (soortgelyk aan die metode wat in Zabbix Agent 1 gebruik word), dit wil sê hulle word in die sjabloon geskep en dan as parameters in die sleutel gespesifiseer. In hierdie geval is die volgorde van makro's vas, dit wil sê, byvoorbeeld, URI altyd eerste gelys.

Monitering van PostgreSQL met Zabbix

PostgreSQL-verbindingsparameters - Makro's

Die PostgreSQL-moniteringsmodule bevat reeds meer as 95 statistieke wat jou toelaat om 'n redelike wye reeks PostgreSQL-parameters te dek, insluitend:

  • aantal verbindings
  • databasis grootte,
  • argiveer wal lêers,
  • kontrolepunte,
  • die aantal "opgeblaasde" tabelle,
  • replikasie status,
  • replika vertraging.

PostgreSQL-statistieke is nie insiggewend sonder bedryfstelselparameters nie. Maar Zabbix Agent 2 weet reeds hoe om bedryfstelselparameters te versamel, so om die volle prentjie te kry, koppel ons eenvoudig die nodige sjablone aan die gasheer.

Hanteerder

Die hanteerder is die hoofeenheid van die module waarin die versoek self uitgevoer word en wat jou toelaat om metrieke te ontvang.

Om 'n eenvoudige maatstaf te kry:

  1. Skep 'n lêer om 'n nuwe maatstaf te kry:

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

  1. Ons koppel die pakket en spesifiseer die unieke sleutel (sleutels) van die metrieke:

Monitering van PostgreSQL met Zabbix

  1. Ons skep 'n hanteerder (hanteerder) met 'n versoek, dit wil sê, ons begin 'n veranderlike wat die resultaat sal bevat:

Monitering van PostgreSQL met Zabbix

  1. Ons voer die versoek uit:

Monitering van PostgreSQL met Zabbix

Dit is nodig om die versoek vir foute na te gaan, waarna die resultaat deur die Zabbix Agent 2-proses opgetel sal word.

  1. Registreer die nuwe metrieke sleutel:

Monitering van PostgreSQL met Zabbix

Nadat u die maatstaf geregistreer het, kan jy die agent herbou met die nuwe maatstaf.

Die module is beskikbaar vanaf Zabbix 5.0 op die webwerf https://www.zabbix.com/download. In hierdie weergawe van Zabbix word die parameters afsonderlik ingestel via gasheer en poort. In Zabbix 5.0.2, wat binnekort vrygestel sal word, sal die verbindingsparameters in 'n enkele URI verpak word.

Skep 'n nuwe weergawe!

nuttige skakels

GitHub Mamonsu

Mamonsu Dokumentasie

Zabbix Git

Bron: will.com

Voeg 'n opmerking