Övervakning av PostgreSQL med Zabbix

Övervakning av PostgreSQL med Zabbix
Daria Vilkova's presentation for Zabbix Meetup Online

Jag vill introducera ett övervakningsverktyg för PostgreSQL och operativsystemet som utvecklas av vÄrt företag med hjÀlp av Zabbix.

Vi valde Zabbix som övervakningsverktyg för lÀnge sedan, eftersom det Àr en öppen kÀllkodsplattform som stöds av en aktiv gemenskap och Àr mycket populÀr i Ryssland.

Vi skapade en aktiv agent – Mamonsu, som möjliggjorde mer flexibel övervakning Ă€n vad standardverktygen vid den tiden tillĂ€t och möjliggjorde insamling av metrik och deras sĂ€ndning till Zabbix Server. I vĂ„rt företag anvĂ€nds Mamonsu vid genomförande av revisioner.

Mamonsu

Mamonsu Àr en aktiv agent (Zabbix Trapper) för övervakning av PostgreSQL och operativsystemet. Mamonsu (skrivet i Python) gör det möjligt att konfigurera övervakningsparametrar för PostgreSQL och operativsystemet pÄ fem minuter.

Mamonsu har ytterligare verktyg:

  • mamonsu tune – ett kommando som redigerar konfigurationsparametrar i PostgreSQL:s konfigurationsfil för den maskin som har Mamonsu-agenten installerad.
  • mamonsu report – ett kommando som skapar rapporter om operativsystemet och PostgreSQL.

Mamonsu installeras pÄ DB-servern, samlar information och sammanstÀller den i JSON som skickas för visualisering till Zabbix Server, dÀr det bör finnas en mall för dess metrik.

Övervakning av PostgreSQL med Zabbix

Arbetsmodellen för Mamonsu

Möjligheterna hos Mamonsu

  • Effektiv hantering av PostgreSQL. En konstant anslutning till PostgreSQL Ă€r Mamonsus frĂ€msta fördel. Det maximala antalet anslutningar Ă€r lika med det maximala antalet databaser som det ansluter till.
  • Utbyggbarhet. Mamonsu Ă€r en helt "plugin-baserad" agent, och tack vare den fasta strukturen för varje plugin och den relativa enkelheten i Python kan man enkelt lĂ€ra sig att skriva nya eller redigera standardplugins, dvs. insamlingsparameternas.
  • Brett urval av metrik för övervakning för PostgreSQL, inklusive metrik för specifika tillĂ€gg.
  • Snabb installation, tillgĂ€nglighet "ur lĂ„dan".
  • Export av mallar och konfigurationsfiler, samt uppladdning till Zabbix Server.
  • Korsplattformskompatibilitet, vilket Ă€r viktigt för vĂ„ra kunder som anvĂ€nder olika Linux-distributioner, inklusive inhemska.
  • BSD-klausullicens.

För nÀrvarande erbjuder vi mÄnga plugins och i varje ny version strÀvar vi efter att lÀgga till nÄgot nytt.

  • 14 plugins för PostgreSQL,
  • 8 plugins för OS Linux,
  • 4 plugins för OS Windows.

Mamonsu samlar in över 110 mÀtvÀrden för PostgreSQL och operativsystem:

  • 70 mĂ€tvĂ€rden för PostgreSQL,
  • 40 mĂ€tvĂ€rden för OS Linux,
  • 8 mĂ€tvĂ€rden för OS Windows.

De viktigaste mÀtvÀrdena inkluderar tillgÀnglighet för databashanteraren, antal anslutningar, storlek pÄ databasen, checkpoints, lÀs-/skrivhastigheter, lÄsningar, antal autovakuumprocesser och hastighet av WAL-generering. En fullstÀndig lista över tillgÀngliga mÀtvÀrden samt en detaljerad beskrivning av alla verktyg finns pÄ förrÄdet GitHub-sidan.

Övervakning av PostgreSQL med Zabbix

Listan över tillgÀngliga mÀtvÀrden finns pÄ GitHub

Starta Mamonsu pÄ 5 minuter

För att konfigurera övervakning av PostgreSQL och operativsystem med hjÀlp av Mamonsu kan det göras pÄ 5 minuter genom att följa 5 enkla steg.

  1. Installation av Mamonsu. Mamonsu kan byggas frÄn kÀllkod eller installeras med tillgÀngliga paket.

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

build && python setup.py install

  1. Konfigurera anslutningar. Du mÄste ange anslutningsparametrar för PostgreSQL och Zabbix Server i filen agent.conf.

/etc/mamonsu/agent.conf

  1. Exportera mall till Zabbix Server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. LÀgg till nÀtverksnod i Zabbix Server. Den exporterade mallen kommer automatiskt att kopplas till den nya nÀtverksnoden pÄ Zabbix Server.

$ mamonsu zabbix host create mamonsu-demo

  1. Launch.

$ service mamonsu start

Framtidsplaner för Mamonsu

Som en del av utvecklingen av Mamonsu planerar vi att förbÀttra mÀtvÀrdena och skapa nya plugins, som en plugin för övervakning av storleken pÄ specifika tabeller. Vi planerar ocksÄ att förbÀttra och skapa ytterligare verktyg samt utöka automatiseringsmöjligheterna genom kommandot mamonsu tune.

