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

Monitoreo de PostgreSQL en un entorno híbrido

Hybrid Cloud es un concepto reciente que se ha incrementado desde hace algunos años, y ahora es una topología común en cualquier empresa para un Plan de Recuperación de Desastres (DRP), o incluso para tener redundancia en sus sistemas.

Una vez que tenga su entorno de nube híbrida en funcionamiento, necesitará saber lo que sucede todo el tiempo. La supervisión es imprescindible si quiere asegurarse de que todo va bien o si necesita cambiar algo. Para cada tecnología de base de datos, hay varias cosas que monitorear. Algunos de estos son específicos del motor de la base de datos, el proveedor o incluso la versión específica que está utilizando.

En este blog, veremos lo que necesita monitorear en una base de datos PostgreSQL que se ejecuta en un entorno de nube híbrida y cómo ClusterControl puede ayudarlo en esta tarea.

Qué monitorear en PostgreSQL

Al monitorear un clúster o nodo 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

Algo importante (que es común a todos los motores de bases de datos e incluso a todos los sistemas) 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 el proceso/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. Se podría generar un promedio de carga alto debido al uso excesivo de CPU, RAM o disco.

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.

Supervisión de la base de datos

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

En general, las bases de datos están configuradas teniendo en cuenta la compatibilidad y la estabilidad de forma predeterminada, 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.

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 máximo de conexión en la configuración de la base de datos. 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 los problemas 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.

Estado de 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.

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.

Registros de la base de datos

Debe monitorear el registro de su base de datos en busca de errores, problemas de autenticación o incluso 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 corregirlos.

Notificaciones y alertas

Solo monitorear un sistema no es suficiente si no recibe una notificación sobre cada problema. Sin un sistema de alertas, debe ir a la herramienta de monitoreo para ver si todo está bien, y es posible que tenga un gran problema desde hace muchas horas. Este trabajo de alerta podría realizarse mediante el uso de alertas por correo electrónico, alertas de texto u otras herramientas como Slack.

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 mediante el uso de ClusterControl, que le brinda funciones como administración de copias de seguridad, monitoreo y alertas, 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.

Un punto importante aquí es que ClusterControl funciona en la nube, en las instalaciones o incluso en una combinación de ambos. El requisito aquí es tener acceso SSH a los nodos y, luego, ClusterControl se encargará de ellos.

Monitoreo de su base de datos PostgreSQL con ClusterControl

ClusterControl es un sistema de administración y monitoreo que ayuda a implementar, administrar, monitorear y escalar sus bases de datos desde una interfaz amigable. Es compatible con las principales tecnologías de base de datos de código abierto y puede automatizar muchas de las tareas de la base de datos que debe realizar regularmente, como agregar y escalar nuevos nodos, ejecutar copias de seguridad y restauraciones, y más.

ClusterControl le permite monitorear sus servidores en tiempo real con un conjunto predefinido de paneles para analizar algunas de las métricas más comunes.

Le permite personalizar los gráficos disponibles en el clúster y puede habilitar el monitoreo basado en agentes para generar paneles más detallados.

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

En la sección del monitor de consultas, puede encontrar las consultas principales, las consultas en ejecución, los valores atípicos de las consultas y las estadísticas de las consultas para monitorear el tráfico de su base de datos.

Con estas funciones, 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, para que pueda asegurarse de que la copia de seguridad funciona.

Finalmente, no necesita acceder a su nodo de base de datos para verificar los registros, puede encontrar todos los registros de su base de datos centralizados en la sección Registro de ClusterControl.

Como puede ver, puede manejar todas las cosas mencionadas desde el mismo sistema centralizado:ClusterControl.

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 o monitorear su clúster de base de datos.

Lista de grupos

Lista de nodos

Puede realizar todas las tareas (e incluso más) disponibles en la interfaz de usuario de ClusterControl, y puede integrar esta función con algunas herramientas externas como Slack, para administrarla desde allí.

Conclusión

Como puede ver, el monitoreo es absolutamente necesario, sin importar si se ejecuta en las instalaciones, en la nube o incluso en una combinación de ellos, y la mejor manera de hacerlo depende de la infraestructura y el sistema en sí. En este blog, mencionamos algunas métricas importantes para monitorear en su entorno PostgreSQL, cómo usar ClusterControl para hacer el trabajo.