Files
projeto-importado/docs/migracao_dir_elastic.md
2025-11-28 00:29:42 -03:00

4.4 KiB

Migração de dados do Elasticsearch (para /var/lib/docker/local)

Este guia descreve como migrar os dados da stack do Elasticsearch do diretório padrão (/var/lib/docker/data) para o diretório local (/var/lib/docker/local) no host. O diretório local não participa do compartilhamento do GlusterFS (não é replicado entre hosts). Utilize apenas quando for aceitável manter os dados em um único host.

ATENÇÃO

  • Haverá indisponibilidade do serviço (a stack será parada).
  • Verifique espaço em disco no host de destino antes de migrar (df -h).
  • Este procedimento deve ser executado por um usuário com privilégios de admin no Portainer e root no servidor.

Pré-requisitos

  • Acesso ao Portainer do cliente.
  • Acesso SSH ao host (ex.: msd-01) com usuário root.
  • Nome da stack e variáveis de volume da aplicação.
  • Espaço livre suficiente em /var/lib/docker/local.

1) Acessar o Portainer

Acesse a interface web do Portainer do cliente:

  • Exemplo: https://172.24.1.24:9443
  • Observação: utilize a mesma senha do usuário root do servidor.

Acesso ao Portainer


2) Parar a stack do Elasticsearch

Stack: 08573-des-atendenet-0870-01

No Portainer, abra a stack e clique em Stop this stack, conforme a imagem:

Stop stack Elastic

Por quê? Parar a stack evita escrita nos volumes durante a cópia, garantindo a integridade dos dados.


3) Ajustar os diretórios das variáveis de volume

Atualize as seguintes variáveis da stack para apontar para o diretório local:

  • DES_ELASTICSEARCH_DATA_VOLUME_PATH
  • DES_ELASTICSEARCH_BACKUP_VOLUME_PATH
  • DES_ELASTICSEARCH_PLUGINS_VOLUME_PATH

Antes: apontam para /var/lib/docker/data

Depois: devem apontar para /var/lib/docker/local

Exemplo:

DES_ELASTICSEARCH_DATA_VOLUME_PATH=/var/lib/docker/local/08573-des-atendenet-0870-01/data
DES_ELASTICSEARCH_BACKUP_VOLUME_PATH=/var/lib/docker/local/08573-des-atendenet-0870-01/data
DES_ELASTICSEARCH_PLUGINS_VOLUME_PATH=/var/lib/docker/local/08573-des-atendenet-0870-01/data

Variáveis stack Elastic

Clique em Save settings.

Não inicie a stack ainda.


4) Limpar volumes não utilizados no Portainer

No menu lateral, acesse Volumes.

Volumes Docker Portainer

Filtre por Unused para listar apenas volumes não utilizados por nenhum container:

Volumes Docker Portainer

Selecione todos os volumes listados e remova-os:

Clean Volumes Docker Portainer

Nota: A remoção de volumes marcados como Unused não apaga os dados salvos diretamente no host (como em /var/lib/docker/local/...). É apenas uma limpeza de volumes órfãos do Docker.


5) Copiar os dados no host (via SSH)

Acesse via SSH o host do cliente msd-01 com usuário root e execute:

Atenção para substituir o código do cliente nos comandos executados abaixo

mkdir -p /var/lib/docker/local
cd /var/lib/docker/data
cp -ar 08573-des-atendenet-0870-01 /var/lib/docker/local
ls -la /var/lib/docker/local/08573-des-atendenet-0870-01/

6) Iniciar novamente a stack e validar

Volte ao Portainer do cliente e inicie a stack.

  • Verifique os logs dos serviços e confirme que o status está running.
  • Valide o Elasticsearch (ex.: health green/yellow nos logs, operações básicas de leitura/escrita da aplicação).

07) Necessário realizar atualização também no cadastro do GTT

Gerenciamento Data Center » Manutenção » Equipamentos » Equipamento » Consultar Serviços do Equipamento » Configuração de Serviço

Pós-migração (boas práticas)

  • Monitore espaço em disco de /var/lib/docker/local.
  • Estratégia de rollback simples (basta reverter as variáveis para /var/lib/docker/data, parar a stack, e iniciar novamente).

Observação final: Como /var/lib/docker/local não é compartilhado pelo GlusterFS, os dados permanecerão somente no host atual. Certifique-se de que isso atende aos requisitos do ambiente e às políticas de continuidade/recuperação.