Uma ampla variedade de recursos está disponível para você gerenciar seus clusters de banco de dados PostgreSQL remotamente. Com as ferramentas certas, gerenciá-lo remotamente não é uma tarefa difícil.
O uso de serviços totalmente gerenciados para PostgreSQL oferece uma observabilidade que pode fornecer a maior parte do que você precisa para gerenciar seu banco de dados. Eles fornecem um sistema de alertas, métricas, automação de tarefas demoradas de administração do sistema, gerenciamento de seus backups, etc.
Ao executar no local, é um desafio diferente. É isso que abordaremos neste blog. Compartilharemos dicas sobre como gerenciar seu cluster de banco de dados PostgreSQL remotamente.
Observabilidade do banco de dados
O termo observabilidade pode não ser familiar para algumas pessoas. A observabilidade não é coisa do passado, é tendência na hora de gerenciar seus bancos de dados (ou mesmo aplicativos PaaS ou SaaS). A observabilidade lida com o monitoramento, mas, até certo ponto, abrange a capacidade de determinar o estado da integridade e do desempenho do banco de dados e tem um recurso proativo e reativo que decide com base em um determinado status dos nós do banco de dados.
Um bom exemplo disso está no ClusterControl. Quando o ClusterControl detecta avisos com base nas verificações de uma determinada configuração, ele envia alertas para os canais fornecidos. Eles podem ser configurados e personalizados pelo sistema ou pelo Administrador de Banco de Dados.
Se seu banco de dados primário foi degradado e incapaz de processar transações (seja de leitura ou gravação), o ClusterControl reagirá de acordo e começará a disparar um failover para que um novo nó possa processar a causa injustificada do excesso de tráfego. Enquanto isso ocorre, o ClusterControl pode notificar os engenheiros sobre o que aconteceu acionando alarmes e enviando alertas. Os logs também são centralizados e quais tarefas de investigação e diagnóstico podem ser feitas em um só lugar, permitindo que você forneça um resultado rápido.
Embora isso possa não significar que o ClusterControl seja um pacote completo para Observabilidade, é uma das ferramentas poderosas. Existem ferramentas que são mais arquitetadas também para gerenciar principalmente em ambientes conteinerizados como Rancher misturado com Datadog.
Como isso ajuda você no gerenciamento remoto?
Um princípio básico de gestão é ter paz de espírito. Se ocorrer um problema, as ferramentas que você está usando para observabilidade devem poder notificá-lo por e-mail, enviar SMS ou por meio de aplicativos de pager (como o PagerDuty) para alertá-lo sobre o status do cluster de banco de dados,
ou você pode receber alertas como abaixo...
É muito importante que o notifique quando ocorrerem alterações. Você pode então melhorar e analisar o estado de sua infraestrutura e evitar quaisquer impactos que possam afetar os negócios.
Automação de banco de dados
É muito importante que a maioria das tarefas demoradas sejam automatizadas. A automação permite que você reduza a mão de obra. O que significa automatizar seus clusters de banco de dados PostgreSQL?
Failover
Failover é uma abordagem automática que ocorre quando ocorre um incidente sem precedentes (como uma falha no hardware, uma falha no sistema, perda de energia em seu nó principal principal ou uma perda de rede em todo o data center) . Sua capacidade de failover deve ser testada regularmente e seguir as práticas padrão do setor. A descoberta de serviço de uma falha interna deve ir até o ponto em que foi determinada como verdadeira e está realmente acontecendo.
No ClusterControl, quando ocorre um incidente, ele aciona o mecanismo de failover e promove o nó de espera mais atualizado e, em seguida, aciona os alarmes conforme mostrado abaixo...
Então, ele funciona em segundo plano para um failover como você viu abaixo , o progresso está em movimento.
deixando o resultado finalizado abaixo...
Agendamento de backup
Os backups são uma parte muito importante do Planejamento de Desastres e Recuperação (DRP). Os backups servem como seu backbone quando os dados do cluster ficam à deriva após um encontro de divisão de cérebro ou partição de rede. Há certas ocasiões em que o pg_rewind também pode ser benéfico, mas a automação de seus backups é sempre muito importante para evitar uma perda tão grande de dados e RPO e RTO menores.
No ClusterControl você pode fazer ou criar um backup sem nenhuma ferramenta especial ou adicionar trabalho utilitário para criar um script de backup automatizado. Todos estão lá e caberá à sua organização quando o backup ocorrerá e quais são as políticas do seu backup, incluindo sua retenção. Na verdade, o mais importante aqui é que o backup não deve interferir em seu ambiente de produção e não deve travar seus nós quando o backup ocorrer.
A verificação de backup também desempenha um papel muito importante aqui. Fique tranquilo, seu backup deve ser um tipo de backup válido e uma cópia confiável quando ocorrer uma crise. Adicionando o mecanismo para armazenar seu backup não apenas em suas instalações ou data center, mas também armazená-lo em outro lugar com segurança, como na nuvem ou no AWS S3 ou Google Cloud Storage, por exemplo.
Com o ClusterControl, isso foi feito facilmente e sozinho em toda a plataforma, seguindo a GUI conforme mostrado abaixo,
Isso permite que você escolha o método de backup escolhido, armazene-o na nuvem para adicionar mais retenção e garantia de backup, espalhando sua cópia de backup não apenas em uma fonte, mas também na nuvem. Então, você tem a opção de verificar o backup assim que terminar de criar o backup para verificar se é válido ou não. Parte disso também é que você pode optar por criptografar seu backup, o que é uma prática muito importante ao armazenar seus dados em repouso e cumprir as diretrizes regulatórias de segurança.
Segurança do banco de dados
A segurança geralmente é a principal preocupação da maioria quando se trata de gerenciar seu cluster de banco de dados PostgreSQL remotamente. Quem poderá acessar o banco de dados remotamente ou deve ser apenas local? Como adicionar restrições de segurança e como gerenciar os usuários e revisar a permissão do usuário por um analista de segurança. É muito importante ter um conjunto mais definido e fornecer uma imagem clara de sua arquitetura para que possa ser dissecado onde estão as brechas e quais são as coisas necessárias para melhorar ou reforçar a segurança.
ClusterControl fornece uma visão geral e gerenciamento de seus usuários do PostgreSQL e fornece uma visualização e um editor para seu pg_hba.conf, que gerencia como os usuários podem ser autenticados.
Para Gerenciamento de Usuários fornece uma visão geral da lista de usuários e seus privilégios no cluster de banco de dados. Também permite que você modifique ou altere os privilégios do usuário se não estiver de acordo com as diretrizes de segurança e da empresa. Gerenciar remotamente exige que todos os seus usuários tenham permissões e funções específicas e quando só pode ser usado ou acessado e limita a função para evitar danos em seu banco de dados.
Também é muito importante em seu PostgreSQL revisar e verificar se não há lapsos com a autenticação do usuário. Quando pode ser permitido e seu escopo poder se conectar aos servidores. É melhor que isso seja visualizado como temos abaixo,
Isso permite que você verifique facilmente e evite a autenticação negligenciada por essas possíveis brechas que um invasor possa fazer login devido a regras fracas de autenticação.
O uso de SSL e criptografia adiciona mais segurança e robustez quando seu banco de dados é acessado remotamente. Mas se você estiver acessando seu banco de dados remotamente fora das instalações da sua organização, é melhor encapsular seus dados, como fazer login por meio de uma VPN. Você pode conferir nosso blog sobre PostgreSQL Multi-DC:Configurando um nó de espera em uma localização geográfica diferente por meio de uma VPN.
Logs do banco de dados centralizado
A centralização de logs agregados fornece uma maneira muito conveniente de investigar e implementar uma ferramenta de análise de segurança para entender seus clusters de banco de dados e como eles se comportam. Isso é muito benéfico ao gerenciar bancos de dados remotos. Algumas abordagens comuns são usar o Logstash usando a pilha ELK ou o poderoso gerenciamento de código aberto para logs, Graylog.
Por que é importante centralizar os logs do banco de dados?
Caso você precise investigar um problema em todo o cluster e ver o que está passando por seus clusters de banco de dados, proxies ou balanceadores de carga. É muito conveniente apenas olhar para um lugar. Algumas ferramentas muito ricas e poderosas, como mencionei acima, permitem pesquisar dinamicamente e em tempo real. Eles também fornecem métricas e gráficos, o que é uma maneira muito conveniente de análise.
Com o ClusterControl, há uma conveniência fornecida ao acessar os logs. Embora os logs não sejam coletados e armazenados centralmente, ele oferece uma visão geral e a capacidade de ler os logs. Ver abaixo...
Você pode até revisar os trabalhos do que o ClusterControl detectou e agiu com base nos Alarmes ou passando pelos Trabalhos como abaixo,
Conclusão
Gerenciar seus clusters de banco de dados PostgreSQL remotamente pode ser assustador, especialmente quando se trata de segurança, monitoramento e failover. Se você tiver as ferramentas certas, os padrões do setor e as práticas recomendadas para implementação, segurança e observabilidade, poderá ficar tranquilo ao gerenciar seu banco de dados; independentemente da sua localização.