sql >> Base de Datos >  >> RDS >> PostgreSQL

Supervisión de la distribución de Percona para PostgreSQL - Métricas clave

El monitoreo es la base para saber si sus sistemas están funcionando correctamente y le permite solucionar o prevenir cualquier problema antes de que afecte su negocio. Incluso en una tecnología robusta como PostgreSQL, el monitoreo es imprescindible y el objetivo principal es saber qué monitorear, de lo contrario, no tendría sentido o no sería útil en caso de que necesite usarlo. En este blog, veremos qué es Percona Distribution para PostgreSQL y qué métricas clave monitorear en él.

Distribución Percona para PostgreSQL

Es una colección de herramientas para ayudarlo a administrar su sistema de base de datos PostgreSQL. Instala PostgreSQL y lo complementa con una selección de extensiones que permiten resolver tareas prácticas esenciales de manera eficiente, incluyendo:

  • pg_repack :Reconstruye los objetos de la base de datos PostgreSQL.
  • pgaudit :proporciona un registro detallado de auditoría de objetos o sesiones a través de la función de registro estándar de PostgreSQL.
  • pgBackRest :Es una solución de copia de seguridad y restauración para PostgreSQL.
  • Patronos :Es una solución de Alta Disponibilidad para PostgreSQL.
  • pg_stat_monitor :recopila y agrega estadísticas para PostgreSQL y proporciona información de histograma.
  • Una colección de extensiones adicionales de contribución de PostgreSQL.

La distribución de Percona para PostgreSQL también se envía con la biblioteca libpq. Contiene un conjunto de funciones de biblioteca que permiten a los programas cliente pasar consultas al servidor backend de PostgreSQL y recibir los resultados de estas consultas.

Qué monitorear en la distribución de Percona para PostgreSQL

Al monitorear un clúster de base de datos, hay dos cosas principales a tener en cuenta:el sistema operativo y la base de datos en sí. Deberá definir qué métricas va a monitorear desde ambos lados y cómo lo va a hacer.

Recuerde que cuando una de sus métricas se ve afectada, también puede afectar a otras, lo que hace que la solución del problema sea más compleja. Tener un buen sistema de monitoreo y alertas es importante para que esta tarea sea lo más simple posible.

Supervisión del sistema operativo

Una cosa importante es monitorear el comportamiento del Sistema Operativo. Veamos algunos puntos para comprobar aquí.

Uso de CPU

Un porcentaje excesivo de uso de CPU podría ser un problema si no es el comportamiento habitual. En este caso, es importante identificar los procesos que están generando este problema. Si el problema es el proceso de la base de datos, deberá verificar qué sucede dentro de la base de datos.

Uso de memoria RAM o SWAP

Si ve un valor alto para esta métrica y nada ha cambiado en su sistema, probablemente necesite verificar la configuración de su base de datos. Parámetros como shared_buffers y work_mem pueden afectar esto directamente ya que definen la cantidad de memoria que se puede usar para la base de datos PostgreSQL.

Uso de disco

Un aumento anormal en el uso del espacio en disco o un consumo excesivo de acceso al disco son cosas importantes que se deben monitorear, ya que podría tener una gran cantidad de errores registrados en el archivo de registro de PostgreSQL o una mala configuración de caché que podría generar un importante consumo de acceso a disco en lugar de usar memoria para procesar las consultas.

Promedio de carga

Está relacionado con los tres puntos mencionados anteriormente. Un uso excesivo de CPU, RAM o disco podría generar un promedio de carga alto.

Red

Un problema de red puede afectar a todos los sistemas ya que la aplicación no puede conectarse (o conectar paquetes perdidos) a la base de datos, por lo que esta es una métrica importante para monitorear. Puede monitorear la latencia o la pérdida de paquetes, y el problema principal podría ser una saturación de la red, un problema de hardware o simplemente una mala configuración de la red.

Monitoreo de base de datos PostgreSQL

Supervisar su base de datos PostgreSQL no solo es importante para ver si tiene algún problema, sino también para saber si necesita cambiar algo para mejorar el rendimiento de su base de datos, que es probablemente una de las cosas más importantes monitorear en una base de datos. Veamos algunas métricas que son importantes para esto.

Supervisión de consultas

Por defecto, PostgreSQL está configurado teniendo en cuenta la compatibilidad y la estabilidad, por lo que debe conocer sus consultas y su patrón, y configurar sus bases de datos según el tráfico que tenga. Aquí, puede usar el comando EXPLAIN para verificar el plan de consulta para una consulta específica, y también puede monitorear la cantidad de SELECCIONAR, INSERTAR, ACTUALIZAR o ELIMINAR en cada nodo. Si tiene una consulta larga o una gran cantidad de consultas ejecutándose al mismo tiempo, eso podría ser un problema para todos los sistemas.

