Como parte de seu sistema de monitoramento corporativo, as organizações contam com alertas e notificações como sua primeira linha de defesa para obter alta disponibilidade e, consequentemente, reduzir os custos de interrupção.
Alertas e notificações às vezes são usados de forma intercambiável, por exemplo, podemos dizer "Recebi um alerta do sistema de carga alta" e substituir "alerta" por "notificação" não alterará o significado da mensagem. No entanto, no mundo dos sistemas de gestão é importante notar a diferença:os alertas são eventos gerados como resultado de um problema no sistema e as notificações são usadas para fornecer informações sobre o status do sistema, incluindo o problema. Como exemplo, o blog do Variousnines Introducing the ClusterControl Alerting Integrations discute um dos recursos de integração do ClusterControl, o sistema de notificação que é capaz de enviar alertas por e-mail, serviços de bate-papo e sistemas de gerenciamento de incidentes. Veja também PostgreSQL Wiki — Alertas e notificações de status.
Para monitorar com precisão a atividade do banco de dados PostgreSQL, um sistema de gerenciamento depende das métricas de atividade do banco de dados, recursos personalizados ou orientadores de monitor e arquivos de log de monitoramento.
Neste artigo, reviso as ferramentas listadas no Wiki do PostgreSQL, nas seções Monitoring e PostgreSQL GUI, pulando aquelas que não são mantidas ativamente ou que não fornecem alertas e notificações no produto ou com uma conta de avaliação gratuita. Embora não seja uma revisão exaustiva, cada ferramenta foi instalada e configurada até o ponto em que pude entender seus recursos de alerta e notificação.
Nagios
O Nagios é um popular sistema de monitoramento local e de uso geral que oferece uma ampla variedade de plug-ins. Embora o Nagios Core seja de código aberto, a solução recomendada para monitorar o PostgreSQL é o Nagios XI.
As configurações de notificação são por usuário e, para alterá-las, o administrador deve "fazer login como" o usuário — o Nagios usa o termo mascarar como . Uma vez na página de configuração da conta, o usuário pode optar por ativar ou desativar os métodos de notificação:

Para configurar os tipos de notificações, vá para a página “Métodos de Notificação”:

Consulte o Guia do usuário do Nagios XI para obter mais detalhes.
Para configurar alertas, efetue login como administrador e selecione o assistente de configuração do banco de dados:

Uma vez configurados, os alertas podem ser visualizados selecionando qualquer uma das visualizações padrão, painéis ou podemos configurar um personalizado. Fora da caixa, o Nagios XI fornece os seguintes monitores PostgreSQL:

Observe que o Nagios XI não fornece nenhuma métrica baseada no PostgreSQL Statistics Collector, em vez disso, cada métrica deve ser definida usando o assistente de configuração “Postgres Query”:

Cão de dados
O Datadog é uma ferramenta de monitoramento SaaS de uso geral que apresenta um conjunto muito grande de integrações com uma variedade de serviços. Para iniciar o monitoramento, selecione a integração do PostgreSQL e, em seguida, escolha as integrações de notificações, como e-mail, chat (por exemplo, Slack) ou sistemas de resposta a incidentes, como o PagerDuty:

Para receber notificações pelos canais de integração configurados anteriormente, precisamos criar pelo menos um monitor Datadog, no caso do PostgreSQL monitorando um monitor do tipo “integração”:

A primeira etapa na configuração do monitor é selecionar um tipo de alerta:

Em seguida, configure uma ou mais métricas:

Configure as condições para acionar o alerta:

As notificações podem ser personalizadas usando variáveis de modelo:

Por fim, forneça uma lista de destinatários para receber notificações:

Os eventos que o Datadog pode monitorar estão listados na seção “Métricas” de integração do PostgreSQL e são baseados nas visualizações predefinidas do Coletor de Estatísticas do PostgreSQL:

Para monitorar eventos não fornecidos com a integração padrão, o Datadog oferece aos clientes a opção de criar métricas personalizadas limitadas ao plano Datadog.
Okmeter
O Okmeter também faz parte da família de monitoramento de uso geral SaaS e, assim como outras ferramentas SaaS, requer um agente no host monitorado. Depois que o agente é instalado, um conjunto de acionadores de eventos padrão é habilitado, incluindo uma verificação de conexão do PostgreSQL:

Obter mais métricas do PostgreSQL requer a adição de um “servidor” do PostgreSQL:

Para monitorar as estatísticas do PostgreSQL, de forma semelhante ao Nagios e Datadog, devemos configurar as métricas personalizadas conforme explicado na Documentação do Okmeter — Envio de métricas personalizadas. Ou edite a métrica “PostgreSQL server” acima para incluir visualizações na função “okmeter.pg_stats”.
A página de documentação de estatísticas de consulta do Okmeter explica como habilitar o rastreamento de estatísticas de execução para as instruções SQL. Observe que existem algumas limitações no uso das visualizações “pg_stat_statements”, por exemplo. número máximo de instruções distintas que podem ser gravadas por um módulo — veja a documentação do PostgreSQL em pg_stat_statements para detalhes.
A página de contatos de notificação é onde as notificações são configuradas para cada usuário:

