Recuperação e manutenção
Como funciona reconciliação de dados dentro do senhasegura
senhasegura usa o MariaDB Galera Cluster como tecnologia de cluster de alta disponibilidade de banco de dados. Esta seção explicará os cenários indisponíveis e os passos para a recuperação com segurança.
Normalmente, em cenários de interrupção temporária da replicação de dados entre nós de cluster com configurações padrão, há uma tolerância de aproximadamente 3 horas de interrupção em que o cluster só precisa de um IST para resolver a reconciliação, ou seja, apenas enviar os dados incrementais. Neste caso, nenhuma intervenção é necessária, pois o cluster resolve o problema da reconciliação automaticamente.
Paradas mais longas geralmente requerem uma transferência de dados completa (SST).
Na maioria dos casos, o cluster senhasegura é suficientemente resiliente e inteligente para resolver a reconciliação realizando um SST automaticamente.
Intervenção manual para realizar um SST no cluster
Primeiro verifique o status da sincronização fazer o login no banco de dados e verificar o controle das seguintes variáveis:
sudo orbit cluster status
Parar o processo MariaDB;
sudo systemctl stop mariadb.service
Desativar a replicação mudando o arquivo de configuração
galera.cnf
;Editar o arquivo de configuração
/etc/mysql/conf.d/galera.cnf
;Localize o parâmetro
wsrep_on
e mude o valor paraOFF
Salvar o arquivo e saia do editor;
Elimine os antigos arquivos de controle de cluster;
sudo rm /var/lib/mysql/galera.cache
;sudo rm /var/lib/mysql/grastate.dat
;sudo rm /var/lib/mysql/multimaster.info
;Iniciar o processo MariaDB;
sudo systemctl start mariadb.service
Primeiros passos no nó secundário (other members)
Parar o processo MariaDB;
sudo systemctl stop mariadb.service
Renomear a pasta de dados do banco de dados atual para uma finalidade de backup;
sudo mv /var/lib/mysql /var/lib/mysql-$(date +%d%m%y%H%M)
Criar uma nova pasta de dados do banco de dados;
sudo install -d /var/lib/mysql -o mysql -g mysql
Segundo passo no nó primário (Primary Member)
Parar o processo MariaDB;
sudo systemctl stop mariadb.service
Habilitar a replicação:
Editar o arquivo de configuração
/etc/mysql/conf.d/galera.cnf
;Localize o parâmetro
wsrep_on
e mude seu valor paraON
Salvar o arquivo e sair do editor;
Em outro terminal, mantenha sua atenção nos logs do banco de dados:
sudo tailf /var/log/mysql/mysql-error.log
Recriar o cluster;
sudo galera_new_cluster
Aguardar a inicialização completa;
Segundo passo no nó secundário (other members)
Confirmar se a replicação está habilitada no arquivo de configuração
galera.cnf
;Editar o arquivo de configuração
/etc/mysql/conf.d/galera.cnf
;Editar o arquivo de configuração
/etc/mysql/conf.d/galera.cnf
Salvar o arquivo e sair do editor;
Em outro terminal, mantenha sua atenção nos logs do banco de dados:
sudo tailf /var/log/mysql/mysql-error.log
Iniciar o processo MariaDB;
sudo systemctl start mariadb.service
Verificar se o número de membros do cluster está correto no log de banco de dados (por exemplo: se houver 2 membros, a mensagem
members = 2/2(joined/total)
deve ser impressa);Verifique se a confirmação da sincronização aparece
WSREP: Member 0.0 (vsrv-senhasegura-cert05) synced with group.
Status de aplicação e serviços
Todos os serviços utilizados pela plataforma senhasegura podem ser gerenciados pela linha de comando orbit
.
Reiniciando a instância principal
Uma instância primária é uma instância que centraliza a execução de todos os serviços. E também usada como membro primário do esquema de cluster.
Você pode verificar como a instância é configurada usando o comando orbit status
.
Para mudar uma instância para o uso primário e ativá-la, use a seguinte sequência de comandos para garantir um uso correto:
sudo orbit application stop
;sudo orbit application master
;sudo orbit application start
;sudo orbit proxy fajita restart
;sudo orbit proxy rdpgate restart
;
O orbit application stop
e o orbit application start
também reiniciarão os serviços básicos de servidor web NGINX e PHP-FPM.
Reinicialização dos serviços Linux
Todos os serviços podem ser reiniciados usando a interface de comando orbit
.
Use o comando sudo orbit service
para reiniciar um serviço linux.
Preste muita atenção ao status dos seguintes serviços. Você pode reiniciá-lo por si mesmo se uma parada inesperada do serviço acontecer.
nginx: Serviço de servidor Web. Se for reiniciado, reinicie também o serviço
php-fpm
;php-fpm: Serviço PHP Wrapper;
mariadb: Serviço de banco de dados;
docker: Serviço de isolamento de proxy;
wazuh-manager: Serviço HIDS;
Host-Based Intrusion Detection Systems IP bloqueado
Se Host-Based Intrusion Detection Systems bloquear um IP, você pode desbloquear o IP usando o comando orbit firewall
.
sudo orbit firewall –show
sudo orbit firewall unblock –host=[blocked IP]
Reiniciando o ambiente de cluster
Em um ambiente de cluster você deve reiniciar ou encerrar as instâncias na ordem correta para evitar problemas.
Use o sudo orbit shutdown
em membros do cluster, uma instância de cada vez, esperando o encerramento completo para iniciar o processo em outro membro.
Dessa forma, os membros de cluster disponíveis entenderão que os membros estão sendo desativados. Mantenha o nó primário como o último a ser desligado e o primeiro a ser ligado novamente.