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:

Placeholder

Descripción

[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.

Nota

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/

Atención

En Configuration > Tasks aparece la tarea Cache Forecast Values, aunque no debería mostrarse.

Migración de tareas de importación CSV

Las 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
  1. Cambie las variables ENCRYPT_SALT y SECRET_KEY.

  2. 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.

Entorno

Ruta

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

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.