Monitorización de PostgreSQL usando Zabbix

Monitorización de PostgreSQL usando Zabbix
Informe de Daria Vilkova para Zabbix Meetup Online

Quero presentarvos a ferramenta de monitorización de PostgreSQL e do sistema operativo, que está a desenvolver a nosa empresa mediante Zabbix.

Eliximos Zabbix como a nosa ferramenta de vixilancia durante moito tempo porque é unha plataforma de código aberto apoiada por unha comunidade activa que é moi popular en Rusia.

Creamos un axente activo - Mamonsu, que proporcionaba un seguimento máis flexible do que permitían as ferramentas estándar daquela época, e garantiu a recollida de métricas e o seu envío a Zabbix Server. Na nosa empresa, Mamonsu úsase na auditoría.

Mamonsu

Mamonsu é un axente activo (Zabbix Trapper) para supervisar PostgreSQL e o sistema operativo. Mamonsu (escrito en Python) permítelle configurar PostgreSQL e os axustes de monitorización do sistema operativo en cinco minutos.

Mamonsu ten ferramentas adicionais:

  • mamonsu tune é un comando que edita a configuración no ficheiro de configuración de PostgreSQL para a máquina na que está instalado o axente Mamonsu.
  • mamonsu report é un comando que xera respostas sobre o sistema operativo e PostgreSQL.

Mamonsu está instalado no servidor DBMS, recolle información, compónoa en JSON, que a envía ao servidor Zabbix para a súa visualización, onde debería haber un modelo para as súas métricas.

Monitorización de PostgreSQL usando Zabbix

Plan de traballo de Mamonsu

Características Mamonsu

  • Traballo eficiente con PostgreSQL. Unha conexión persistente con PostgreSQL é a principal vantaxe de Mamonsu. Neste caso, o número máximo de conexións é igual ao número máximo de bases de datos ás que se conecta.
  • Ampliabilidade. Mamonsu é un axente totalmente "plugin" e, debido á estrutura fixa de cada complemento e á relativa sinxeleza de Python, pódese aprender facilmente a escribir novos ou editar complementos estándar, é dicir, os parámetros de recollida de métricas.
  • Amplia cobertura de métricas de seguimento para PotgreSQL, incluíndo métricas específicas de extensión.
  • lanzamento rápido, dispoñibilidade fóra da caixa.
  • Cargando modelos e ficheiros de configuración, así como cargar a Zabbix Server.
  • Multiplataforma, que é importante para os nosos clientes que usan varias distribucións de Linux, incluídas as domésticas.
  • Licenza de cláusula BSD.

De momento ofrecemos moitos complementos e en cada seguinte versión tentamos engadir algo novo.

  • 14 complementos para PostgreSQL,
  • 8 complementos para OS Linux,
  • 4 complementos para OS Windows.

Mamonsu recolle máis de 110 métricas de PostgreSQL e do sistema operativo:

  • 70 métricas de PostgreSQL,
  • 40 métricas de OS Linux,
  • 8 Métricas do sistema operativo Windows.

As métricas clave inclúen a dispoñibilidade de DBMS, o número de conexións, o tamaño da base de datos, os puntos de control, a velocidade de lectura/escritura, os bloqueos, o número de procesos de baleiro automático e a velocidade de xeración de WAL. Está dispoñible unha lista completa das métricas dispoñibles, así como unha descrición detallada de todas as ferramentas repositorios no sitio de GitHub.

Monitorización de PostgreSQL usando Zabbix

Lista de métricas dispoñibles en GitHub

Executa Mamonsu en 5 minutos

Para configurar a supervisión de PostgreSQL e do sistema operativo usando Mamonsu, pode facelo en 5 minutos seguindo 5 sinxelos pasos.

  1. Instalación de Mamonsu. Mamonsu pódese construír desde a fonte ou usar os paquetes dispoñibles.

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

build && python setup.py install

  1. Configuración da conexión. É necesario establecer os parámetros de conexión para PostgreSQL e Zabbix Server no ficheiro agent.conf.

/etc/mamonsu/agent.conf

  1. Exportar o modelo ao servidor Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Engadindo un host ao servidor Zabbix. O modelo exportado conectarase automaticamente ao novo servidor no servidor Zabbix.

$ mamonsu zabbix host create mamonsu-demo

  1. Lanzamento.

$ service mamonsu start

Orientacións de desenvolvemento de Mamonsu

Como parte do desenvolvemento de Mamonsu, pensamos refinar as métricas e crear novos complementos, como un complemento para supervisar o tamaño das táboas individuais. Tamén pensamos mellorar e crear ferramentas adicionais, así como ampliar as capacidades de axuste automático a través do comando melodía mamonsu.

