Instalación de un replica set de MongoDB (3 miembros, keyfile y autorización)
MongoDBNivel: IntermedioDuración: 60–90 minCrea desde cero un replica set de MongoDB 8.0 (o 7.0) con tres miembros: repositorio oficial, directorio de datos en XFS, caché de WiredTiger dimensionada según la RAM, autenticación entre miembros con keyfile, autorización, usuarios administrador y de aplicación, read/write concern, prueba de failover y cadena de conexión. El resultado es un replica set protegido por contraseña que soporta la pérdida de un miembro sin interrupción. Si los datos o la carga de escritura van a superar un único servidor, abra la guía de sharded cluster; la operación diaria, la copia de seguridad y el endurecimiento de un set existente se tratan en guías de MongoDB aparte.
Topología: 3 servidores (1 primary + 2 secondary), número impar de miembros con datos
Antes de empezar
- Todos los servidores usan el mismo sistema operativo, actualizado; la hora está sincronizada con NTP (chrony). La diferencia de hora entre miembros provoca problemas de sesión y de oplog.
- La RAM y la CPU coinciden con los valores del formulario (la caché de WiredTiger se calcula según este valor). Hay swap configurada, pero pequeña.
- El directorio de datos (…) está en un disco/LV independiente, formateado con XFS, montado con noatime y persistente en fstab. ext4 con WiredTiger puede causar problemas de rendimiento.
- Cada nombre de servidor se resuelve desde todos los servidores y desde los servidores de aplicación (DNS o /etc/hosts). La configuración del replica set usa nombres, no IP.
- El puerto … está abierto entre los servidores; la red de aplicación llega a estos puertos. El puerto no lo usa otro servicio.
- Los servidores pueden salir por HTTPS a repo.mongodb.org y pgp.mongodb.com, o hay un mirror interno configurado.
- No existe el paquete mongodb propio del sistema operativo ni una instalación antigua de MongoDB.
- Desde el primer servidor se puede hacer scp a los demás como root (o con un usuario con sudo) para copiar el keyfile. Si no, traslade el archivo manualmente por un medio seguro.
- Ha iniciado sesión con privilegios de root o sudo; la ventana de mantenimiento y el plan de snapshot del servidor (vuelta atrás) están listos.
Fases de la guía
- Preparación del sistema operativo (todos los miembros) — Hostname: … · Actualización del sistema y herramientas necesarias · Resolución de nombres (/etc/hosts) · Parámetros del kernel (sysctl) · Aplicar los parámetros sysctl · Transparent Huge Pages: activar para 8.0 …
- Instalación del software de MongoDB (todos los miembros) — Añadir el repositorio de MongoDB … · Añadir el repositorio de MongoDB … · Instalar MongoDB · Preparar el directorio de datos · Política y etiquetas de SELinux
- Keyfile (autenticación entre miembros) — Crear el keyfile · Copiar el keyfile a los demás miembros · Permisos del keyfile: …
- Configuración — mongod.conf: … · Comprobar los ajustes de systemd · Abrir el puerto en el firewall
- Inicio del servicio (todos los miembros) — Habilitar e iniciar mongod
- Iniciar el replica set y crear los usuarios — Comprobar el acceso a los demás miembros · rs.initiate · Crear el usuario administrador · Crear el usuario de aplicación · Read/write concern predeterminados
- Verificación y prueba de failover — Estado del replica set · Prueba de escritura/lectura · Prueba de failover planificado (rs.stepDown) · Cadena de conexión de la aplicación
- Después de la instalación — Rotación de logs · Probar logrotate · Planificar la copia de seguridad (obligatorio) · Conectar la supervisión · Seguridad: TLS y acceso