O Moodle é um Sistema de Gerenciamento de Aprendizagem (LMS) projetado para fornecer a educadores, administradores e alunos um único sistema robusto, seguro e integrado para criar ambientes de aprendizado personalizados. Ele suporta diferentes tecnologias de banco de dados (por exemplo, MariaDB, MySQL, PostgreSQL, etc).
Devido ao COVID-19, trabalhar e estudar em casa aumentou exponencialmente recentemente, por isso a disponibilidade e o desempenho desse tipo de plataforma de aprendizado estão se tornando mais importantes. A única maneira de garantir que tudo está indo bem é ter um bom sistema de monitoramento e alerta, mas a questão é o que você precisa monitorar para garantir que seus sistemas estejam funcionando de maneira saudável.
Neste blog, veremos o que você precisa monitorar em um banco de dados PostgreSQL Moodle e como você pode fazer isso mais facilmente usando o ClusterControl.
O que monitorar no PostgreSQL
Ao monitorar um nó ou 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.
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. Aqui estão 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 mudar em seu sistema, provavelmente será necessário 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
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.
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.
Monitorando seu banco de dados PostgreSQL Moodle 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. O ClusterControl 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.
Permite monitorar seus servidores em tempo real com um conjunto predefinido de painéis para 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 integrá-lo a diferentes serviços, como PagerDuty ou Slack.
Na seção de monitoramento de consultas, você pode encontrar as principais consultas, as consultas em execução consultas, discrepâncias de consultas e estatísticas de consultas para monitorar o tráfego do banco de dados.
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.
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 do 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 seu cluster de banco de dados.
Lista de cluster
Lista de nós
Você pode executar todas as tarefas que você pode ver no ClusterControl UI (e ainda mais), e você pode integrar esse recurso com algumas ferramentas externas como o slack, para gerenciá-lo a partir daí.
Conclusão
Monitorar seu banco de dados Moodle PostgreSQL é necessário, mas também uma tarefa demorada se você não tiver nenhuma ferramenta para ajudar com isso. Neste blog, mencionamos algumas métricas importantes para monitorar em seu banco de dados Moodle PostgreSQL e como manter seus sistemas sob controle usando o ClusterControl.