Monitorització de PostgreSQL mitjançant Zabbix

Monitorització de PostgreSQL mitjançant Zabbix
Informe de Daria Vilkova per a Zabbix Meetup Online

Vull presentar-vos l'eina de monitorització del sistema operatiu i PostgreSQL, que està desenvolupant la nostra empresa amb Zabbix.

Hem escollit Zabbix com a eina de monitorització des de fa molt de temps perquè és una plataforma de codi obert amb el suport d'una comunitat activa que és molt popular a Rússia.

Vam crear un agent actiu: Mamonsu, que proporcionava un seguiment més flexible del que permetien les eines estàndard en aquell moment, i assegurava la recollida de mètriques i el seu enviament al servidor Zabbix. A la nostra empresa, Mamonsu s'utilitza en l'auditoria.

Mamonsu

Mamonsu és un agent actiu (Zabbix Trapper) per supervisar PostgreSQL i el sistema operatiu. Mamonsu (escrit en Python) us permet configurar PostgreSQL i la configuració de monitorització del sistema operatiu en cinc minuts.

Mamonsu té eines addicionals:

  • mamonsu tune és una ordre que edita la configuració del fitxer de configuració de PostgreSQL per a la màquina en què està instal·lat l'agent Mamonsu.
  • mamonsu report és una ordre que genera respostes sobre el sistema operatiu i PostgreSQL.

Mamonsu s'instal·la al servidor DBMS, recull informació, la redacta en JSON, que l'envia a Zabbix Server per a la seva visualització, on hi hauria d'haver una plantilla per a les seves mètriques.

Monitorització de PostgreSQL mitjançant Zabbix

Pla de treball de Mamonsu

Característiques Mamonsu

  • Treball eficient amb PostgreSQL. Una connexió persistent a PostgreSQL és el principal avantatge de Mamonsu. En aquest cas, el nombre màxim de connexions és igual al nombre màxim de bases de dades a les quals es connecta.
  • Expandabilitat. Mamonsu és un agent completament "connector" i, a causa de l'estructura fixa de cada connector i la relativa simplicitat de Python, es pot aprendre fàcilment a escriure connectors nous o editar-los estàndard, és a dir, paràmetres de recollida de mètriques.
  • Àmplia cobertura de mètriques de seguiment per a PotgreSQL, incloent mètriques específiques de l'extensió.
  • llançament ràpid, disponibilitat fora de la caixa.
  • Càrrega de plantilles i fitxers de configuració, així com la càrrega al servidor Zabbix.
  • Multiplataforma, que és important per als nostres clients que utilitzen diverses distribucions de Linux, incloses les domèstiques.
  • Llicència de la clàusula BSD.

De moment oferim molts complements i en cada versió següent intentem afegir alguna cosa nova.

  • 14 connectors per a PostgreSQL,
  • 8 connectors per al sistema operatiu Linux,
  • 4 connectors per al sistema operatiu Windows.

Mamonsu recull més de 110 mètriques PostgreSQL i del sistema operatiu:

  • 70 mètriques PostgreSQL,
  • 40 mètriques del sistema operatiu Linux,
  • 8 mètriques del sistema operatiu Windows.

Les mètriques clau inclouen la disponibilitat de SGBD, el nombre de connexions, la mida de la base de dades, els punts de control, la velocitat de lectura/escriptura, els bloquejos, el nombre de processos de buit automàtic i la velocitat de generació de WAL. Hi ha disponible una llista completa de mètriques disponibles, així com una descripció detallada de totes les eines repositoris al lloc de GitHub.

Monitorització de PostgreSQL mitjançant Zabbix

Llista de mètriques disponibles a GitHub

Executeu Mamonsu en 5 minuts

Per configurar la supervisió de PostgreSQL i el sistema operatiu amb Mamonsu, podeu fer-ho en 5 minuts seguint 5 senzills passos.

  1. Instal·lació de Mamonsu. Mamonsu es pot construir des de la font o utilitzar els paquets disponibles.

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

build && python setup.py install

  1. Configuració de la connexió. Cal establir els paràmetres de connexió per a PostgreSQL i Zabbix Server al fitxer agent.conf.

/etc/mamonsu/agent.conf

  1. Exporta la plantilla al servidor Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Afegeix un amfitrió al servidor Zabbix. La plantilla exportada es connectarà automàticament al nou amfitrió del servidor Zabbix.

$ mamonsu zabbix host create mamonsu-demo

  1. Запуск.

$ service mamonsu start

Direccions de desenvolupament de Mamonsu

Com a part del desenvolupament de Mamonsu, tenim previst perfeccionar les mètriques i crear nous connectors, com ara un connector per controlar la mida de les taules individuals. També tenim previst millorar i crear eines addicionals, així com ampliar les capacitats d'ajust automàtic mitjançant l'ordre melodia mamonsu.

