PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Monitorando a Distribuição Percona para PostgreSQL - Principais Métricas

O monitoramento é a base para saber se seus sistemas estão funcionando corretamente e permite corrigir ou prevenir qualquer problema antes de afetar seus negócios. Mesmo em uma tecnologia robusta como o PostgreSQL, o monitoramento é imprescindível, e o objetivo principal é saber o que monitorar, caso contrário, não faria sentido ou não seria útil caso você precise usá-lo. Neste blog, veremos o que é a Distribuição Percona para PostgreSQL e quais as principais métricas a serem monitoradas nela.

Distribuição Percona para PostgreSQL

É uma coleção de ferramentas para ajudá-lo a gerenciar seu sistema de banco de dados PostgreSQL. Ele instala o PostgreSQL e o complementa com uma seleção de extensões que permitem resolver tarefas práticas essenciais com eficiência, incluindo:

  • pg_repack :reconstrói objetos de banco de dados PostgreSQL.
  • pgaudit :fornece registro detalhado de auditoria de sessão ou objeto por meio do recurso de registro padrão do PostgreSQL.
  • pgBackRest :É uma solução de backup e restauração para PostgreSQL.
  • Patronos :É uma solução de alta disponibilidade para PostgreSQL.
  • pg_stat_monitor :ele coleta e agrega estatísticas para PostgreSQL e fornece informações de histograma.
  • Uma coleção de extensões adicionais de contribuição do PostgreSQL.

A Distribuição Percona para PostgreSQL também é fornecida com a biblioteca libpq. Ele contém um conjunto de funções de biblioteca que permitem que programas clientes passem consultas para o servidor de backend PostgreSQL e recebam os resultados dessas consultas.

O que monitorar na distribuição Percona para PostgreSQL

Ao monitorar um cluster de banco de dados, há duas coisas principais a serem consideradas:o sistema operacional e o próprio banco de dados. Você precisará definir quais métricas você vai monitorar de ambos os lados e como você vai fazer isso.

Lembre-se de que quando uma de suas métricas é afetada, ela também pode afetar outras, tornando a solução do problema mais complexa. Ter um bom sistema de monitoramento e alerta é importante para tornar essa tarefa o mais simples possível.

Monitoramento do Sistema Operacional

Uma coisa importante é monitorar o comportamento do sistema operacional. Vejamos alguns pontos para verificar aqui.

Uso da CPU

Uma porcentagem excessiva de uso da CPU pode ser um problema se não for um comportamento normal. Nesse caso, é importante identificar os processos que estão gerando esse problema. Se o problema for o processo do banco de dados, você precisará verificar o que está acontecendo dentro do banco de dados.

Memória RAM ou uso SWAP

Se você estiver vendo um valor alto para essa métrica e nada mudou em seu sistema, provavelmente precisará verificar a configuração do banco de dados. Parâmetros como shared_buffers e work_mem podem afetar isso diretamente, pois definem a quantidade de memória a ser usada para o banco de dados PostgreSQL.

Uso do disco

Um aumento anormal no uso de espaço em disco ou um consumo excessivo de acesso ao disco são coisas importantes a serem monitoradas, pois você pode ter um grande número de erros registrados no arquivo de log do PostgreSQL ou uma configuração de cache incorreta que pode gerar um consumo importante de acesso ao disco em vez de usar memória para processar as consultas.

Média de carga

Está relacionado aos três pontos mencionados acima. Uma média de carga alta pode ser gerada por um uso excessivo de CPU, RAM ou disco.

Rede

Um problema de rede pode afetar todos os sistemas, pois o aplicativo não pode se conectar (ou conectar pacotes perdidos) ao banco de dados, portanto, essa é uma métrica importante para monitorar. Você pode monitorar a latência ou a perda de pacotes, e o principal problema pode ser uma saturação de rede, um problema de hardware ou apenas uma configuração de rede ruim.

Monitoramento de banco de dados PostgreSQL

Monitorar seu banco de dados PostgreSQL não é importante apenas para ver se você está tendo algum problema, mas também para saber se você precisa alterar algo para melhorar o desempenho do seu banco de dados, provavelmente essa é uma das coisas mais importantes para monitorar em um banco de dados. Vejamos algumas métricas que são importantes para isso.

Monitoramento de consultas

Por padrão, o PostgreSQL é configurado com compatibilidade e estabilidade em mente, então você precisa conhecer suas consultas e seu padrão, e configurar seus bancos de dados dependendo do tráfego que você possui. Aqui, você pode usar o comando EXPLAIN para verificar o plano de consulta para uma consulta específica e também pode monitorar a quantidade de SELECT, INSERT, UPDATE ou DELETE em cada nó. Se você tiver uma consulta longa ou um grande número de consultas em execução ao mesmo tempo, isso pode ser um problema para todos os sistemas.

