Iwwerwachung PostgreSQL mat Zabbix

Iwwerwachung PostgreSQL mat Zabbix
Bericht vum Daria Vilkova fir Zabbix Meetup Online

Ech géif Iech gären de PostgreSQL a Betribssystem Iwwerwaachungsinstrument virstellen, deen eis Firma mat Zabbix entwéckelt.

Mir hunn Zabbix als eist Iwwerwaachungsinstrument viru laanger Zäit gewielt well et eng Open Source Plattform ass, déi vun enger aktiver Gemeinschaft ënnerstëtzt gëtt, déi ganz populär a Russland ass.

Mir hunn en aktiven Agent erstallt - Mamonsu, dee méi flexibel Iwwerwaachung geliwwert huet wéi Standard Tools déi zu där Zäit erlaabt sinn, an d'Sammlung vu Metriken an hir Sendung op Zabbix Server gesuergt huet. An eiser Gesellschaft gëtt Mamonsu benotzt wann Dir Auditë mécht.

Mamonsu

Mamonsu ass en aktiven Agent (Zabbix Trapper) fir d'Iwwerwaachung vu PostgreSQL an de Betribssystem. Mamonsu (geschriwwe am Python) erlaabt Iech PostgreSQL a Betriebssystem Iwwerwaachungsastellungen a fënnef Minutten ze konfiguréieren.

Mamonsu huet zousätzlech Tools:

  • mamonsu Tune ass e Kommando deen Astellungen an der PostgreSQL Konfiguratiounsdatei fir d'Maschinn ännert, op där de Mamonsu Agent installéiert ass.
  • mamonsu Bericht ass e Kommando deen Äntwerten iwwer de Betribssystem a PostgreSQL generéiert.

Mamonsu gëtt um DBMS Server installéiert, sammelt Informatioun, kompiléiert se an JSON, deen fir Visualiséierung op Zabbix Server geschéckt gëtt, wou et e Schabloun fir seng Metriken soll sinn.

Iwwerwachung PostgreSQL mat Zabbix

Mamonsu Operatioun Schema

Mamonsu Fonctiounen

  • Schafft effektiv mat PostgreSQL. Eng persistent Verbindung mat PostgreSQL ass den Haaptvirdeel vu Mamonsu. An dësem Fall ass déi maximal Unzuel u Verbindungen d'selwecht wéi déi maximal Unzuel vun Datenbanken, mat deenen se verbënnt.
  • Ausbaubarkeet. Mamonsu ass e komplett Plug-In Agent, an dank der fixer Struktur vun all Plugin an der relativer Einfachheet vum Python, kënnt Dir ganz einfach léieren wéi Dir nei oder Standard Plugins ännert, dh Metrik Sammlung Parameteren.
  • Breet Ofdeckung vu Metriken fir Iwwerwaachung fir PotgreSQL, dorënner Metriken fir spezifesch Extensiounen.
  • Schnellstart, Disponibilitéit aus der Këscht.
  • Eroplueden Templates a Konfiguratiounsdateien, souwéi Eroplueden op Zabbix Server.
  • Plattform, wat wichteg ass fir eis Clienten déi verschidde Linux Verdeelungen benotzen, och Haushalter.
  • BSD-Klausel Lizenz.

Am Moment proposéiere mir vill Plugins an an all spéider Versioun probéieren mir eppes Neies derbäi ze ginn.

  • 14 Plugins fir PostgreSQL,
  • 8 Plugins fir OS Linux,
  • 4 Plugins fir OS Windows.

Mamonsu sammelt méi wéi 110 PostgreSQL a Betribssystem Metriken:

  • 70 PostgreSQL Metriken,
  • 40 OS Linux Metriken,
  • 8 OS Windows Metriken.

Schlëssel Metriken enthalen DBMS Disponibilitéit, Zuel vu Verbindungen, Datebankgréisst, Checkpoints, Lies- / Schreifgeschwindegkeet, Spären, Unzuel vun Autovakuumprozesser a WAL Generatiounsquote. Eng komplett Lëscht vun verfügbare Metriken, souwéi eng detailléiert Beschreiwung vun all Tools, ass verfügbar an Repositories op der GitHub Websäit.

Iwwerwachung PostgreSQL mat Zabbix

Lëscht vun verfügbare Metriken op GitHub

Start Mamonsu a 5 Minutten

Dir kënnt PostgreSQL a Betriebssystem Iwwerwachung mat Mamonsu a 5 Minutten opstellen andeems Dir 5 einfache Schrëtt verfollegt.

  1. Mamonsu installéieren. Mamonsu kann aus Quell gebaut ginn oder verfügbare Packagen benotzen.

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

build && python setup.py install

  1. Opstellung vun Verbindungen. Et ass néideg fir Verbindungsparameter fir PostgreSQL an Zabbix Server an der agent.conf Datei ze spezifizéieren.

/etc/mamonsu/agent.conf

  1. Export vun enger Schabloun op Zabbix Server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. En Host op den Zabbix Server addéieren. Déi exportéiert Schabloun gëtt automatesch mam neie Host um Zabbix Server verbonnen.

$ mamonsu zabbix host create mamonsu-demo

  1. Lancéiere.

$ service mamonsu start

Mamonsu Entwécklung Richtungen

Als Deel vun der Entwécklung vu Mamonsu plangen mir d'Metriken ze verfeineren an nei Plugins ze kreéieren, zum Beispill e Plugin fir d'Gréisst vun eenzel Dëscher ze iwwerwaachen. Mir plangen och zousätzlech Tools ze verbesseren an ze kreéieren, souwéi d'Autotuningfäegkeeten duerch de Kommando auszebauen mamonsu Melodie.

