# 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](../img/acesso_portainer.png) --- ## 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](../img/stop_stack_elasticsearch.png) > **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](../img/variables_stack_elasticsearch.png) 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](../img/volumes_docker_portainer.png) Filtre por **Unused** para listar apenas volumes não utilizados por nenhum container: ![Volumes Docker Portainer](../img/volumes_docker_unused_portainer.png) Selecione todos os volumes listados e **remova-os**: ![Clean Volumes Docker Portainer](../img/clean_volumes_docker_unused_portainer.png) > **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 ```bash 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/ ``` O procedimento acima pode demorar mais, dependendo o tamanho do cliente e uso do Elastic Search. --- ## 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.