.. _migrate_realm_to_elastic9: Migración de un Reino estándar a un reino de observabilidad *********************************************************** A continuación se describen los pasos operativos necesarios para migrar un Reino estándar a Elasticsearch 9. El proceso incluye la configuración en Aggregator, la copia de ficheros auxiliares, la migración de reportes y la ejecución de los scripts de migración correspondientes. Variables de referencia ======================= A lo largo de esta guía se utilizan los siguientes placeholders: .. csv-table:: :header: "Placeholder", "Descripción" :widths: 30, 70 "`[reino]`", "Nombre del reino que se va a migrar." "`[user]`", "Usuario con acceso SSH al entorno de origen." "`[archivos_a_copiar]`", "Ficheros o directorios concretos que deben copiarse." "`[tipo_de_reino]`", "Tipo de reino utilizado en Aggregator." "`[archivo_de_salida]`", "Fichero generado durante la exportación." "`[id_nuevo_reino]`", "Identificador del nuevo reino en el agregador destino." .. Note:: Antes de ejecutar cualquier comando, valide los nombres reales del Reino, rutas, contenedores y ficheros en el entorno correspondiente. Migración de MIBs de Import-tool ================================ Copie los directorios de MIBs desde el entorno de origen, al contenedor backend del Reino destino. :: bash scp -r [user]@[nombre_de_reino]:/opt/wocu/embedded/wocu/wocu-import-tool/wocu-import-tool/snmp_traps/mibs/ /root/ docker cp /root/mibs/. wocu_[nombre_de_reino]-backend-1:/mibs/ Migración de ficheros de configuración de Shinken ================================================= Si el entorno dispone de ficheros ``.cfg`` de Shinken, estos deben copiarse de forma similar al caso anterior. :: bash scp -r [user]@[nombre_de_reino]:/var/opt/wocu/etc/shinken/[archivos_a_copiar] ./ docker cp ./[archivos_a_copiar] wocu_[nombre_de_reino]-backend-1:/etc/shinken/ .. Attention:: En :ref:`Configuration` > :ref:`Tasks` aparece la tarea *Cache Forecast Values*, aunque no debería mostrarse. Migración de tareas de importación CSV ====================================== Las :ref:`tareas de importación CSV` utilizan ficheros almacenados en ``/tmp/supervision/``. Estos ficheros deben copiarse al contenedor **Docker** del backend. :: bash scp -r [user]@[nombre_de_reino]:/tmp/supervision/[archivos_a_copiar] ./ docker cp ./[archivos_a_copiar] wocu_[nombre_de_reino]-backend-1:/tmp/supervision/ Migración de snapshots ====================== 1. Copie los ficheros JSON desde el entorno de origen: :: [nombre_de_reino]:/var/opt/wocu/var/backups/import-tool 2. Cambie las variables ``ENCRYPT_SALT`` y ``SECRET_KEY``. 3. Si aplica, elimine dichas variables del fichero ``docker-compose.yml``. Migración de reportes ===================== Este procedimiento será necesario cuando los reportes deban migrarse de un agregador a otro. Exportación en el agregador de origen ------------------------------------- :: bash cd /opt/wocu/embedded/wocu/wocu-aggregator/wocu-aggregator/ /opt/wocu/embedded/bin/python3 ./manage.py export_realm_reports [nombre_de_reino] --realm-type [tipo_de_reino] --output [archivo_de_salida] --pretty Importación en el agregador destino ----------------------------------- :: bash /opt/wocu/embedded/bin/python3 ./manage.py import_realm_reports [archivo_de_salida] --object-id [id_nuevo_reino] Copia de imágenes de portada ---------------------------- Copie los ficheros de portada asociados a las noticias de reportes. .. csv-table:: :header: "Entorno", "Ruta" :widths: 25, 75 "Origen", "`/var/opt/wocu/var/aggregator/media/report_news/cover_images/*`" "Destino", "`/var/opt/wocu/var/aggregator/media/report_news/cover_images/`" Migración de MongoDB a Elasticsearch 9 ====================================== 1. Modifique en el script las variables de conexión a MongoDB, como origen. 2. Modifique en el script las variables de conexión a Elasticsearch, como destino. 3. Ejecute el siguiente script de migración: :: bash /opt/wocu/embedded/bin/python3 mongo_to_elastic.py Configuración de API key para Elasticsearch ------------------------------------------- El script se modificó para utilizar autenticación mediante API key: :: es = Elasticsearch( ELASTIC_URL, headers={"Authorization": f"ApiKey {ELASTIC_API_KEY}"}, ) Migración de InfluxDB a Elasticsearch 9 ======================================= 1. Modifique en el script las variables de conexión a InfluxDB, como origen. 2. Modifique en el script las variables de conexión a Elasticsearch, como destino. 3. Ejecute el siguiente script de migración: :: bash /opt/wocu/embedded/bin/python3 influx_to_elastic.py .. admonition:: Recomendación Valide la existencia de la clave ``hostgroups`` antes de eliminarla para evitar el ``KeyError``. Por ejemplo: ``linea_json.pop("hostgroups", None)`` Checklist de validación ======================= Antes de dar por finalizada la migración, verifique que se han completado correctamente las siguientes tareas: **Configuración del Reino** ✔ El Reino existe en **Aggregator**. ✔ El backend de **Elasticsearch** está configurado. ✔ La API Key dispone de los permisos mínimos necesarios. ✔ Los espacios de **Kibana** se han configurado correctamente. **Ficheros y configuración auxiliar** ✔ Las MIBs se han copiado al contenedor backend. ✔ Los ficheros ``.cfg`` de **Shinken** se han migrado, si aplica. ✔ Los ficheros CSV de ``/tmp/supervision/`` se han copiado al contenedor. ✔ Los snapshots JSON se han transferido correctamente. ✔ Las variables ``ENCRYPT_SALT`` y ``SECRET_KEY`` se han revisado y ajustado. **Reportes y contenido asociado** ✔ Los reportes se han exportado e importado correctamente. ✔ Las imágenes de portada asociadas a los reportes se han copiado al entorno destino. **Migración de datos** ✔ La migración de **MongoDB** a **Elasticsearch 9** se ha ejecutado o validado. ✔ La migración de **InfluxDB** a **Elasticsearch 9** se ha ejecutado o validado.