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:
Preferências de notificação do Nagios XI
Para configurar os tipos de notificações, vá para a página “Métodos de Notificação”:
Métodos de notificação do Nagios XI
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:
Assistente de configuração do banco de dados Nagios XI
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:
Monitores Nagios XI 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”:
Nagios XI 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:
Integrações do Datadog
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”:
Datadog PostgreSQL Integration
A primeira etapa na configuração do monitor é selecionar um tipo de alerta:
Método de detecção do Datadog
Em seguida, configure uma ou mais métricas:
Configuração de métricas do Datador
Configure as condições para acionar o alerta:
Acionador de alerta do Datadog
As notificações podem ser personalizadas usando variáveis de modelo:
Integração do Datadog Postgres
Por fim, forneça uma lista de destinatários para receber notificações:
Destinatários de notificação do Datadog
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:
Métricas de integração do Datadog Postgres
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:
Acionadores automáticos do Okmeter
Obter mais métricas do PostgreSQL requer a adição de um “servidor” do PostgreSQL:
Okmeter - Adicionando um servidor
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:
Notificação de contato do Okmeter
As mensagens de notificação podem ser personalizadas usando modelos:
Modelo de mensagem de notificação do Okmeter
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:
Circonus Verifique a configuração
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:
Verificação do Circonus PostgreSQL
Para configurar alertas, cada métrica está associada a um conjunto de regras e uma lista de contatos a serem notificados.
Detalhes da métrica do Circonus
Os alertas são categorizados com base nos níveis de gravidade:
Níveis de gravidade dos conjuntos de regras Circonus
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:
Grupos de contato Circonus
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:
Conjuntos de regras do Circonus
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:
Novo plugin Relic PostgreSQL da Blue Medora
Assim que o plugin estiver funcionando, ele ficará visível na página de plugins e estaremos prontos para configurar os alertas:
Configuração de alertas do New Relic
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:
Novos tipos de canais de relíquia
Observe que a integração deve ser habilitada primeiro no aplicativo de notificação. Por exemplo, selecionando Slack na lista de tipos de canais:
Nova integração com o Slack do Relic
Em seguida, crie uma “política de alerta”:
New Relic Alert Policy
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:
New Relic PostgreSQL Condition Category New Relic PostgreSQL Condition Entity New Relic PostgreSQL Condition Threshold
Por fim, selecione a guia de canais de notificação para modificar o padrão:
Novos canais de notificação do PostgreSQL do Relic
Opcionalmente, adicione a condição de alerta ao New Relic Insights (requer assinatura adicional):
New Relic Insights
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:
Métricas predefinidas do Postgres Enterprise Manager
Para modificar os alertas padrão ou criar alertas personalizados, use os modelos de alerta:
Modelo de alerta personalizado do Postgres Enterprise Manager
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.
E-mail e alerta SNMP do Postgres Enterprise Manager
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:
pgwatch2 Métricas do painel
Em seguida, configure o alerta:
pgwatch2 Configuração de alerta do painel
Uma vez configurados, os alertas aparecerão na página Lista de Alertas:
pgwatch2 Lista de alertas do painel
O pgwatch2 integra-se a todos os sistemas de notificação populares. Veja um exemplo de como adicionar um canal do Slack:
pgwatch2 Integração do Slack
Para visualizar os canais de notificação configurados no sistema, abra a página “Canais de notificação”:
pgwatch2 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:
Integrações do ClusterControl
Para esta demonstração, configurei o Slack:
ClusterControl Slack Integration
O ClusterControl também oferece a opção de notificação por e-mail:
Notificações do ClusterControl por e-mail
Depois que as notificações estiverem em vigor, crie consultores personalizados para acionar alertas com base em critérios específicos:
ClusterControl Custom AdvisorsBaixe o whitepaper hoje PostgreSQL Management &Automation with ClusterControlSaiba mais sobre o que você precisa saber para implantar, monitorar, gerencie e dimensione o PostgreSQLBaixe o whitepaper
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.