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

Monitorando o PostgreSQL em um ambiente híbrido

Hybrid Cloud é um conceito recente que vem sendo aprimorado há alguns anos, e agora é uma topologia comum em qualquer empresa para um Plano de Recuperação de Desastres (DRP), ou mesmo para ter redundância em seus sistemas.

Depois de ter seu ambiente de nuvem híbrida funcionando, você precisará saber o que está acontecendo o tempo todo. O monitoramento é uma obrigação se você quiser ter certeza de que tudo está indo bem ou se precisar mudar alguma coisa. Para cada tecnologia de banco de dados, há várias coisas a serem monitoradas. Alguns deles são específicos do mecanismo de banco de dados, fornecedor ou até mesmo da versão específica que você está usando.

Neste blog, veremos o que você precisa monitorar em um banco de dados PostgreSQL executado em um ambiente de nuvem híbrida e como o ClusterControl pode ajudá-lo nessa tarefa.

O que monitorar no PostgreSQL

Ao monitorar um cluster ou nó 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 (que é comum a todos os mecanismos de banco de dados e até mesmo a todos os sistemas) é 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/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 pelo 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

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

Em geral, os bancos de dados são configurados com compatibilidade e estabilidade em mente por padrão, 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.

Sessões ativas

Você também deve monitorar o número de sessões ativas. Se estiver perto do limite, você precisa verificar se algo está errado ou se você só precisa incrementar o valor máximo de conexão na configuração do banco de dados. A diferença no número pode ser um aumento ou diminuição de conexões. O mau uso do pool de conexões, bloqueio ou problemas 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, será necessário 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.

Status da 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.

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.

Registros do banco de dados

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

Notificações e alertas

Apenas monitorar um sistema não é suficiente 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. Esse trabalho de alerta pode ser feito usando alertas de e-mail, alertas de texto ou outras ferramentas como o Slack.

É 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.

Um ponto importante aqui é que o ClusterControl funciona na nuvem, no local ou até mesmo em uma combinação de ambos. O requisito aqui é ter acesso SSH aos nós e, em seguida, o ClusterControl cuidará deles.

Monitorando seu banco de dados PostgreSQL com ClusterControl

ClusterControl é um sistema de gerenciamento e monitoramento que ajuda a implantar, gerenciar, monitorar e dimensionar seus bancos de dados a partir de uma interface amigável. Ele tem suporte para as principais tecnologias de banco de dados de código aberto e você pode automatizar muitas das tarefas de banco de dados que precisa executar regularmente, como adicionar e dimensionar novos nós, executar backups e restaurações e muito mais.

ClusterControl permite monitorar seus servidores em tempo real com um conjunto predefinido de painéis para analisar algumas das métricas mais comuns.


Permite customizar os gráficos disponíveis no cluster e habilitar o monitoramento baseado em agente para gerar dashboards mais detalhados.


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


Na seção do monitor de consultas, você pode encontrar as principais consultas, as consultas em execução, as consultas atípicas e as estatísticas das consultas para monitorar o tráfego do banco de dados.


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

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, para que você possa ter certeza de que o backup está funcionando.

Finalmente, você não precisa acessar o nó do seu banco de dados para verificar os logs, você pode encontrar todos os logs do seu banco de dados centralizados na seção Log do ClusterControl.


Como você pode ver, você pode lidar com todas as coisas mencionadas no mesmo sistema centralizado:ClusterControl.

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 ou monitorar seu cluster de banco de dados.

Lista de cluster


Lista de nós


Você pode executar todas as tarefas (e ainda mais) disponíveis na UI do ClusterControl e pode integrar esse recurso com algumas ferramentas externas como o slack, para gerenciá-lo a partir daí.


Conclusão


Como você pode ver, o monitoramento é absolutamente necessário, não importa se está rodando on-prem, na nuvem ou mesmo em um mix deles, e a melhor forma de fazer isso depende da infraestrutura e do próprio sistema. Neste blog, mencionamos algumas métricas importantes para monitorar em seu ambiente PostgreSQL, como usar o ClusterControl para fazer o trabalho.