Como parte de su sistema de monitoreo empresarial, las organizaciones confían en las alertas y notificaciones como su primera línea de defensa para lograr una alta disponibilidad y, en consecuencia, reducir los costos de interrupción.
Las alertas y las notificaciones a veces se usan indistintamente, por ejemplo, podemos decir "Recibí una alerta del sistema de carga alta", y reemplazar "alerta" con "notificación" no cambiará el significado del mensaje. Sin embargo, en el mundo de los sistemas de gestión es importante notar la diferencia:las alertas son eventos generados como resultado de un problema del sistema y las notificaciones se utilizan para brindar información sobre el estado del sistema, incluido el problema. Como ejemplo, el blog de Variousnines Introducing the ClusterControl Alerting Integrations analiza una de las funciones de integración de ClusterControl, el sistema de notificación que puede enviar alertas por correo electrónico, servicios de chat y sistemas de gestión de incidentes. Consulte también Wiki de PostgreSQL:alertas y notificaciones de estado.
Para monitorear con precisión la actividad de la base de datos de PostgreSQL, un sistema de administración se basa en las métricas de actividad de la base de datos, las funciones personalizadas o los asesores de monitoreo y los archivos de registro de monitoreo.
En este artículo, reviso las herramientas enumeradas en PostgreSQL Wiki, las secciones Supervisión y GUI de PostgreSQL, omitiendo aquellas que no se mantienen activamente o que no brindan alertas y notificaciones dentro del producto o con una cuenta de prueba gratuita. Si bien no es una revisión exhaustiva, cada herramienta se instaló y configuró hasta el punto en que pude comprender sus capacidades de alerta y notificación.
Nagios
Nagios es un popular sistema de monitoreo de propósito general en las instalaciones que ofrece una amplia gama de complementos. Si bien Nagios Core es de código abierto, la solución recomendada para monitorear PostgreSQL es Nagios XI.
La configuración de notificaciones es por usuario, y para cambiarla, el administrador debe "iniciar sesión como" el usuario:Nagios usa el término enmascararse como . Una vez en la página de configuración de la cuenta, el usuario puede optar por habilitar o deshabilitar los métodos de notificación:

Para configurar los tipos de notificaciones, diríjase a la página "Métodos de notificación":

Consulte la Guía del usuario de Nagios XI para obtener más detalles.
Para configurar alertas, inicie sesión como administrador y seleccione el asistente de configuración de la base de datos:

Una vez configuradas, las alertas se pueden ver seleccionando cualquiera de las vistas predeterminadas, paneles o podemos configurar uno personalizado. Fuera de la caja, Nagios XI proporciona los siguientes monitores de PostgreSQL:

Tenga en cuenta que, de fábrica, Nagios XI no proporciona ninguna métrica basada en el Recopilador de estadísticas de PostgreSQL, sino que cada métrica debe definirse mediante el asistente de configuración "Consulta de Postgres":

Perro de datos
Datadog es una herramienta de monitoreo SaaS de propósito general que presenta un conjunto muy grande de integraciones con una variedad de servicios. Para comenzar a monitorear, seleccione la integración de PostgreSQL y luego elija las integraciones de notificaciones como correo electrónico, chat (por ejemplo, Slack) o sistemas de respuesta a incidentes como PagerDuty:

Para recibir notificaciones a través de los canales de integración configurados anteriormente, necesitamos crear al menos un monitor de Datadog, en el caso de monitoreo de PostgreSQL, un tipo de monitor de "integración":

El primer paso para configurar el monitor es seleccionar un tipo de alerta:

A continuación, configure una o más métricas:

Configure las condiciones para activar la alerta:

Las notificaciones se pueden personalizar usando variables de plantilla:

Finalmente proporcione una lista de destinatarios para recibir notificaciones:

Los eventos que Datadog puede monitorear se enumeran en la sección "Métricas" de integración de PostgreSQL y se basan en las vistas predefinidas del recopilador de estadísticas de PostgreSQL:

Para monitorear eventos que no se proporcionan con la integración predeterminada, Datadog ofrece a los clientes la opción de crear métricas personalizadas limitadas al plan de Datadog.
Okmetro
Okmeter también es parte de la familia de monitoreo de propósito general SaaS y, al igual que otras herramientas SaaS, requiere un agente en el host monitoreado. Una vez que se instala el agente, se habilita un conjunto de activadores de eventos predeterminados, incluida una verificación de conexión de PostgreSQL:

Obtener más métricas de PostgreSQL requiere agregar un "servidor" de PostgreSQL:

Para monitorear las estadísticas de PostgreSQL, de manera similar a Nagios y Datadog, debemos configurar métricas personalizadas como se explica en la Documentación de Okmeter:Envío de métricas personalizadas. O edite la métrica "Servidor PostgreSQL" anterior para incluir vistas en la función "okmeter.pg_stats".
La página de documentación de estadísticas de consultas de Okmeter explica cómo habilitar el seguimiento de las estadísticas de ejecución para las declaraciones SQL. Tenga en cuenta que existen algunas limitaciones en el uso de las vistas "pg_stat_statements", p. número máximo de declaraciones distintas que un módulo puede registrar; consulte la documentación de PostgreSQL en pg_stat_statements para obtener más detalles.
La página de contactos de notificación es donde se configuran las notificaciones para cada usuario:

