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.
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
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.
- Installerer Mamonsu. Mamonsu kan bygges fra kilden eller bruke tilgjengelige pakker.
$ git clone ... && cd mamonsu && python setup.py
build && python setup.py install
- Tilkoblingsoppsett. Det er nødvendig å angi tilkoblingsparametrene for PostgreSQL og Zabbix Server i agent.conf-filen.
/etc/mamonsu/agent.conf
- Eksporter mal til Zabbix Server.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- 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
- 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
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.
-
De globale parameterne settes på agentnivå, sesjons- og makroparametrene definerer databasetilkoblingsparameterne.
-
Tilkoblingsparametere til PostgreSQL - Økter settes i filen zabbix_agent2.conf.
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.
- 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.
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:
- Opprett en fil for å få en ny beregning:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Vi kobler sammen pakken og spesifiserer den unike nøkkelen (nøklene) til beregningene:
- Vi oppretter en behandler (behandler) med en forespørsel, dvs. vi starter en variabel som vil inneholde resultatet:
- Vi utfører forespørselen:
Det er nødvendig å sjekke forespørselen for feil, hvoretter resultatet vil bli plukket opp av Zabbix Agent 2-prosessen.
- Registrer den nye metriske nøkkelen:
Etter å ha registrert beregningen, kan du gjenoppbygge agenten med den nye metrikken.
Modulen er tilgjengelig fra og med Zabbix 5.0 på nettstedet
Takk for din oppmerksomhet!
Nyttige lenker
Kilde: www.habr.com