Overvåking av PostgreSQL ved hjelp av Zabbix

Overvåking av PostgreSQL ved hjelp av Zabbix
Rapport av Daria Vilkova for Zabbix Meetup Online

Jeg vil introdusere deg til PostgreSQL og operativsystemovervåkingsverktøyet, som utvikles av selskapet vårt ved hjelp av Zabbix.

Vi har valgt Zabbix som vårt overvåkingsverktøy i lang tid fordi det er en åpen kildekode-plattform støttet av et aktivt fellesskap som er veldig populært i Russland.

Vi opprettet en aktiv agent - Mamonsu, som ga mer fleksibel overvåking enn standardverktøy på det tidspunktet tillot, og sørget for innsamling av beregninger og sending av dem til Zabbix Server. I vårt selskap brukes Mamonsu i tilsynet.

Mamonsu

Mamonsu er en aktiv agent (Zabbix Trapper) for overvåking av PostgreSQL og operativsystemet. Mamonsu (skrevet i Python) lar deg konfigurere PostgreSQL og operativsystemovervåkingsinnstillinger på fem minutter.

Mamonsu har flere verktøy:

  • mamonsu tune er en kommando som redigerer innstillingene i PostgreSQL-konfigurasjonsfilen for maskinen som Mamonsu-agenten er installert på.
  • mamonsu-rapporten er en kommando som genererer svar om operativsystemet og PostgreSQL.

Mamonsu er installert på DBMS-serveren, samler informasjon, komponerer den til JSON, som sender den til Zabbix Server for visualisering, hvor det skal være en mal for dens beregninger.

Overvåking av PostgreSQL ved hjelp av Zabbix

Mamonsu arbeidsordning

Har Mamonsu

  • Effektivt arbeid med PostgreSQL. En vedvarende tilkobling til PostgreSQL er hovedfordelen med Mamonsu. I dette tilfellet er det maksimale antallet tilkoblinger likt det maksimale antallet databaser den kobles til.
  • Utvidbarhet. Mamonsu er en fullstendig "plugin"-agent, og på grunn av den faste strukturen til hvert plugin og den relative enkelheten til Python, kan man enkelt lære hvordan man skriver nye eller redigerer standard plugins, dvs. parametere for metrikksamling.
  • Bred dekning av overvåkingsmålinger for PotgreSQL inkludert utvidelsesspesifikke beregninger.
  • hurtigstart, tilgjengelighet ut av esken.
  • Laste opp maler og konfigurasjonsfiler, samt opplasting til Zabbix Server.
  • Kryssplattform, som er viktig for våre kunder som bruker ulike Linux-distribusjoner, inkludert innenlandske.
  • BSD-klausul lisens.

For øyeblikket tilbyr vi mange plugins og i hver neste versjon prøver vi å legge til noe nytt.

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

Mamonsu samler over 110 PostgreSQL- og operativsystemberegninger:

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

Nøkkelberegninger inkluderer DBMS-tilgjengelighet, antall tilkoblinger, databasestørrelse, sjekkpunkter, lese-/skrivehastighet, låser, antall autovakuumprosesser og WAL-genereringshastighet. En komplett liste over tilgjengelige beregninger, samt en detaljert beskrivelse av alle verktøyene, er tilgjengelig i depoter på GitHub-siden.

Overvåking av PostgreSQL ved hjelp av Zabbix

Liste over tilgjengelige beregninger på GitHub

Kjør Mamonsu på 5 minutter

For å sette opp overvåking av PostgreSQL og operativsystemet ved hjelp av Mamonsu, kan du gjøre det på 5 minutter ved å følge 5 enkle trinn.

  1. Installerer Mamonsu. Mamonsu kan bygges fra kilden eller bruke tilgjengelige pakker.

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

build && python setup.py install

  1. Tilkoblingsoppsett. Det er nødvendig å angi tilkoblingsparametrene for PostgreSQL og Zabbix Server i agent.conf-filen.

/etc/mamonsu/agent.conf

  1. Eksporter mal til Zabbix Server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Legger til en vert til Zabbix Server. Den eksporterte malen vil automatisk kobles til den nye verten på Zabbix Server.

$ mamonsu zabbix host create mamonsu-demo

  1. lanseringen.

$ service mamonsu start

Mamonsu utviklingsveiledning

Som en del av utviklingen av Mamonsu planlegger vi å avgrense beregningene og lage nye plugins, for eksempel en plugin for å overvåke størrelsen på individuelle tabeller. Vi planlegger også å forbedre og lage flere verktøy, samt utvide funksjonene for automatisk justering gjennom kommandoen mamonsu melodi.

PostgreSQL-overvåkingsmodul som en del av Zabbix Agent 2