Los mensajes de notificación se pueden personalizar aún más usando plantillas:

Circón
Circonus, otro producto de monitoreo general de SaaS, presenta una "verificación" de PostgreSQL que se puede habilitar individualmente o agregar como parte de la instalación de un solo paso:

De acuerdo con la documentación de Circonus PostgreSQL, la verificación se realiza desde una ubicación remota a través de instrucciones SQL directas. Después de configurar el host de PostgreSQL para aceptar conexiones de un intermediario de Circonus, el asistente presentará una lista de métricas disponibles:

Para configurar alertas, cada métrica está asociada a un conjunto de reglas y una lista de contactos a notificar.

Las alertas se clasifican según los niveles de gravedad:

Los canales de notificación incluyen SMS, OpsGenie, Slack, VictorOps y PagerDuty (sin correo electrónico). La siguiente captura de pantalla muestra una integración de Slack:

Para configurar notificaciones, cada métrica en el cheque debe tener reglas y contactos asignados. Tenga en cuenta que los contactos deben crearse antes de editar la métrica:

Nueva reliquia
New Relic es otro sistema de monitoreo general SaaS. Cuando se trata de PostgreSQL, hay (a partir de este escrito) tres complementos disponibles. El más reciente es el complemento Blue Medora:

Una vez que el complemento está funcionando, se vuelve visible en la página de complementos y estamos listos para configurar alertas:

New Relic utiliza el concepto de políticas de alerta para agrupar alertas en incidentes. Antes de configurar una política debemos configurar los canales de notificaciones. Listo para usar, New Relic se integra con todos los sistemas populares de respuesta a incidentes, así como con el correo electrónico:

Tenga en cuenta que la integración debe habilitarse primero en la aplicación de notificación. Por ejemplo, seleccionando Slack de la lista de tipos de canales:

A continuación, cree una "política de alerta":

Una política de alerta requiere una "condición de alerta". El siguiente conjunto de capturas de pantalla muestra los pasos para lograr precisamente eso:



Finalmente, seleccione la pestaña de canales de notificación para modificar el valor predeterminado:

Opcionalmente, agregue la condición de alerta a New Relic Insights (requiere suscripción adicional):

Administrador empresarial de Postgres
PEM o Postgres Enterprise Manager es una herramienta para administrar, ajustar y monitorear PostgreSQL.
Viene con un conjunto muy rico de métricas predefinidas:

Para modificar las alertas predeterminadas o crear alertas personalizadas, utilice las plantillas de alerta:

PEM se basa en el correo electrónico y SNMP para las notificaciones, por lo que puede integrarse fácilmente con sistemas de monitoreo como Nagios, pero no hay integraciones con los populares sistemas de gestión de incidentes (PagerDuty, VictorOps, OpsGenie) o servicios de chat (Slack) que se encuentran en los demás productos.

pgwatch2
pgwatch2 es otra herramienta de monitoreo centrada en PostgreSQL, solución autohospedada.
Para definir alertas, primero debemos crear un tablero personalizado y definir la métrica:

A continuación, configure la alerta:

Una vez configuradas, las alertas aparecerán en la página Lista de alertas:

pgwatch2 se integra con todos los sistemas de notificación populares. Este es un ejemplo de cómo agregar un canal de Slack:

Para ver los canales de notificación configurados en el sistema, abra la página "Canales de notificación":

Se pueden agregar métricas adicionales como se documenta en la sección Características de pgwatch2.
Control de clúster
ClusterControl es un sistema de administración orientado a la base de datos local con soporte para PostgreSQL, MySQL, MariaDB y MongoDB.
El primer paso es agregar una integración de notificaciones. Hay más información disponible sobre las integraciones disponibles en Introducción a las integraciones de alertas de ClusterControl:

Para esta demostración, configuré Slack:

ClusterControl también ofrece la opción de avisar vía email:

Una vez que las notificaciones estén en su lugar, cree asesores personalizados para activar alertas basadas en criterios específicos:

Conclusión
El artículo no pretendía ser una inmersión profunda en la funcionalidad de cada herramienta, sino que intenté describir lo que consideré que eran las características importantes relacionadas con las alertas y notificaciones para PostgreSQL, específicamente.
Una de las lecciones aprendidas es que el proceso de selección debe considerar varios factores:
- en las instalaciones o SaaS
- comprobación remota o basada en agentes
- integración con sistemas de gestión de incidentes y servicios de chat
- disponibilidad de métricas monitoreadas, listas para usar y complementos
- capacidad de agregar métricas personalizadas
- características de gestión de alertas (por ejemplo, agrupación)
- complejidad frente a granularidad en la interfaz de usuario
- funcionalidad adicional (administración, optimización, API, etc.)
Además, si una solución no cumple con todos los requisitos comerciales o técnicos, siempre es posible utilizar una combinación de servicios.