Mòdul de supervisió PostgreSQL com a part de Zabbix Agent 2

S'utilitza un controlador ràpid i popular per connectar-se a PostgreSQL pgx (controlador de PG i conjunt d'eines per a Go).

Fins ara, estem utilitzant dues interfícies: Exporter, que crida al controlador per clau, i Configurator Zabbix Agent 2, que llegeix i verifica els paràmetres de connexió amb el servidor especificat al fitxer de configuració.

Hem intentat optimitzar el treball del SGBD agrupant mètriques i utilitzant un controlador (handler) per a mètriques i grups de mètriques, així com utilitzant grups de mètriques en JSON com a variables dependents (elements de dependència) i descobriment de baix nivell (regles de descobriment). ).

Característiques clau

  • mantenir una connexió persistent a PostgreSQL entre comprovacions;
  • suport per a intervals de votació flexibles;
  • compatibilitat amb les versions de PostgreSQL a partir de la 10 i Zabbix Server a partir de la versió 4.4;
  • la capacitat de connectar i supervisar múltiples instàncies de PostgreSQL alhora, a causa del fet que Zabbix Agent 2 us permet crear diverses sessions.

Nivells de paràmetres de connexió PostgreSQL

En total, hi ha disponibles tres nivells de paràmetres de connexió PostgreSQL, és a dir, tasques i configuracions:

  • global,
  • sessió,
  • macros.

  1. Els paràmetres globals s'estableixen a nivell d'agent, els paràmetres Sessió i Macros defineixen els paràmetres de connexió de la base de dades.

  2. Els paràmetres de connexió a PostgreSQL - Les sessions s'estableixen al fitxer zabbix_agent2.conf.

Monitorització de PostgreSQL mitjançant Zabbix

Opcions de connexió PostgreSQL - Sessions

  • Després de la paraula clau Sessions s'especifica un nom de sessió únic, que s'ha d'especificar a la clau (plantilla).
  • Paràmetres URI и Nom d'usuari necessària per a cada sessió.
  • Si no s'especifica el nom base, s'utilitza el nom base comú per defecte per a totes les sessions de PostgreSQL, que també s'estableix al fitxer de configuració.

  1. Els paràmetres de connexió a PostgreSQL - Les macros s'estableixen a la clau mètrica de la plantilla (similar al mètode utilitzat a l'Agent Zabbix 1), és a dir, es creen a la plantilla i després s'especifiquen com a paràmetres a la clau. En aquest cas, la seqüència de macros és fixa, és a dir, per exemple, URI sempre apareix en primer lloc.

Monitorització de PostgreSQL mitjançant Zabbix

Paràmetres de connexió PostgreSQL - Macros

El mòdul de monitorització de PostgreSQL ja inclou més de 95 mètriques que us permeten cobrir un ventall bastant ampli de paràmetres de PostgreSQL, com ara:

  • nombre de connexions
  • mida de la base de dades,
  • arxivar fitxers wal,
  • punts de control,
  • el nombre de taules "inflades",
  • estat de replicació,
  • retard de rèplica.

Les mètriques de PostgreSQL no són informatives sense els paràmetres del sistema operatiu. Però Zabbix Agent 2 ja sap com recollir els paràmetres del sistema operatiu, així que per obtenir la imatge completa, simplement connectem les plantilles necessàries a l'amfitrió.

Manipulador

El gestor és la unitat principal del mòdul en què s'executa la sol·licitud en si i que permet rebre mètriques.

Per obtenir una mètrica senzilla:

  1. Creeu un fitxer per obtenir una mètrica nova:

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

  1. Connectem el paquet i especifiquem la clau única (claus) de les mètriques:

Monitorització de PostgreSQL mitjançant Zabbix

  1. Creem un controlador (handler) amb una sol·licitud, és a dir, iniciem una variable que contindrà el resultat:

Monitorització de PostgreSQL mitjançant Zabbix

  1. Executem la sol·licitud:

Monitorització de PostgreSQL mitjançant Zabbix

Cal comprovar la sol·licitud d'errors, després de la qual cosa el procés Zabbix Agent 2 recollirà el resultat.

  1. Registreu la nova clau de mètrica:

Monitorització de PostgreSQL mitjançant Zabbix

Després de registrar la mètrica, podeu reconstruir l'agent amb la nova mètrica.

El mòdul està disponible a partir de Zabbix 5.0 al lloc https://www.zabbix.com/download. En aquesta versió de Zabbix, els paràmetres s'estableixen per separat mitjançant l'amfitrió i el port. A Zabbix 5.0.2, que es publicarà aviat, els paràmetres de connexió s'empaquetaran en un únic URI.

Gràcies!

links útils

GitHub Mamonsu

Documentació Mamonsu

Zabbix Git

Font: www.habr.com

Afegeix comentari