Instalação de replica set MongoDB (3 membros, keyfile e autorização)
MongoDBNível: IntermediárioDuração: 60–90 minMonta do zero um replica set MongoDB 8.0 (ou 7.0) de três membros: repositório oficial, diretório de dados em XFS, cache do WiredTiger dimensionado pela RAM, autenticação entre membros com keyfile, autorização, usuários de administrador e de aplicação, read/write concern, teste de failover e connection string. Ao final, você tem um replica set protegido por senha que sobrevive à perda de um membro sem downtime. Se os dados ou a carga de escrita forem superar um único servidor, abra o guia de sharded cluster; a operação diária, o backup e o hardening de um set existente estão em guias MongoDB separados.
Topologia: 3 servidores (1 primary + 2 secondaries), número ímpar de membros com dados
Antes de começar
- Todos os servidores rodam o mesmo sistema operacional, atualizado; o horário é sincronizado por NTP (chrony). Diferença de horário entre os membros causa problemas de sessão e de oplog.
- RAM e CPU correspondem aos valores do formulário (o cache do WiredTiger é calculado a partir desse valor). Há swap configurado, mas pequeno.
- O diretório de dados (…) fica em um disco/LV separado, formatado em XFS, montado com noatime e persistente no fstab. ext4 com WiredTiger pode causar problemas de desempenho.
- Cada nome de servidor resolve a partir de todos os servidores e dos servidores de aplicação (DNS ou /etc/hosts). A configuração do replica set usa nomes, não IPs.
- A porta … está aberta entre os servidores; a rede da aplicação alcança essas portas. A porta não é usada por outro serviço.
- Os servidores acessam repo.mongodb.org e pgp.mongodb.com por HTTPS, ou há um mirror interno configurado.
- Não há o pacote mongodb do próprio sistema operacional nem uma instalação antiga de MongoDB.
- O scp funciona do primeiro servidor para os demais como root (ou com um usuário com sudo) (para copiar o keyfile). Caso contrário, leve o arquivo manualmente por um meio seguro.
- Você está logado com privilégios de root ou sudo; a janela de manutenção e um plano de snapshot do servidor (rollback) estão prontos.
Fases do guia
- Preparação do sistema operacional (todos os membros) — Hostname: … · Atualização do sistema e ferramentas necessárias · Resolução de nomes (/etc/hosts) · Parâmetros do kernel (sysctl) · Aplicar as configurações de sysctl · Transparent Huge Pages: ativar para 8.0 …
- Instalação do software MongoDB (todos os membros) — Adicionar o repositório do MongoDB … · Adicionar o repositório do MongoDB … · Instalar o MongoDB · Preparar o diretório de dados · Política e rótulos do SELinux
- Keyfile (autenticação entre membros) — Criar o keyfile · Copiar o keyfile para os outros membros · Permissões do keyfile: …
- Configuração — mongod.conf: … · Verificar as configurações do systemd · Abrir a porta no firewall
- Inicialização do serviço (todos os membros) — Habilitar e iniciar o mongod
- Iniciar o replica set e criar os usuários — Verificar o acesso aos outros membros · rs.initiate · Criar o usuário administrador · Criar o usuário da aplicação · Read/write concern padrão
- Verificação e teste de failover — Status do replica set · Teste de escrita/leitura · Teste de failover planejado (rs.stepDown) · Connection string da aplicação
- Pós-instalação — Rotação de log · Testar o logrotate · Planejar os backups (obrigatório) · Conectar o monitoramento · Segurança: TLS e acesso