Monitorando sessões ativas

Você também deve monitorar o número de sessões ativas. Se você estiver perto do limite, você precisa verificar se algo está errado ou se você só precisa incrementar o valor max_connections. A diferença no número pode ser um aumento ou diminuição de conexões. O mau uso do pool de conexões, o bloqueio ou um problema de rede são os problemas mais comuns relacionados ao número de conexões.

Bloqueios de banco de dados

Se você tiver uma consulta aguardando outra consulta, você precisa verificar se essa outra consulta é um processo normal ou algo novo. Em alguns casos, se alguém estiver fazendo uma atualização em uma tabela grande, por exemplo, essa ação pode estar afetando o comportamento normal do seu banco de dados, gerando um grande número de bloqueios.

Monitorando a replicação

As principais métricas para monitorar a replicação são o atraso e o estado da replicação. Os problemas mais comuns são problemas de rede, problemas de recursos de hardware ou problemas de dimensionamento. Se você estiver enfrentando um problema de replicação, precisará saber disso o mais rápido possível, pois precisará corrigi-lo para garantir o ambiente de alta disponibilidade.

Monitorando backups

Evitar a perda de dados é uma das tarefas básicas do DBA, portanto, você não precisa apenas fazer o backup, mas também saber se o backup foi concluído e se pode ser usado. Normalmente, este último ponto não é levado em consideração, mas é provavelmente a verificação mais importante em um processo de backup.

Monitorando os logs do banco de dados

Você deve monitorar o log do banco de dados em busca de erros como FATAL ou deadlock, ou até mesmo erros comuns como problemas de autenticação ou consultas de longa duração. A maioria dos erros é gravada no arquivo de log com informações úteis detalhadas para corrigi-lo.

Painéis

A visibilidade é útil para detecção rápida de problemas. É definitivamente uma tarefa mais demorada ler uma saída de comando do que apenas assistir a um gráfico. Assim, o uso de um dashboard pode ser a diferença entre detectar um problema agora ou nos próximos 15 minutos, com certeza esse tempo pode ser muito importante para a empresa.

Alertando

Apenas monitorar um sistema não faz sentido se você não receber uma notificação sobre cada problema. Sem um sistema de alerta, você deve acessar a ferramenta de monitoramento para ver se está tudo bem, e é possível que você esteja tendo um grande problema há muitas horas.

Monitorando seu banco de dados PostgreSQL com ClusterControl

É realmente difícil encontrar uma ferramenta para monitorar todas as métricas necessárias para o PostgreSQL, em geral, você precisará usar mais de uma e até mesmo alguns scripts precisarão ser feitos. Uma maneira de centralizar a tarefa de monitoramento e alerta é usando o ClusterControl, que fornece recursos como gerenciamento de backup, monitoramento e alerta, implantação e dimensionamento, recuperação automática e recursos mais importantes para ajudá-lo a gerenciar seus bancos de dados. Todos esses recursos no mesmo sistema.

O ClusterControl tem um conjunto predefinido de painéis para você analisar algumas das métricas mais comuns.

Permite personalizar os gráficos disponíveis no cluster, e você pode permitir que o monitoramento baseado em agente gere painéis mais detalhados.

Você também pode criar alertas, que informam sobre eventos em seu cluster, ou integrar com diferentes serviços, como PagerDuty ou Slack.

Além disso, você pode verificar a seção do monitor de consulta, onde você pode encontrar o principais consultas, as consultas em execução, as consultas atípicas e as estatísticas das consultas.

Com esses recursos, você pode ver como seu banco de dados PostgreSQL está indo.

Para gerenciamento de backup, o ClusterControl o centraliza para proteger, proteger e recuperar seus dados e, com o recurso de backup de verificação, você pode confirmar se o backup está pronto.

Esta tarefa de backup de verificação restaurará o backup em um host independente separado, portanto você pode ter certeza de que o backup está funcionando.

Monitoramento com a linha de comando ClusterControl

Para scripts e automatização de tarefas, ou mesmo se você preferir apenas a linha de comando, o ClusterControl possui a ferramenta s9s. É uma ferramenta de linha de comando para gerenciar seu cluster de banco de dados.

Lista de cluster

Lista de nós

Conclusão


O monitoramento é absolutamente necessário, e a melhor forma de fazê-lo depende da infraestrutura e do próprio sistema. Neste blog, apresentamos o Percona Distribution para PostgreSQL e mencionamos algumas métricas importantes para monitorar em seu ambiente PostgreSQL. Também mostramos como o ClusterControl é útil para essa tarefa.