Snapshot e restauração no Elasticsearch (repository fs / S3, SLM)
ElasticsearchNível: IntermediárioDuração: 45–90 minConfigura o esquema de snapshots (backups) de um cluster Elasticsearch 8.x / 9.x já instalado e descreve a recuperação: repository em sistema de arquivos compartilhado (NFS + path.repo) ou S3 (keystore), ativação por rolling restart e verificação, snapshot manual (indices, include_global_state, feature_states), snapshots agendados e retenção com SLM (expire_after/min_count/max_count), restauração com novo nome ou sobre um índice fechado, restauração de feature state, monitoramento e migração para outro cluster registrando o mesmo repository como somente leitura. O resultado são snapshots diários automáticos cuja restauração foi testada. No Elasticsearch, o snapshot é o único backup válido; para mudanças de mapping/shards no mesmo cluster use reindex, e para trazer de volta rapidamente um único índice use os cenários do guia de operação.
Topologia: Cluster Elasticsearch 8.x / 9.x (1–N nodes) + diretório compartilhado (NFS) ou armazenamento de objetos compatível com S3
Antes de começar
- O cluster está saudável (green) e você tem a senha do elastic (ou de um usuário com privilégios manage + snapshot). Como a configuração do repository exige reiniciar os nodes, garanta que o cluster tolere a perda de um node (replicas alocadas).
- O arquivo da CA HTTP (…) existe em todos os nodes; as chamadas de API são validadas com essa CA.
- … está montado a partir do mesmo compartilhamento (NFS) em todos os nodes master e data e é persistente no fstab. O UID/GID do usuário elasticsearch deve ser igual em todos os nodes, ou o compartilhamento deve mapear tudo para um único usuário com all_squash,anonuid=…,anongid=…; caso contrário, os nodes não conseguem ler os arquivos gravados uns pelos outros. Um diretório local (não compartilhado) falha na verificação do repository em um cluster com vários nodes.
- O bucket … foi criado; a chave de acesso (access key / secret key) tem as permissões s3:ListBucket, s3:GetObject, s3:PutObject, s3:DeleteObject, s3:AbortMultipartUpload, s3:ListMultipartUploadParts e s3:ListBucketMultipartUploads nesse bucket. Os nodes alcançam … via HTTPS.
- Há espaço livre suficiente no compartilhamento: o primeiro snapshot ocupa o tamanho em disco dos índices; os seguintes adicionam apenas os segments alterados (incremental).
- As regras de versão são conhecidas: um snapshot é restaurado em um cluster da mesma versão ou de uma mais nova; não pode ser restaurado em versão mais antiga. Um índice pode ser restaurado no máximo na versão principal seguinte àquela em que foi criado (índice criado na 8.x vai para a 9.x; índice criado na 7.x não vai para a 9.x como índice normal).
- Há acesso root em todos os nodes e uma janela de manutenção para o rolling restart.
Fases do guia
- Acesso à API (todos os nodes) — Arquivo temporário de credenciais para a API · Verificar o cluster e os repositories existentes
- Preparação do sistema de arquivos compartilhado (todos os nodes) — Montar o compartilhamento NFS · Ajustar a permissão do diretório e testar a gravação · Adicionar a configuração path.repo
- Credenciais e configuração do client S3 (todos os nodes) — Adicionar as chaves de acesso S3 ao keystore · Adicionar as configurações do client S3
- Registrar e verificar o repository — Registrar o repository · Verificar o repository
- Snapshot manual — Criar o índice de teste · Criar um snapshot · Monitorar o estado do snapshot
- Snapshots automáticos com SLM — Criar a política SLM · Executar a política agora · Verificar o estado e as estatísticas do SLM · Executar a retenção manualmente
- Restauração — Restaurar o índice com um novo nome · Acompanhar a restauração e comparar a contagem de documentos · Apagar a cópia restaurada · Fechar o índice e restaurá-lo no local · Restaurar o feature state
- Migração para outro cluster — Preparação do cluster de destino · Registrar o repository como somente leitura · Restaurar os índices no cluster de destino · Apagar o arquivo de credenciais no destino
- Monitoramento e manutenção — Monitorar a saúde dos snapshots · Limpeza do repository · Apagar os arquivos de credenciais · Testes periódicos de recuperação