Módulo de monitorización de PostgreSQL como parte de Zabbix Agent 2

Utilízase un controlador rápido e popular para conectarse a PostgreSQL px (Controlador PG e kit de ferramentas para Go).

Ata o momento, estamos a usar dúas interfaces: Exporter, que chama ao controlador por clave, e Configurator Zabbix Agent 2, que le e verifica os parámetros de conexión co servidor especificado no ficheiro de configuración.

Intentamos optimizar o traballo do DBMS agrupando métricas e usando un manejador (handler) para métricas e grupos de métricas, así como utilizando grupos de métricas en JSON como variables dependentes (elementos de dependencia) e descubrimento de baixo nivel (regras de descubrimento). ).

Características clave

  • manter unha conexión persistente con PostgreSQL entre comprobacións;
  • soporte para intervalos de votación flexibles;
  • compatibilidade con versións de PostgreSQL a partir da 10 e Zabbix Server a partir da versión 4.4;
  • a capacidade de conectar e supervisar varias instancias de PostgreSQL ao mesmo tempo debido ao feito de que Zabbix Agent 2 permítelle crear varias sesións.

Niveis de parámetros de conexión PostgreSQL

En total, están dispoñibles tres niveis de parámetros de conexión PostgreSQL, é dicir, tarefas e configuracións:

  • global,
  • Sesións,
  • macros.

  1. Os parámetros globais establécense a nivel de axente, os parámetros Sesión e Macros definen os parámetros de conexión á base de datos.

  2. Os parámetros de conexión a PostgreSQL: as sesións están definidas no ficheiro zabbix_agent2.conf.

Monitorización de PostgreSQL usando Zabbix

Opcións de conexión de PostgreSQL - Sesións

  • Despois da palabra clave Sesións especifícase un nome de sesión único, que debe especificarse na clave (modelo).
  • Parámetros URI и Nome de usuario necesario para cada sesión.
  • Se non se especifica o nome base, utilízase o nome base común predeterminado para todas as sesións de PostgreSQL, que tamén se establece no ficheiro de configuración.

  1. Os parámetros de conexión a PostgreSQL: as macros establécense na clave de métricas do modelo (semellante ao método empregado en Zabbix Agent 1), é dicir, créanse no modelo e despois especifícanse como parámetros na clave. Neste caso, a secuencia de macros é fixa, é dicir, por exemplo, URI sempre aparece primeiro.

Monitorización de PostgreSQL usando Zabbix

Parámetros de conexión PostgreSQL - Macros

O módulo de monitorización de PostgreSQL xa inclúe máis de 95 métricas que che permiten cubrir unha gama bastante ampla de parámetros de PostgreSQL, incluíndo:

  • número de conexións
  • tamaño da base de datos,
  • arquivando ficheiros wal,
  • puntos de control,
  • o número de táboas "inchadas",
  • estado de replicación,
  • atraso de réplica.

As métricas de PostgreSQL non son informativas sen os parámetros do sistema operativo. Pero Zabbix Agent 2 xa sabe como recoller os parámetros do sistema operativo, polo que para obter a imaxe completa, simplemente conectamos os modelos necesarios ao host.

Manexador

O manejador é a unidade principal do módulo na que se executa a propia solicitude e que permite recibir métricas.

Para obter unha métrica sinxela:

  1. Crea un ficheiro para obter unha nova métrica:

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

  1. Conectamos o paquete e especificamos a clave única (claves) das métricas:

Monitorización de PostgreSQL usando Zabbix

  1. Creamos un controlador (handler) cunha solicitude, é dicir, iniciamos unha variable que conterá o resultado:

Monitorización de PostgreSQL usando Zabbix

  1. Executamos a solicitude:

Monitorización de PostgreSQL usando Zabbix

É necesario comprobar a solicitude de erros, despois de que o proceso de Zabbix Agent 2 recollerá o resultado.

  1. Rexistra a nova clave métrica:

Monitorización de PostgreSQL usando Zabbix

Despois de rexistrar a métrica, pode reconstruír o axente coa nova métrica.

O módulo está dispoñible a partir de Zabbix 5.0 no sitio https://www.zabbix.com/download. Nesta versión de Zabbix, os parámetros establécense por separado a través do host e do porto. En Zabbix 5.0.2, que se lanzará en breve, os parámetros de conexión empaquetaranse nun único URI.

Спасибо за внимание!

Ligazóns útiles

GitHub Mamonsu

Documentación Mamonsu

Zabbix Git

Fonte: www.habr.com

Engadir un comentario