El monitoreo y alerta de la base de datos es una parte particularmente importante de las operaciones de la base de datos, ya que debemos comprender el estado actual de la base de datos. Si no tiene un buen monitoreo de la base de datos, no podrá encontrar problemas en la base de datos rápidamente. Esto podría resultar en un tiempo de inactividad.
Una herramienta disponible para monitorear es pgDash, una aplicación SaaS para monitorear y alertar para la base de datos PostgreSQL.
Procedimiento de instalación de pgDash
El registro para pgDash se puede realizar a través del sitio web o también se puede descargar (alojamiento propio) según lo proporcionado por RapidLoop.
El proceso de instalación de pgDash es simple, solo necesitamos descargar el paquete necesario de pgDash para configurarlo en el lado del servidor del host/base de datos.
Puede ejecutar el proceso de la siguiente manera:
[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgmetrics/releases/download/v1.9.0/pgmetrics_1.9.0_linux_amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 647 100 647 0 0 965 0 --:--:-- --:--:-- --:--:-- 964
100 3576k 100 3576k 0 0 189k 0 0:00:18 0:00:18 --:--:-- 345k
[[email protected] ~]$ tar xvf pgmetrics_1.9.0_linux_amd64.tar.gz
pgmetrics_1.9.0_linux_amd64/LICENSE
pgmetrics_1.9.0_linux_amd64/README.md
pgmetrics_1.9.0_linux_amd64/pgmetrics
[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgdash/releases/download/v1.5.1/pgdash_1.5.1_linux_amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 644 100 644 0 0 1370 0 --:--:-- --:--:-- --:--:-- 1367
100 2314k 100 2314k 0 0 361k 0 0:00:06 0:00:06 --:--:-- 560k
[[email protected] ~]$ tar xvf pgdash_1.5.1_linux_amd64.tar.gz
pgdash_1.5.1_linux_amd64/LICENSE
pgdash_1.5.1_linux_amd64/README.md
pgdash_1.5.1_linux_amd64/pgdash
[[email protected] ~]$ ./pgmetrics_1.9.0_linux_amd64/pgmetrics --no-password -f json ccdb | ./pgdash_1.5.1_linux_amd64/pgdash -a NrxaHk3JH2ztLI06qQlA4o report myserver1
Además de pgDash, necesitará instalar otro paquete, pgmetrics, para monitorear. pgmetrics es una utilidad de código abierto cuyo trabajo es recopilar información y estadísticas en la base de datos que necesita pgDash, mientras que el trabajo de pgdash es enviar esa información al tablero.
Si desea agregar más bases de datos a la plataforma de monitoreo, necesitará para repetir el proceso anterior para cada base de datos.
Aunque la instalación de pgDash es simple, existen procesos repetitivos que pueden convertirse en una preocupación si hay bases de datos adicionales que necesitan ser monitoreadas. Lo más probable es que necesite crear un script de automatización para eso.
Métricas de pgDash
Hay 3 funciones principales en pgDash Dashboard, que son:
- Panel de control :consta de submenús como:Descripción general, Base de datos, Consultas, Backend, Bloqueos, Tablespace, Replicación, Archivos WAL, Escritores BG, Vacío, Roles, Configuración.
- Herramientas :consta de submenús, como Gestión de índices, Gestión de espacios de tablas, Diagnóstico y Top-K.
- Alertas :consta de submenús como Alertas y Alertas de cambio.
Supervisión de PostgreSQL por ClusterControl
El monitoreo realizado por ClusterControl utiliza el método ssh y la conexión directa desde el nodo del controlador al nodo de la base de datos de destino para recopilar la información necesaria para mostrarla en el tablero.
ClusterControl también tiene una función de supervisión basada en agentes que se puede activar fácilmente. Puedes verlo a continuación...
ClusterControl luego llevará a cabo el proceso de instalación de Prometheus, exportadores de nodos y PostgreSQL exportadores, en la base de datos específica que tiene como objetivo recopilar y recopilar la información requerida por el tablero para mostrar métricas.
Si el Monitoreo basado en agentes está activo, cualquier nueva base de datos de destino se agregará y monitoreará automáticamente mediante el Monitoreo basado en agentes.
Paneles de control de clúster
Aquí puede ver información en las pantallas Información general del clúster y Información del sistema de PostgreSQL. En esta función, puede ver información detallada, como la versión de la base de datos, el ID de la transacción, el último punto de control y la fecha y hora en que el servidor está activo. Esta información se muestra a continuación:
En la página Información del sistema, podemos obtener información como Carga promedio, Uso de memoria, uso de intercambio, vea la imagen a continuación:
- Base de datos :puede obtener información como el nombre de la base de datos, el tamaño de la base de datos, el número de tablas, el índice y también el espacio de tabla.
- Consultas :puede monitorear llamadas, escritura de disco, lectura de disco, golpe de búfer de las consultas. Además, puede buscar cualquier consulta que se ejecute dentro de un período de tiempo específico.
- Backend :puede monitorear el estado actual del backend de la base de datos, dentro de esta información, se proporcionan detalles críticos, como backends que esperan los bloqueos, otros backends que esperan, transacción abierta demasiado tiempo, backend inactivo en la transacción. También puede ver todos los backends que se ejecutan en la base de datos.
- Bloqueos :Puede consultar el número de bloqueos totales, bloqueos no concedidos y consultas bloqueadas.
- Tablespace :proporciona información relacionada con el tablespace, es decir. tamaño del espacio de tabla, uso de disco e inodos.
- Réplicas :puede monitorear su estado de replicación en la base de datos PostgreSQL, comenzando desde la ranura de replicación, la replicación entrante, la replicación saliente, las publicaciones de replicación y las suscripciones de replicación.
- Archivos Wal :proporciona información relacionada con WAL (registro de escritura anticipada) y también estadísticas, por ejemplo:recuentos de archivos WAL, tasa de generación de WAL, archivos WAL generados cada hora.
- Escritores de BG :proporciona información relacionada con la base de datos de puntos de control, el búfer escrito y los parámetros relacionados con el escritor de fondo.
- Progreso del vacío :contiene información relacionada con el Vacío que corre en la base de datos, también parámetros de vacío.
- Roles :contiene información relacionada con los roles que existen en la base de datos, incluidos los privilegios.
- Configuración :contiene parámetros en la base de datos PostgreSQL.
Dentro de Herramientas, hay submenús como Gestión de índices que proporcionan información, es decir. Índice no utilizado, índice de hinchazón, índice dan con índice de aciertos de caché bajo. Tablespace Management proporciona información relacionada con Tablespace y otros objetos disponibles en.
Diagnóstico, para comprender los problemas potenciales que pueden ocurrir a través de las 10 tablas más infladas, los 10 índices más inflados, la lista de ranuras de replicación inactivas, las 10 transacciones de mayor duración, etc.
ClusterControl tiene varias métricas en menús separados, que son Descripción general, Nodos, Tablero, Monitor de consultas y Rendimiento, vea la imagen a continuación:
Cuando la supervisión basada en agentes está habilitada, por lo tanto, toda la información relacionada con las estadísticas y otra información relacionada con la base de datos se almacenará en una base de datos de series temporales (prometheus). Puede ver esa información en ClusterControl como se muestra a continuación:
En el Monitor de consultas, puede encontrar Consultas principales, Consultas en ejecución, Consultas Menús de valores atípicos o estadísticas de consulta. Proporcionan información relacionada con la consulta en ejecución, la consulta principal y las estadísticas de la base de datos. También puede configurar consultas lentas y consultas sin indexación.
En Rendimiento, hay submenús como Crecimiento de base de datos que pueden mostrar información de estadísticas de tamaño de tabla y base de datos. Schema Analyzer proporciona información relacionada con el índice redundante y la tabla sin clave principal.
Alertas PostgreSQL
Hay dos partes de alertar...
- Reglas de alerta :las reglas de alerta juegan un papel importante, puede definir límites como parámetros que pueden activar la alarma para el DBA.
- Integración de terceros :es un canal de integración a la plataforma de gestión de incidentes para comunicación y colaboración como:PagerDuty, OpsGenie, Slack, o por correo electrónico.
PgDash tiene muchas opciones de parámetros de base de datos que puede establecer en relación con la regla de alerta, divididos en varias capas a partir de Servidor, Base de datos, Tabla, Índice, Tablespace y Consulta. Puede ver esa información en pgDash como se muestra a continuación...
En cuanto al canal de integración de terceros, pgDash admite varios canales como como Slack, Pagerduty, VictorOps, Xmatters, correo electrónico o creando sus propios webhooks para que puedan ser consumidos por otros servicios.
La siguiente es la apariencia de la Integración de terceros de pgDash:
A diferencia de pgDash, ClusterControl tiene una opción de alerta de eventos más amplia y general , comenzando con alertas relacionadas con el host, la red, el clúster y la propia base de datos. Los siguientes son ejemplos de opciones de eventos que se pueden seleccionar:
ClusterControl puede seleccionar varios clústeres de base de datos en una alerta de evento. La integración de terceros de ClusterControl es compatible con varias herramientas de comunicación/colaboración y administración de incidentes, como PagerDuty, VictorOps, Telegram, OpsGenie, Slack, ServiceNow, o puede crear su propio webhook.
En la sección de reglas de alerta, tanto pgDash como ClusterControl tienen ventajas y desventajas. La ventaja de pgDash es que puede configurar alertas de base de datos muy detalladas relacionadas con lo que se enviará, mientras que el inconveniente es que debe realizar esta configuración en cada base de datos (aunque hay una función para importar desde otras configuraciones de base de datos).
ClusterControl carece de alertas de eventos detalladas, solo eventos generales de la base de datos, pero ClusterControl puede enviar alertas no solo relacionadas con la base de datos, sino que también puede enviar alertas de eventos desde nodos, clústeres, redes, etc. Además de eso, puede configurar estas alertas para varios clústeres de bases de datos.
En la sección Integración de terceros, pgDash y ClusterControl tienen soporte para varios canales de comunicación y gestión de incidentes de terceros. De hecho, ambos pueden crear su propio webhook para que pueda ser consumido por otros servicios (por ejemplo, Grafana).