Runbook de operaciones
Este documento se basa en la aplicación offline Enterprise New.
Inspección diaria
Sección titulada «Inspección diaria»- Ejecuta los siguientes comandos desde el directorio raíz del paquete de despliegue:
Terminal window ./bin/verify.sh --site config/site.conf./bin/smoke-business-emqx.sh --site config/site.conf - Confirma los siguientes elementos:
- Los 3 nodos Swarm están en estado
Ready. APP VIP /healthzy/readyzdevuelven200.DB VIP:5432es accesible.- La topología PostgreSQL primary, standby y witness es normal.
backend,redis,emqx,sourceflow,eventflow,marimoyopcua-serverse ejecutan en el nodo de aplicación activo.
- Los 3 nodos Swarm están en estado
Comprobaciones de aplicación
Sección titulada «Comprobaciones de aplicación»- Ejecuta los siguientes comandos en el nodo de aplicación activo:
Terminal window cd /opt/tier0-enterprise/tier0-deploybash bin/compose.sh psbash bin/compose.sh logs --tail=200 backendcurl -fsS http://127.0.0.1:8088/healthzcurl -fsS http://127.0.0.1:8088/readyzNo omitas
bin/compose.shni ejecutes comandosdocker composesin envolver directamente. El script wrapper carga el entorno de runtime generado por el instalador. - Interpretación de health-check:
- Fallo de
healthz: revisa primero el proceso backend, la imagen y los logs del contenedor. - Fallo de
readyz: revisa también DB VIP, Redis y logs de migración de base de datos. - Página inicial accesible pero login no disponible: confirma
ADMIN_INITIAL_PASSWORDen.env, luego revisa los logs de migración IAM del backend y las tablas de usuarios. No juzgues el éxito del despliegue solo por el puerto HTTP.
- Fallo de
Comprobaciones de entrada de protocolo
Sección titulada «Comprobaciones de entrada de protocolo»nc -vz <APP_VIP> 1883nc -vz <APP_VIP> 8883nc -vz <APP_VIP> 8083nc -vz <APP_VIP> 8084nc -vz <APP_VIP> 4840Comprobaciones de base de datos
Sección titulada «Comprobaciones de base de datos»Ejecuta lo siguiente en los nodos de base de datos:
systemctl status tier0-postgresqlsystemctl status tier0-repmgrdsudo -iu postgres psql -Atqc 'select pg_is_in_recovery();'sudo -iu postgres /usr/local/bin/repmgr -f /etc/repmgr.conf cluster showpg_is_in_recovery=falsesignifica primary.pg_is_in_recovery=truesignifica standby.- DB VIP solo debe ubicarse en el primary actual.
- Si la replicación standby se interrumpe o el witness reporta errores upstream, preserva primero el sitio. No vuelvas a ejecutar directamente el despliegue completo.
Failover de APP VIP
Sección titulada «Failover de APP VIP»-
Antes de probar, registra el nodo que posee actualmente el VIP y verifica:
Terminal window curl -fsS http://<APP_VIP>/healthzcurl -fsS http://<APP_VIP>/readyz -
Después de detener
keepaliveden el nodo VIP actual, confirma que otro nodo de aplicación tome el VIP y vuelve a probar ambas URL. El backend de HAProxy apunta al nodo de aplicación activo en8088/TCP, por lo que los tres nodos de aplicación deben poder alcanzar el puerto 8088 del nodo activo. -
Después de restaurar
keepalived, ejecuta de nuevoverify.shy smoke checks. No detengas contenedores de aplicación activos durante el simulacro.
Conmutación por fallo del DB Primary
Sección titulada «Conmutación por fallo del DB Primary»Antes de un simulacro de fallo, crea un backup y confirma que la replication está sana:
./bin/backup-db.sh --site config/site.confDespués de detener tier0-postgresql en el primary actual, observa cómo repmgr promueve el standby y cómo DB VIP toma control. El RTO objetivo está dentro de 2 minutos. Pruebas históricas en la misma arquitectura fueron de unos 59-64 segundos.
Backup y restore
Sección titulada «Backup y restore»-
Backup:
Terminal window ./bin/backup-db.sh --site config/site.conf -
Restore:
Terminal window ./bin/restore-db.sh --site config/site.conf --restore-file /backup/tier0-db/postgres-YYYYmmddTHHMMSS.dump
Limpieza y nueva prueba
Sección titulada «Limpieza y nueva prueba»./full-cleanup.sh --env install.env --yes./install.sh --auto --yesProblemas comunes
Sección titulada «Problemas comunes»Fallo de arranque de Backend
Sección titulada «Fallo de arranque de Backend»cd /opt/tier0-enterprise/tier0-deploybash bin/compose.sh logs --tail=300 backendbash bin/compose.sh psFallo de arranque de EMQX
Sección titulada «Fallo de arranque de EMQX»cd /opt/tier0-enterprise/tier0-deploybash bin/compose.sh logs --tail=200 emqxReinicios repetidos de repmgrd
Sección titulada «Reinicios repetidos de repmgrd»systemctl status tier0-repmgrdtail -100 /var/log/repmgr/repmgr.logsudo -iu postgres psql -Atqc 'show shared_preload_libraries;'Fallo de verificación de materiales
Sección titulada «Fallo de verificación de materiales»./bin/verify-materials.sh