En rask og populær driver brukes til å koble til PostgreSQL pgx (PG-driver og verktøysett for Go).

Foreløpig bruker vi to grensesnitt: Exporter, som kaller behandleren med nøkkel, og Configurator Zabbix Agent 2, som leser og sjekker tilkoblingsparametrene med serveren spesifisert i konfigurasjonsfilen.

Vi prøvde å optimere arbeidet til DBMS ved å gruppere metrikker og bruke en behandler (behandler) for metrikk og metriske grupper, samt bruke grupper av metrikk i JSON som avhengige variabler (avhengighetselementer), og oppdagelse på lavt nivå (oppdagelsesregler). ).

Viktige funksjoner

  • opprettholde en vedvarende forbindelse til PostgreSQL mellom sjekkene;
  • støtte for fleksible avstemningsintervaller;
  • kompatibilitet med PostgreSQL-versjoner fra 10 og Zabbix Server fra versjon 4.4;
  • muligheten til å koble til og overvåke flere PostgreSQL-forekomster samtidig på grunn av at Zabbix Agent 2 lar deg lage flere økter.

PostgreSQL-tilkoblingsparameternivåer

Totalt er det tre nivåer av PostgreSQL-tilkoblingsparametere, det vil si oppgaver og innstillinger:

  • Alt i alt,
  • økter,
  • Makroer.

  1. De globale parameterne settes på agentnivå, sesjons- og makroparametrene definerer databasetilkoblingsparameterne.

  2. Tilkoblingsparametere til PostgreSQL - Økter settes i filen zabbix_agent2.conf.

Overvåking av PostgreSQL ved hjelp av Zabbix

PostgreSQL-tilkoblingsalternativer - økter

  • Etter nøkkelord Økter et unikt sesjonsnavn er spesifisert, som må spesifiseres i nøkkelen (malen).
  • Parametere URI и UserName nødvendig for hver økt.
  • Hvis basenavnet ikke er spesifisert, brukes standard felles basenavn for alle PostgreSQL-sesjoner, som også angis i konfigurasjonsfilen.

  1. Tilkoblingsparametere til PostgreSQL - Makroer settes i den metriske nøkkelen i malen (lik metoden som brukes i Zabbix Agent 1), dvs. de opprettes i malen og spesifiseres deretter som parametere i nøkkelen. I dette tilfellet er sekvensen av makroer fast, dvs. for eksempel, URI alltid oppført først.

Overvåking av PostgreSQL ved hjelp av Zabbix

PostgreSQL-tilkoblingsparametere - Makroer

PostgreSQL-overvåkingsmodulen inkluderer allerede mer enn 95 beregninger som lar deg dekke et ganske bredt spekter av PostgreSQL-parametere, inkludert:

  • antall tilkoblinger
  • databasestørrelse,
  • arkivering av wal-filer,
  • sjekkpunkter,
  • antall "oppblåste" tabeller,
  • replikeringsstatus,
  • replika forsinkelse.

PostgreSQL-beregninger er ikke informative uten operativsystemparametere. Men Zabbix Agent 2 vet allerede hvordan man samler inn operativsystemparametere, så for å få hele bildet kobler vi ganske enkelt de nødvendige malene til verten.

Handler

Behandleren er hovedenheten i modulen der selve forespørselen utføres og som lar deg motta beregninger.

For å få en enkel beregning:

  1. Opprett en fil for å få en ny beregning:

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

  1. Vi kobler sammen pakken og spesifiserer den unike nøkkelen (nøklene) til beregningene:

Overvåking av PostgreSQL ved hjelp av Zabbix

  1. Vi oppretter en behandler (behandler) med en forespørsel, dvs. vi starter en variabel som vil inneholde resultatet:

Overvåking av PostgreSQL ved hjelp av Zabbix

  1. Vi utfører forespørselen:

Overvåking av PostgreSQL ved hjelp av Zabbix

Det er nødvendig å sjekke forespørselen for feil, hvoretter resultatet vil bli plukket opp av Zabbix Agent 2-prosessen.

  1. Registrer den nye metriske nøkkelen:

Overvåking av PostgreSQL ved hjelp av Zabbix

Etter å ha registrert beregningen, kan du gjenoppbygge agenten med den nye metrikken.

Modulen er tilgjengelig fra og med Zabbix 5.0 på nettstedet https://www.zabbix.com/download. I denne versjonen av Zabbix settes parameterne separat via vert og port. I Zabbix 5.0.2, som snart vil bli utgitt, vil tilkoblingsparametrene bli pakket inn i en enkelt URI.

Takk for din oppmerksomhet!

Nyttige lenker

GitHub Mamonsu

Mamonsu-dokumentasjon

Zabbix Git

Kilde: www.habr.com

Legg til en kommentar