Övervakningsmodul för PostgreSQL i Zabbix Agent 2

För att ansluta till PostgreSQL anvÀnds en snabb och populÀr drivrutin pgx (PG-drivrutin och toolkit för Go).

För nÀrvarande anvÀnder vi tvÄ grÀnssnitt: Exporter, som anropar en handler med en nyckel, och Configurator Zabbix Agent 2, som lÀser och kontrollerar anslutningsparametrarna till servern som anges i konfigurationsfilen.

Vi har försökt optimera databashanterarens funktion genom att gruppera mÀtvÀrden och anvÀnda en handler för mÀtvÀrden och grupper av mÀtvÀrden, samt genom att anvÀnda grupper av mÀtvÀrden i JSON som beroende variabler (dependency items) och lÄgnivÄupptÀckning (discovery rules).

Huvudfunktioner

  • bevarande av en konstant anslutning till PostgreSQL mellan kontroller;
  • stöd för flexibla förfrĂ„gningsintervall;
  • kompatibilitet med PostgreSQL-versioner frĂ„n och med 10 och Zabbix Server frĂ„n version 4.4;
  • möjlighet att ansluta och övervaka flera PostgreSQL-instanser samtidigt tack vare att Zabbix Agent 2 tillĂ„ter skapandet av flera sessioner.

NivÄer för anslutningsparametrar till PostgreSQL

Det finns tre tillgÀngliga nivÄer av anslutningsparametrar till PostgreSQL, dvs. uppgifter och instÀllningar:

  • Global,
  • Sessioner,
  • Makron.

  1. Global-parametrar stÀlls in pÄ agentnivÄ, session- och makro-parametrar definierar anslutningsparametrar till databasen.

  2. Anslutningsparametrar till PostgreSQL — Sessioner stĂ€lls in i filen zabbix_agent2.conf.

Övervakning av PostgreSQL med Zabbix

Anslutningsparametrar till PostgreSQL — Sessioner

  • Efter nyckelordet Sessioner anges ett unikt sessionsnamn som mĂ„ste anges i nyckeln (mallen).
  • Parametrar URI och UserName Ă€r obligatoriska för varje session.
  • Om databasenamn inte anges anvĂ€nds ett gemensamt standarddatabasenamn för alla sessioner i PostgreSQL, vilket ocksĂ„ anges i konfigurationsfilen.

  1. Anslutningsparametrar till PostgreSQL — Makron stĂ€lls in i metriknyckeln i mallen (pĂ„ liknande sĂ€tt som i Zabbix Agent 1), dvs. skapas i mallen och anges sedan som parametrar i nyckeln. HĂ€r Ă€r sekvensen av makron fast, dvs. till exempel URI anges alltid först.

Övervakning av PostgreSQL med Zabbix

Anslutningsparametrar till PostgreSQL — Makron

PostgreSQL-övervakningsmodulen inkluderar redan över 95 metrik som tillÄter att fÄnga en ganska bred mÀngd PostgreSQL-parametrar, inklusive:

  • antal anslutningar,
  • databasens storlek,
  • arkivering av wal-filer,
  • kontrollpunkter,
  • antal "uppsvĂ€llda" tabeller,
  • replikationsstatus,
  • replikafördröjning.

PostgreSQL-metrik Àr inte informativa utan operativsystemets parametrar. Men Zabbix Agent 2 kan redan samla operativsystemets parametrar, sÄ för att fÄ en komplett bild ansluter vi bara de nödvÀndiga mallarna till nÀtverksnoden.

Handler

Handler — den grundlĂ€ggande enheten i modulen dĂ€r sjĂ€lva förfrĂ„gan utförs och som gör det möjligt att hĂ€mta metrik.

För att fÄ en enkel metrik:

  1. Skapa en fil för att fÄ en ny metrik:

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

  1. Anslut paketet och ange en unik nyckel (nycklar) för metrik:

Övervakning av PostgreSQL med Zabbix

  1. Skapa en handler med en förfrÄgan, dvs. initiera en variabel dÀr resultatet kommer att lagras:

Övervakning av PostgreSQL med Zabbix

  1. Utför förfrÄgan:

Övervakning av PostgreSQL med Zabbix

Det Àr nödvÀndigt att kontrollera förfrÄgan för fel, varefter resultatet kommer att fÄngas av Zabbix Agent 2-processen.

  1. Registrera nyckeln för den nya metriken:

Övervakning av PostgreSQL med Zabbix

Efter registreringen av mÀtvÀrden kan agenten Äteruppbyggas med det nya mÀtvÀrdet.

Modulen Àr tillgÀnglig frÄn Zabbix 5.0 pÄ webbplatsen https://www.zabbix.com/download. I denna version av Zabbix anges parametrarna separat via host och port. I version Zabbix 5.0.2, som snart kommer att slÀppas, kommer anslutningsparametrarna att kompileras i en enda URI.

Tack för uppmÀrksamheten!

Nyttiga lÀnkar

GitHub Mamonsu

Dokumentation om Mamonsu

Zabbix Git

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster