- 3 minutos de leitura
- Imprimir
- Tema escuroTema claro
- Pdf
Recuperação e manutenção
- 3 minutos de leitura
- Imprimir
- Tema escuroTema claro
- Pdf
Como funciona reconciliação de dados dentro do senhasegura
O senhasegura usa o MariaDB Galera Cluster como tecnologia cluster de alta disponibilidade.
Normalmente, em cenários de interrupção temporária da replicação de dados entre os nós do cluster com configurações padrão, há uma tolerância de aproximadamente 3 horas de interrupção em que o cluster precisa de um Incremental State Transfers (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 State Snapshot Transfers (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 primário
Verifique o status da sincronização ao fazer o login no banco de dados e verifique o controle das seguintes variáveis:
- Verifique o status da sincronização:
sudo orbit cluster status
Pare o processo MariaDB:
sudo systemctl stop mariadb.service
Desative a replicação mudando o arquivo de configuração:
galera.cnf
Edite o arquivo de configuração:
vim /etc/mysql/conf.d/galera.cnf
Localize o parâmetro
wsrep_on
e mude o valor paraOFF
Salve o arquivo e saia do editor
Elimine os arquivos antigos de controle de cluster, digite os seguintes comandos:
sudo rm /var/lib/mysql/galera.cache sudo rm /var/lib/mysql/grastate.dat sudo rm /var/lib/mysql/multi-master.info
Inicie o processo MariaDB:
sudo systemctl start mariadb.service
Passos no nó secundário (outros membros)
Pare o processo MariaDB:
sudo systemctl stop mariadb.service
Renomeie a pasta de dados do banco de dados atual para uma de backup:
sudo mv /var/lib/mysql /var/lib/mysql-$(date +%d%m%y%H%M)
Crie uma nova pasta de dados do banco de dados:
sudo install -d /var/lib/mysql -o mysql -g mysql
Passos no nó primário (Membro primário)
Pare o processo MariaDB:
sudo systemctl stop mariadb.service
Habilite a replicação editando o arquivo de configuração
Edite o arquivo de configuração
/etc/mysql/conf.d/galera.cnf
Localize o parâmetro
wsrep_on
e mude seu valor paraON
Salve o arquivo e sair do editor;
Abra outro terminal e monitore os logs do banco de dados:
sudo tailf /var/log/mysql/mysql-error.log
Recrie o cluster, digite:
sudo galera_new_cluster
Aguardar a inicialização completa;
Passos no nó secundário (outros membros)
Confirme se a replicação está habilitada no arquivo de configuração:
galera.cnf
Edite o arquivo de configuração:
/etc/mysql/conf.d/galera.cnf
Edite o arquivo de configuração:
/etc/mysql/conf.d/galera.cnf
Salve o arquivo e sair do editor
Abra outro terminal e monitore os logs do banco de dados:
sudo tailf /var/log/mysql/mysql-error.log
Inicie 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 esta mensagem:
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 Host-Based Intrusion Detection Systems (HIDS)
Host-Based Intrusion Detection Systems IP bloqueado
Se Host-Based Intrusion Detection Systems (HIDS) 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.
Serviços do Orbini e execução de tarefas
Serviços do Orbini é camada de abstração executada pelos módulos senhasegura.
Você pode controlar sua execução no menu Configurações ➔ Execução de processos ➔ Processos.
Todo processo possui uma configuração de time out. Em alguns casos, múltiplos processos podem ser acumulados à espera para serem executados.
Para descobrir porque o processo mais antigo está parado na lista de tarefas, execute-o manualmente.
sudo orbit execution --code ID --verbose --debug