PostgreSQL Iwwerwaachungsmodul abegraff am Zabbix Agent 2

E séieren a populäre Chauffer gëtt benotzt fir mat PostgreSQL ze verbannen pgx (PG Chauffer an Toolkit fir Go).

Fir de Moment benotze mir zwee Interfaces: Exporter, deen den Handler mam Schlëssel nennt, an de Configurator Zabbix Agent 2, deen d'Serververbindungsparameter liest a kontrolléiert, déi an der Konfiguratiounsdatei spezifizéiert sinn.

Mir hu probéiert d'Performance vun der DBMS ze optimiséieren andeems mir Metriken gruppéieren an en Handler fir Metriken a metresch Gruppen benotzen, wéi och metresch Gruppen am JSON als ofhängeg Variablen (Ofhängegkeetsartikelen) a Low-Level Entdeckung (Entdeckungsregelen) benotzen.

Schlëssel Features

  • eng persistent Verbindung mat PostgreSQL tëscht Kontrollen erhalen;
  • Ënnerstëtzung fir flexibel Ëmfro-Intervalle;
  • kompatibel mat PostgreSQL Versiounen ab 10, an Zabbix Server ab Versioun 4.4;
  • d'Fäegkeet fir verschidde PostgreSQL Instanzen gläichzäiteg ze verbannen an ze iwwerwaachen wéinst der Tatsaach datt Zabbix Agent 2 Iech erlaabt verschidde Sessiounen ze kreéieren.

PostgreSQL Verbindungsparameterniveauen

Am Ganzen sinn dräi Niveaue vu Verbindungsparameter op PostgreSQL verfügbar, dh Aufgaben an Astellungen:

  • Global,
  • Sessiounen
  • Makroen.

  1. D'Global Parameteren ginn um Agentniveau gesat, d'Sessiouns- a Macros-Parameteren bestëmmen d'Verbindungsparameter fir d'Datebank.

  2. Verbindungsparameter op PostgreSQL - Sessiounen ginn an der Datei gesat zabbix_agent2.conf.

Iwwerwachung PostgreSQL mat Zabbix

PostgreSQL Verbindungsparameter - Sessiounen

  • Nom Schlësselwuert Sessiounen en eenzegaartegen Sessiounsnumm gëtt uginn, deen am Schlëssel (Schabloun) spezifizéiert muss ginn.
  • Parameteren URI и BenotzerName néideg fir all Sessioun.
  • Wann den Datebank Numm net spezifizéiert ass, gëtt de Standard gemeinsame Datebanknumm fir all PostgreSQL Sessiounen benotzt, wat och an der Konfiguratiounsdatei spezifizéiert ass.

  1. Verbindungsparameter op PostgreSQL - Makroen ginn am metresche Schlëssel an der Schabloun spezifizéiert (ähnlech wéi d'Method déi am Zabbix Agent 1 benotzt gëtt), dh si ginn an der Schabloun erstallt an dann als Parameter am Schlëssel spezifizéiert. An dësem Fall ass d'Sequenz vu Makroen fixéiert, d.h. z.B. URI ass ëmmer als éischt opgelëscht.

Iwwerwachung PostgreSQL mat Zabbix

PostgreSQL Verbindungsparameter - Macros

De PostgreSQL Iwwerwaachungsmodul enthält scho méi wéi 95 Metriken, déi Iech erlaben eng zimlech breet Palette vun PostgreSQL Parameteren ze decken, dorënner:

  • Zuel vu Verbindungen,
  • Volume vun Datenbanken,
  • archivéiert wal Dateien,
  • Kontroll Punkten,
  • Zuel vun "bloated" Dëscher,
  • Replikatiounsstatus,
  • replica lag.

PostgreSQL Metriken sinn net informativ ouni Betribssystemparameter. Awer Zabbix Agent 2 weess scho wéi d'Betriebssystemparameter sammelen, also fir e komplett Bild ze kréien, verbannen mir einfach déi néideg Templates mam Netzknuet.

Handler

Den Handler ass d'Haaptunitéit vum Modul an deem d'Ufro selwer ausgefouert gëtt an déi Iech erlaabt Metriken ze kréien.

Fir eng einfach Metrik ze kréien:

  1. Erstellt eng Datei fir eng nei Metrik ze kréien:

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

  1. Mir verbannen de Package a spezifizéieren déi eenzegaarteg Metrikeschlëssel (en):

Iwwerwachung PostgreSQL mat Zabbix

  1. Mir kreéieren en Handler mat der Ufro, dh mir initiéieren eng Variabel déi d'Resultat enthält:

Iwwerwachung PostgreSQL mat Zabbix

  1. Mir maachen d'Ufro aus:

Iwwerwachung PostgreSQL mat Zabbix

Et ass néideg d'Ufro fir Feeler ze kontrolléieren, duerno gëtt d'Resultat vum Zabbix Agent 2 Prozess opgeholl.

  1. Registréiert den neie metresche Schlëssel:

Iwwerwachung PostgreSQL mat Zabbix

Nodeems Dir d'Metrik registréiert hutt, kënnt Dir den Agent mat der neier Metrik nei opbauen.

De Modul ass verfügbar ab Zabbix 5.0 op der Websäit https://www.zabbix.com/download. An dëser Versioun vum Zabbix ginn d'Parameteren separat iwwer Host a Port agestallt. Am Zabbix 5.0.2, dee geschwënn verëffentlecht gëtt, ginn d'Verbindungsparameter an eng eenzeg URI kombinéiert.

Merci fir Är Opmierksamkeet!

Nëtzlech Adressen

GitHub Mamonsu

Mamonsu Dokumentatioun

Zabbix Git

Source: will.com

Setzt e Commentaire