Supervisión de sesiones activas

También debe controlar el número de sesiones activas. Si está cerca del límite, debe verificar si algo está mal o si solo necesita incrementar el valor de max_connections. La diferencia en el número puede ser un aumento o disminución de conexiones. El mal uso de la agrupación de conexiones, el bloqueo o un problema de red son los problemas más comunes relacionados con la cantidad de conexiones.

Bloqueos de base de datos

Si tiene una consulta en espera de otra consulta, debe verificar si esa otra consulta es un proceso normal o algo nuevo. En algunos casos, si alguien está haciendo una actualización en una tabla grande, por ejemplo, esta acción puede estar afectando el comportamiento normal de su base de datos, generando una gran cantidad de bloqueos.

Supervisión de la replicación

Las métricas clave para monitorear la replicación son el retraso y el estado de la replicación. Los problemas más comunes son problemas de red, problemas de recursos de hardware o problemas de subdimensionamiento. Si se enfrenta a un problema de replicación, deberá saberlo lo antes posible, ya que deberá solucionarlo para garantizar un entorno de alta disponibilidad.

Supervisión de copias de seguridad

Evitar la pérdida de datos es una de las tareas básicas de DBA, por lo que no solo necesita realizar la copia de seguridad, debe saber si la copia de seguridad se completó y si se puede utilizar. Por lo general, este último punto no se tiene en cuenta, pero probablemente sea la comprobación más importante en un proceso de copia de seguridad.

Supervisión de registros de la base de datos

Debe monitorear el registro de su base de datos en busca de errores como FATAL o interbloqueo, o incluso errores comunes como problemas de autenticación o consultas de ejecución prolongada. La mayoría de los errores se escriben en el archivo de registro con información detallada y útil para solucionarlo.

Paneles

La visibilidad es útil para la detección rápida de problemas. Definitivamente es una tarea que consume más tiempo leer la salida de un comando que solo mirar un gráfico. Entonces, el uso de un tablero podría ser la diferencia entre detectar un problema ahora o en los próximos 15 minutos, seguro que ese tiempo puede ser realmente importante para la empresa.

Alertas

Solo monitorear un sistema no tiene sentido si no recibe una notificación sobre cada problema. Sin un sistema de alertas, debes ir a la herramienta de monitoreo para ver si todo está bien, y es posible que tengas un gran problema desde hace muchas horas.

Monitoreo de su base de datos PostgreSQL con ClusterControl

Es realmente difícil encontrar una herramienta para monitorear todas las métricas necesarias para PostgreSQL, en general, necesitará usar más de una e incluso será necesario realizar algunos scripts. Una forma de centralizar la tarea de monitoreo y alerta es usar ClusterControl, que le brinda funciones como administración de respaldo, monitoreo y alerta, implementación y escalado, recuperación automática y funciones más importantes para ayudarlo a administrar sus bases de datos. Todas estas características en el mismo sistema.

ClusterControl tiene un conjunto de paneles predefinidos para usted, para analizar algunas de las métricas más comunes.

Te permite personalizar las gráficas disponibles en el clúster, y puedes habilite la supervisión basada en agentes para generar paneles más detallados.

También puede crear alertas que le informen sobre eventos en su clúster, o integrar con diferentes servicios como PagerDuty o Slack.

Además, puede consultar la sección del monitor de consultas, donde puede encontrar el las consultas principales, las consultas en ejecución, los valores atípicos de las consultas y las estadísticas de las consultas.

Con estas características, puede ver cómo va su base de datos PostgreSQL.

Para la administración de copias de seguridad, ClusterControl lo centraliza para proteger, proteger y recuperar sus datos, y con la función de copia de seguridad de verificación, puede confirmar si la copia de seguridad está lista para funcionar.

Este trabajo de copia de seguridad de verificación restaurará la copia de seguridad en un host independiente separado, por lo que puede asegurarse de que la copia de seguridad esté funcionando.

Supervisión con la línea de comandos de ClusterControl

Para secuencias de comandos y tareas de automatización, o incluso si prefiere la línea de comandos, ClusterControl tiene la herramienta s9s. Es una herramienta de línea de comandos para administrar su clúster de base de datos.

Lista de grupos

Lista de nodos

Conclusión

El monitoreo es absolutamente necesario, y la mejor manera de hacerlo depende de la infraestructura y el sistema en sí. En este blog, le presentamos Percona Distribution para PostgreSQL y mencionamos algunas métricas importantes para monitorear en su entorno de PostgreSQL. También le mostramos cómo ClusterControl es útil para esta tarea.