As mensagens de notificação podem ser personalizadas usando modelos:

Circonus
Circonus, outro produto de monitoramento geral SaaS, apresenta uma “verificação” do PostgreSQL que pode ser habilitada individualmente ou adicionada como parte da instalação em uma etapa:

De acordo com a documentação do Circonus PostgreSQL, a verificação é realizada de um local remoto por meio de instruções SQL diretas. Após configurar o host PostgreSQL para aceitar conexões de um broker Circonus, o assistente apresentará uma lista de métricas disponíveis:

Para configurar alertas, cada métrica está associada a um conjunto de regras e uma lista de contatos a serem notificados.

Os alertas são categorizados com base nos níveis de gravidade:

Os canais de notificação incluem SMS, OpsGenie, Slack, VictorOps e PagerDuty (sem e-mail). A captura de tela abaixo mostra uma integração do Slack:

Para configurar notificações, cada métrica na verificação deve ter regras e contatos atribuídos. Observe que os contatos devem ser criados antes de editar a métrica:

Nova Relíquia
New Relic é outro sistema de monitoramento geral SaaS. Quando se trata de PostgreSQL, existem (no momento da redação deste artigo) três plugins disponíveis. O mais recente é o plugin Blue Medora:

Assim que o plugin estiver funcionando, ele ficará visível na página de plugins e estaremos prontos para configurar os alertas:

A New Relic usa o conceito de políticas de alerta para agrupar alertas em incidentes. Antes de configurar uma política devemos configurar os canais de notificações. Pronto para uso, o New Relic se integra a todos os sistemas populares de resposta a incidentes, além de e-mail:

Observe que a integração deve ser habilitada primeiro no aplicativo de notificação. Por exemplo, selecionando Slack na lista de tipos de canais:

Em seguida, crie uma “política de alerta”:

Uma política de alerta requer uma “condição de alerta”. O próximo conjunto de capturas de tela mostra as etapas para conseguir exatamente isso:



Por fim, selecione a guia de canais de notificação para modificar o padrão:

Opcionalmente, adicione a condição de alerta ao New Relic Insights (requer assinatura adicional):

Postgres Enterprise Manager
PEM ou Postgres Enterprise Manager é uma ferramenta para gerenciar, ajustar e monitorar o PostgreSQL.
Ele vem com um conjunto muito rico de métricas predefinidas:

Para modificar os alertas padrão ou criar alertas personalizados, use os modelos de alerta:

O PEM depende de e-mail e SNMP para notificações, para que possa se integrar facilmente a sistemas de monitoramento como o Nagios, mas não há integrações com os sistemas populares de gerenciamento de incidentes (PagerDuty, VictorOps, OpsGenie) ou serviços de bate-papo (Slack) encontrados em os outros produtos.

pgwatch2
O pgwatch2 é outra ferramenta de monitoramento centrada no PostgreSQL, solução auto-hospedada.
Para definir alertas, devemos primeiro criar um painel personalizado e definir a métrica:

Em seguida, configure o alerta:

Uma vez configurados, os alertas aparecerão na página Lista de Alertas:

O pgwatch2 integra-se a todos os sistemas de notificação populares. Veja um exemplo de como adicionar um canal do Slack:

Para visualizar os canais de notificação configurados no sistema, abra a página “Canais de notificação”:

Métricas adicionais podem ser adicionadas conforme documentado na seção Recursos do pgwatch2.
Controle de cluster
ClusterControl é um sistema de gerenciamento orientado a banco de dados local com suporte para PostgreSQL, MySQL, MariaDB e MongoDB.
O primeiro passo é adicionar uma integração de notificação. Mais informações sobre as integrações disponíveis estão disponíveis em Apresentando as integrações de alerta do ClusterControl:

Para esta demonstração, configurei o Slack:

O ClusterControl também oferece a opção de notificação por e-mail:

Depois que as notificações estiverem em vigor, crie consultores personalizados para acionar alertas com base em critérios específicos:

Conclusão
O artigo não pretendia ser um mergulho profundo na funcionalidade de cada ferramenta, mas tentei delinear o que considero os recursos importantes relacionados a alertas e notificações para o PostgreSQL, especificamente.
Uma das lições aprendidas é que o processo de seleção deve levar em consideração vários fatores:
- no local ou SaaS
- verificação remota ou baseada em agente
- integração com sistemas de gerenciamento de incidentes e serviços de bate-papo
- disponibilidade de métricas monitoradas, prontas para uso e plug-ins
- capacidade de adicionar métricas personalizadas
- recursos de gerenciamento de alertas (por exemplo, agrupamento)
- complexidade x granularidade na interface do usuário
- funcionalidade adicional (gerenciamento, ajuste, API etc.)
Além disso, se uma solução não atender a todos os requisitos comerciais e/ou técnicos, sempre é possível usar uma combinação de serviços.