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

Las mejores herramientas de alerta y notificación para PostgreSQL

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:

Preferencias de notificación de Nagios XI

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

Métodos de notificación de Nagios XI

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:

Asistente de configuración de base de datos de Nagios XI

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:

Monitores de Nagios XI 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":

Consulta de Nagios XI 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:

Integraciones de Datadog

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":

Integración de Datadog PostgreSQL

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

Método de detección de Datadog

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

Configuración de métricas de Datador

Configure las condiciones para activar la alerta:

Activador de alerta de Datadog

Las notificaciones se pueden personalizar usando variables de plantilla:

Integración de Datadog Postgres

Finalmente proporcione una lista de destinatarios para recibir notificaciones:

Destinatarios de notificaciones de Datadog

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:

Métricas de integración de Datadog Postgres

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:

Activadores automáticos Okmeter

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

Okmeter:agregar un servidor

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:

Notificación de contacto de Okmeter

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

Plantilla de mensaje de notificación de Okmeter

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:

Configuración de comprobación de Circonus

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:

Comprobación de Circonus PostgreSQL

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

Detalles métricos de Circonus

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

Niveles de gravedad de los conjuntos de reglas de Circunus

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:

Grupos de contacto de Circonus

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:

Conjuntos de reglas de Circunus

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:

Nuevo complemento Relic PostgreSQL de Blue Medora

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

Configuración de alertas de New Relic

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:

Tipos de canales New Relic

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:

Integración de New Relic Slack

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

Política de alerta de nueva reliquia

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:

Nueva categoría de condición PostgreSQL de reliquia Entidad de condición de New Relic PostgreSQL Umbral de condición de New Relic PostgreSQL

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

Canales de notificación de New Relic PostgreSQL

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

Perspectivas de nuevas reliquias

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:

Métricas predefinidas de Postgres Enterprise Manager

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

Plantilla de alerta personalizada de Postgres Enterprise Manager

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.

Postgres Enterprise Manager Correo electrónico y alertas SNMP

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:

Métricas del tablero de pgwatch2

A continuación, configure la alerta:

Configuración de alertas del tablero de pgwatch2

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

Lista de alertas del tablero de pgwatch2

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

Integración de pgwatch2 Slack

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

Canales de notificación de pgwatch2

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:

Integraciones de ClusterControl

Para esta demostración, configuré Slack:

Integración de Slack de ClusterControl

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

Notificaciones de ClusterControl por correo electrónico

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

Asesores personalizados de ClusterControlDescargue el documento técnico hoy Administración y automatización de PostgreSQL con ClusterControlObtenga información sobre lo que necesita saber para implementar, monitorear, administrar y escalar PostgreSQLDescargar el Whitepaper

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.