.. _observability_module: Observability ************* .. sidebar:: Información relacionada... :ref:`migrate_realm_to_elastic9` El módulo **Observability** amplía las capacidades de WOCU-Monitoring mediante la explotación de datos almacenados en un backend basado en **Elasticsearch**. Esta funcionalidad permite consultar, analizar y contextualizar la información asociada a una infraestructura monitorizada, facilitando una visión más completa del comportamiento de los activos, sus métricas y los eventos generados en la plataforma. Además, el módulo incorpora un **Asistente de IA** integrado en WOCU-Monitoring, orientado a agilizar el diagnóstico de incidencias sobre **Dispositivos**, **Servicios** y **Problems**. A través de esta funcionalidad, el usuario puede solicitar análisis asistidos, obtener contexto sobre el estado de los elementos monitorizados y continuar la investigación desde una conversación tipo chat dentro de la propia interfaz. Configuración del Reino de Observabilidad ========================================= .. _conf_observability_realm: Configuración manual -------------------- .. Important:: Toda la configuración de espacios, claves y privilegios descrita en las siguientes fases debe realizarse directamente desde la página o interfaz de Elastic (`Elasticsearch `_), ya que este procedimiento es nativo de dicha plataforma. .. sidebar:: Requisitos previos Antes de iniciar la configuración del Reino de Observabilidad, deben estar disponibles los siguientes datos y accesos: * Acceso a la interfaz de Elastic con permisos de administración. * Nombre del Reino que se va a configurar en WOCU-Monitoring. * Acceso a la configuración del Reino en WOCU-Monitoring o al entorno donde se definan sus variables de configuración. La configuración se basa en tres elementos principales: - La creación de un **Space** en Elastic asociado al Reino. - La definición de un **rol personalizado** con permisos limitados al Reino. - La generación de una **API Key** vinculada a dichos permisos. A continuación se redacta el proceso completo: **1. Acceso al proyecto de Observabilidad en Elastic** Acceda a la interfaz de `Elasticsearch `_ y seleccione el **Serveless Project** de observabilidad configurado por su administrador o owner de Elastic. .. image:: ../images/operation/serveless_project_71.png :align: center .. Attention:: Verifique que se encuentra en el entorno correcto antes de crear espacios, roles o claves API. Esta comprobación es importante para evitar que las credenciales se generen en un proyecto distinto al que utilizará WOCU-Monitoring **2. Creación del Space asociado al Reino** El primer paso consiste en crear un **Space** en Elastic para el Reino de Observabilidad. Para ello: * Despliegue el menú lateral **Admin and settings** > **Spaces**. * Cree un nuevo espacio a través de la opción **+ Create Space**. .. image:: ../images/operation/create_space_71.png :align: center * A continuación, configure los siguientes campos en el formulario de creación: .. image:: ../images/operation/new_space_71.png :align: center **Name**: indique un nombre representativo para el Reino (e. g. ``central_1``). Es obligatorio que el nombre del espacio coincida con el nombre funcional del Reino. **Initials**: indique un termino breve que aparecerá dentro del recuadro del avatar del *Space* (e. g. ``C1``). **Cross-project search**: seleccione la opción ``This project``, para que las búsquedas se limiten únicamente a los datos del proyecto actual. Es la opción recomendada para mantener el foco en un solo entorno y optimizar el rendimiento de las consultas. Si el espacio no es su entorno de trabajo actual, haga clic en **Switch to this space**. Al hacerlo, la sesión de Kibana se redirigirá automáticamente hacia el nuevo espacio (``central_1``). .. image:: ../images/operation/swith_space_71.png :align: center **3. Creación del rol personalizado** Para evitar el uso de credenciales con permisos globales, debe crearse un rol personalizado asociado al Reino. Este rol actúa como referencia de permisos y permite delimitar el acceso únicamente a los recursos necesarios, como los índices de métricas, eventos o logs del Reino y su Space correspondiente en Kibana. Para ello: * Despliegue el menú lateral **Admin and settings** > **Custom Roles**. * Cree un nuevo role a través de la opción **+ Create role**. .. image:: ../images/operation/create_role_71.png :align: center * En la parte superior del formulario de creación deben configurarse los datos identificativos del rol: .. image:: ../images/operation/create_role_form_71.png :align: center **Role name**: nombre único del rol. No podrá modificarse una vez creado. Se recomienda utilizar una nomenclatura homogénea que incluya el identificador del Reino (e. g. ``central_1``). **Role description**: descripción funcional del rol. Este campo ayuda a identificar el propósito del rol dentro de Elastic (e. g. ``Kibana base user role for central_1``). **Data Layer**: en esta sección se definen los permisos de acceso a los datos almacenados en Elastic. **Index privileges**: se deben indicar los índices asociados al Reino. Estos índices delimitan los datos que el rol podrá consultar. Para un Reino con identificador ``central_1``, los índices a configurar serían: .. code-block:: metrics-wocu-central_1 monitoring-events-central_1 syslogs-central_1 traps-central_1 **Privileges**: debe asignarse el permiso: ``read``. Este permiso permite consultar la información de métricas, eventos y logs del Reino, sin conceder capacidad de escritura ni administración sobre los índices. **Grant access to specific fields** y **Grant read privileges to specific documents** deben permanecer desactivadas, salvo que se necesite aplicar un filtrado adicional por campos o documentos. **Application Layer**: en esta sección se define a qué *Space* y funcionalidades tendrá acceso el rol dentro de Kibana. **Spaces**: seleccione únicamente el *Space* asociado al Reino (e. g. ``central_1``). No se recomienda asignar el rol a todos los *Spaces*, ya que rompería el aislamiento entre Reinos. **Privileges**: seleccione la opción **Custom** para asignar únicamente los permisos necesarios. Como criterio general, el rol debe permitir el acceso de lectura a las funcionalidades necesarias para consultar la información de observabilidad del Reino, evitando permisos de administración. * Una vez configurados los campos anteriores, pulse **Create role** para guardar el nuevo rol. **4. Creación de la API Key** La **API Key** permite que WOCU-Monitoring y sus componentes se conecten de forma segura a Elastic para leer y escribir datos de observabilidad del Reino, como métricas, eventos, syslogs o traps. Su uso evita recurrir a credenciales globales o usuarios personales, y permite limitar el acceso únicamente a los índices y recursos asociados al Reino. Para ello: * Despliegue el menú lateral **Admin and settings** > **API KEYS**. * Cree una nueva API a través de la opción **+ Create API key**. .. image:: ../images/operation/create_api_71.png :align: center * En el formulario de creación, configure los campos: .. image:: ../images/operation/create_api_form_71.png :align: center :scale: 80% **Name**: nombre descriptivo de la nueva API (e. g. ``central_1``). Se recomienda utilizar una nomenclatura homogénea que incluya el identificador del Reino. **Control security privileges**: desde esta opción se limita el alcance de la clave. Al habilitarla, Elastic mostrará un editor en formato JSON desde el que es posible definir los privilegios concretos que tendrá la API Key. * Copie el siguiente código JSON en el editor para asignar los permisos de escritura y definir los índices de su Reino. .. attention:: Debe sustituir [nombre del reino] por el identificador real de su Reino. :: { "role-read-write-[nombre del reino]": { "cluster": [ "all" ], "indices": [ { "names": [ "monitoring-events-[nombre del reino]", "metrics-wocu-[nombre del reino]", "syslog-[nombre del reino]", "flexwan-[nombre del reino]", "traps-[nombre del reino]", "import_tool_cache_conf_hosts", "import_tool_cache_conf_hostgroups", "import_tool_cache_realms_info", ".ml-anomalies-wocu-ml-job-[nombre del reino]", "*[nombre del reino]*", "task_summaries", "livestatus_evolution" ], "privileges": [ "read", "write", "create_index", "view_index_metadata" ], "allow_restricted_indices": false }, { "names": [ ".kibana-observability-ai-assistant-conversations*" ], "privileges": [ "all" ], "allow_restricted_indices": false } ], "applications": [ { "application": "kibana-.kibana", "privileges": [ "feature_observabilityAIAssistant.all", "feature_actions.all" ], "resources": [ "*" ] } ], "run_as": [], "metadata": {}, "transient_metadata": { "enabled": true } } } Una vez editado el JSON, haga clic en el botón **Create API KEY**. **5. Obtención del Token** * La plataforma generará la clave en tres formatos de salida: Encoded, Beats y Logstash. * En esta ocasión, seleccione y copie el token en formato **Encoded** y guarde este valor temporalmente, ya que se utilizará en la siguinte sección, específicamente en la varible ``ELASTICSEARCH_API_KEY``. .. image:: ../images/operation/token-api_71.png :align: center :scale: 80% * Opcionalmente, también puede seleccionar los formatos **Beats** y **Logstash**, necesarios para la configuración de Fluentd y TD-Agent. **6. Configuración de Variables del Reino** Una vez obtenidos los datos de Elastic, acceda al fichero de configuración del Reino e introduzca las siguientes variables de entorno obligatorias: .. Important:: Las variables deben validarse con la configuración utilizada por ingeniería en cada despliegue. **Variables de Servidor e Ingesta (Sección: Monitoring)** * ``LOGGER_SERVER``: Endpoint público de Elasticsearch asociado al proyecto. :: LOGGER SERVER="endpoint" El valor de la variable se obtiene desde la consola de Elastic, accediendo al proyecto **Serverless de Observabilidad** correspondiente. La ruta de acceso es la siguiente: **Serverless projects > [nombre_del_proyecto] > Overview** A continuación, localice el bloque **Application endpoints, cluster and component IDs** y seleccione la opción **Elasticsearch**. .. image:: ../images/operation/public_endpoint_71.png :align: center * ``METRIC_SERVER``: Servidor de métricas (mismo valor que en ``LOGGER_SERVER``). :: METRIC_SERVER="endpoint" * ``ELASTICSEARCH_API_KEY``: Clave de autenticación copiada en formato **Encoded** (Paso 5. Obtención del Token). Conecta el sistema para lectura/escritura de métricas, eventos y notificaciones. :: ELASTICSEARCH_API_KEY="clave de autenticación" **Otras Variables de Configuración Obligatorias** * ``ELASTICSEARCH_SERVERLESS_MODE``: Modo obligatorio para entornos Serverless (siempre activo). :: ELASTICSEARCH_SERVERLESS_MODE="True" * ``GCONF_ENABLED``: Activa el servicio de **Gconf** (siempre activo). :: GCONF_ENABLED="True" * ``GCONF_SERVICES_HOST``: URL de acceso a la máquina de configuración proporcionada. Debe indicarse incluyendo el protocolo, la dirección IP y el puerto correspondiente. :: GCONF_SERVICES_HOST="https://[IP]:[PORT]" * ``MYSQL_SERVER``: IP de la base de datos central provista. :: MYSQL_SERVER="IP" * ``MYSQL_USER``: Añade el nombre del reino según corresponda. :: MYSQL_USER="nombre_reino" * ``MYSQL_ROOT_PASSWORD``: Contraseña de acceso a la base de datos (**mismo nombre del reino**). :: MYSQL_ROOT_PASSWORD="nombre_reino" .. Note:: Para infraestructuras distribuidas también se requiere la autenticación de ProxySQL. **7. Creación de un Reino de observabilidad en WOCU-Monitoring** Finalmente, el módulo de Observabilidad se habilita desde el propio :ref:`formulario de creación de un Reino `, configurado con backend **Elasticsearch**. Para crear un nuevo Reino estándar de monitorización, acceda al menú :ref:`settings` y haga clic en el botón :guilabel:`+ New Realm`, tal y como se muestra en la siguiente imagen: .. image:: ../images/operation/2_093c_aggregator_home-view_add-new-realm_home-empty_0-48.png :align: center Esta acción abrirá el formulario de creación del Reino. A continuación, deberán configurarse los campos descritos en los siguientes apartados: .. image:: ../images/operation/add_new_realm.png :align: center **Display Name**: añada el nombre del Reino (e. g. ``central_1``). **Import Tool**: para añadir un primer Import Tool, accione la función :guilabel:`+` anexa al campo. .. image:: ../images/operation/add_realm_import-tool_script.png :align: center :scale: 80% Los campos que deben modificarse para dar de alta un nuevo Import Tool son: **Name**: añada el nombre del Reino (e. g. ``central_1``). **Import tool host**: dirección IP o nombre del host donde se aloja el Import Tool (e. g. ``10.57.20.73``). **Import tool port**: puerto de conexión a la API del Import Tool (e. g. ``50280``). **Import tool API Protocol**: protocolo utilizado por WOCU-Monitoring para conectarse a la API del Import Tool. Seleccione en el desplegable la opción ``http``. **API Optimization**: marque la casilla para habilitar la optimización de las consultas realizadas contra la API del Import Tool. A continuación: * Confirme los cambios efectuados mediante el botón :guilabel:`Create`. * Seleccione el nuevo Import Tool en el desplegable para continuar. .. image:: ../images/operation/select_new_import_tool.png :align: center **Monitoring Host**: dirección IP o nombre de la máquina donde se aloja la base de datos (e. g. ``10.57.20.73``). **Monitoring port**: puerto de red del servidor. Por defecto, ``50000``. **Backend technology**: seleccione la opción ``Elasticsearch``. **Elasticsearch backend**: en este nuevo selector puede dar de alta un nuevo backend accionando la función :guilabel:`+`. Los campos que deben modificarse son: .. image:: ../images/operation/add_new_backend.png :align: center **Backend name**: nombre identificativo del backend de Elasticsearch. Debe ser un valor único y fácilmente reconocible por el usuario (e. g. ``elasticsearch9-produccion``). **Elasticsearch URL**: URL de los nodos de Elasticsearch 9 a los que se conectará WOCU-Monitoring. En despliegues gestionados desde la consola de Elastic, el valor debe obtenerse accediendo al proyecto **Serverless de Observabilidad** correspondiente. La ruta de acceso es la siguiente: **Serverless projects > [nombre_del_proyecto] > Overview** A continuación, localice el bloque **Application endpoints, cluster and component IDs**, seleccione la opción **Elasticsearch** y copie el valor mostrado en **Public endpoint**. Este endpoint será el valor que deberá configurarse en el campo **Elasticsearch URL**. .. image:: ../images/operation/public_endpoint_71.png :align: center **API Key**: esta API Key se genera desde la propia herramienta de Elastic. Aquí debe introducir la clave generada en el paso **3. Obtención del Token** de este mismo proceso, correspondiente a la API Key propia del Reino. A continuación: * Confirme los cambios efectuados mediante el botón :guilabel:`Create`. * Seleccione el nuevo backend en el desplegable para continuar. .. image:: ../images/operation/select_new_backend.png :align: center **Metric Index**: añada el nombre del Reino (e. g. ``central_1``). El sistema añadirá internamente el prefijo correspondiente al índice de métricas. **Monitoring Events Index**: añada el nombre del Reino (e. g. ``central_1``). El sistema añadirá internamente el prefijo correspondiente al índice de eventos de monitorización. **Observability**: marque esta casilla para habilitar el módulo de observabilidad en este nuevo Reino. **Host Name**: añada el nombre del Reino (e. g. ``central_1``). Una vez introducidos todos los datos requeridos, guarde la configuración del formulario mediante el botón :guilabel:`Add Realm`. **8. Habilitar observabilidad en un Reino ya existente** Se puede dar el caso, en que se quiera habilitar el módulo de observabilidad en un Reino existente. Para ello, haga clic en la opción **Configuration**, accesible desde el selector :ref:`settings`. Esta acción abrirá una nueva ventana del navegador con acceso al módulo avanzado **WM Console Admin**, desde donde se gestionan múltiples funciones avanzadas de WOCU-Monitoring. .. image:: ../images/operation/access_conf_71.png :align: center A continuación, seleccione la opción **Realm** en el menú lateral izquierdo y acceda al Reino que desea modificar. Una vez dentro de su perfil de edición, active la casilla **Observability**. Por último, guarde los cambios mediante el botón **Save** y regrese al Reino para comenzar a utilizar las funcionalidades del módulo. .. image:: ../images/operation/edit_conf_realm_71.png :align: center **¡Enhorabuena!** La configuración inicial del módulo **Observability** se ha completado correctamente. .. _conf_observability_script: Configuración mediante un Script -------------------------------- .. sidebar:: Requisitos previos * El administrador del entorno Cloud debe disponer de una **API Key maestra** de Elastic con permisos suficientes para crear y configurar los recursos necesarios del Reino de Observabilidad. * La variable de entorno correspondiente al **Agregador** debe estar previamente configurada, ya que será utilizada durante el proceso para aplicar la configuración del Reino. La configuración mediante script permite automatizar la creación del Reino de Observabilidad en el Cloud de Elastic, reduciendo la intervención manual y facilitando una configuración homogénea entre distintos entornos. A continuación se redacta el proceso completo: **1. Solicitud de la API Key maestra** Antes de ejecutar el script, solicite al administrador del entorno Cloud o superadmin la **API Key maestra** de Elastic. Esta clave se genera una única vez y, por defecto, debe existir previamente en el entorno. La **API Key maestra** dispone de permisos suficientes para crear y configurar los recursos necesarios del Reino de Observabilidad en Elastic. Una vez obtenida esta clave, ya se dispone de la credencial necesaria para continuar con el proceso de configuración mediante script. .. Important:: La **API Key maestra** debe utilizarse únicamente para tareas de provisión o configuración inicial. No debe emplearse como credencial operativa del Reino, ya que dispone de permisos globales sobre el entorno. **2. Creación de la API Key del Reino** Una vez disponible la **API Key maestra**, debe crearse una **API Key secundaria** asociada al Reino de Observabilidad. Esta será la clave operativa que utilizará el Reino, con permisos acotados mediante una estructura JSON de privilegios. Para crearla, siga los siguientes pasos: - Acceda a la interfaz de `Elasticsearch `_ y seleccione el **Serveless Project** de observabilidad configurado por su administrador o owner de Elastic. .. image:: ../images/operation/serveless_project_71.png :align: center .. Attention:: Verifique que se encuentra en el entorno correcto antes de crear espacios, roles o claves API. Esta comprobación es importante para evitar que las credenciales se generen en un proyecto distinto al que utilizará WOCU-Monitoring - Acceda al Space **by default**. .. image:: ../images/operation/space_by_default.png :align: center - Navegue hasta menú lateral **Admin and settings** > **API KEYS** y cree una nueva API Key. .. image:: ../images/operation/create_api_71.png :align: center - En el formulario de creación, configure los campos: .. image:: ../images/operation/create_api_form_71.png :align: center :scale: 80% * **Name**: nombre descriptivo de la nueva API (e. g. ``central_1``). Se recomienda utilizar el mismo identificador que el del Reino. * **Control security privileges**: desde esta opción se limita el alcance de la clave. Al habilitarla, Elastic mostrará un editor en formato JSON desde el que es posible definir los privilegios concretos que tendrá la API Key. * Copie el siguiente código JSON en el editor para asignar los permisos de escritura y definir los índices de su Reino. .. attention:: Debe sustituir [nombre del reino] por el identificador real de su Reino. :: { "role-read-write-[nombre del reino]": { "cluster": [ "all" ], "indices": [ { "names": [ "monitoring-events-[nombre del reino]", "metrics-wocu-[nombre del reino]", "syslog-[nombre del reino]", "flexwan-[nombre del reino]", "traps-[nombre del reino]", "import_tool_cache_conf_hosts", "import_tool_cache_conf_hostgroups", "import_tool_cache_realms_info", ".ml-anomalies-wocu-ml-job-[nombre del reino]", "*[nombre del reino]*", "task_summaries", "livestatus_evolution" ], "privileges": [ "read", "write", "create_index", "view_index_metadata" ], "allow_restricted_indices": false }, { "names": [ ".kibana-observability-ai-assistant-conversations*" ], "privileges": [ "all" ], "allow_restricted_indices": false } ], "applications": [ { "application": "kibana-.kibana", "privileges": [ "feature_observabilityAIAssistant.all", "feature_actions.all" ], "resources": [ "*" ] } ], "run_as": [], "metadata": {}, "transient_metadata": { "enabled": true } } } - Pulse **Create API Key** para generar la clave. **3. Obtención del Token** - La plataforma generará la clave en tres formatos de salida: * **Encoded** * **Beats** * **Logstash** .. Important:: Es imprescindible guardar la clave en los tres formatos disponibles. Estos valores solo se muestran en el momento de creación de la clave. Si no se guardan en ese instante, no podrán recuperarse posteriormente y será necesario generar una nueva API Key. .. image:: ../images/operation/token-api_71.png :align: center :scale: 80% **4. Creación de un Reino en WOCU-Monitoring y asociación de la API Key** Finalmente, el módulo de Observabilidad se habilita desde el propio :ref:`formulario de creación de un Reino `, configurado con backend **Elasticsearch**. Para crear un nuevo Reino estándar de monitorización, acceda al menú :ref:`settings` y haga clic en el botón :guilabel:`+ New Realm`, tal y como se muestra en la siguiente imagen: .. image:: ../images/operation/2_093c_aggregator_home-view_add-new-realm_home-empty_0-48.png :align: center Esta acción abrirá el formulario de creación del Reino. A continuación, deberán configurarse los campos descritos en los siguientes apartados: .. image:: ../images/operation/add_new_realm.png :align: center **Display Name**: añada el nombre del Reino (e. g. ``central_1``). **Import Tool**: para añadir un primer Import Tool, accione la función :guilabel:`+` anexa al campo. .. image:: ../images/operation/add_realm_import-tool_script.png :align: center :scale: 80% Los campos que deben modificarse para dar de alta un nuevo Import Tool son: **Name**: añada el nombre del Reino (e. g. ``central_1``). **Import tool host**: dirección IP o nombre del host donde se aloja el Import Tool (e. g. ``10.57.20.73``). **Import tool port**: puerto de conexión a la API del Import Tool (e. g. ``50280``). **Import tool API Protocol**: protocolo utilizado por WOCU-Monitoring para conectarse a la API del Import Tool. Seleccione en el desplegable la opción ``http``. **API Optimization**: marque la casilla para habilitar la optimización de las consultas realizadas contra la API del Import Tool. A continuación: * Confirme los cambios efectuados mediante el botón :guilabel:`Create`. * Seleccione el nuevo Import Tool en el desplegable para continuar. .. image:: ../images/operation/select_new_import_tool.png :align: center **Monitoring Host**: dirección IP o nombre de la máquina donde se aloja la base de datos (e. g. ``10.57.20.73``). **Monitoring port**: puerto de red del servidor. Por defecto, ``50000``. **Backend technology**: seleccione la opción ``Elasticsearch``. **Elasticsearch backend**: para añadir un primer backend, accione la función :guilabel:`+` anexa al campo. Los campos que deben modificarse son: .. image:: ../images/operation/add_new_backend.png :align: center **Backend name**: nombre identificativo del backend de Elasticsearch. Debe ser un valor único y fácilmente reconocible por el usuario (e. g. ``elasticsearch9-produccion``). **Elasticsearch URL**: URL de los nodos de Elasticsearch 9 a los que se conectará WOCU-Monitoring. En despliegues gestionados desde la consola de Elastic, el valor debe obtenerse accediendo al proyecto **Serverless de Observabilidad** correspondiente. La ruta de acceso es la siguiente: ``Serverless > [nombre_del_proyecto] > Overview`` A continuación, localice el bloque **Application endpoints, cluster and component IDs**, seleccione la opción **Elasticsearch** y copie el valor mostrado en **Public endpoint**. Este endpoint será el valor que deberá configurarse en el campo **Elasticsearch URL**. .. image:: ../images/operation/public_endpoint_71.png :align: center **API Key**: esta API Key se genera desde la propia herramienta de Elastic. Aquí debe introducir la clave generada en el paso **3. Obtención del Token** de este mismo proceso, correspondiente a la API Key propia del Reino. A continuación: * Confirme los cambios efectuados mediante el botón :guilabel:`Create`. * Seleccione el nuevo backend en el desplegable para continuar. .. image:: ../images/operation/select_new_backend.png :align: center **Metric Index**: añada el nombre del Reino (e. g. ``central_1``). El sistema añadirá internamente el prefijo correspondiente al índice de métricas. **Monitoring Events Index**: añada el nombre del Reino (e. g. ``central_1``). El sistema añadirá internamente el prefijo correspondiente al índice de eventos de monitorización. **Observability**: marque esta casilla para habilitar el módulo de observabilidad en este nuevo Reino. **Host Name**: añada el nombre del Reino (e. g. ``central_1``). Una vez introducidos todos los datos requeridos, guarde la configuración del formulario mediante el botón :guilabel:`Add Realm`. **5. Ejecución del script desde la consola del agregador** El siguiente paso consiste en ejecutar el script de configuración desde la consola del **agregador**. Este script debe estar disponible en el entorno y utilizará las variables de entorno previamente configuradas, entre ellas la correspondiente a la **API Key maestra**. Esta API dispone de permisos amplios sobre el entorno de Elastic, por lo que no debe utilizarse como credencial operativa para todos los Reinos. Su uso en este procedimiento es excepcional y está limitado a tareas de provisión inicial, ya que permite automatizar la creación y configuración de los recursos necesarios en el Cloud de Elastic. El objetivo del script es preparar el Reino de Observabilidad en Elastic, evitando una configuración manual completa y facilitando una provisión más rápida y homogénea. Una vez finalizado el proceso, cada Reino deberá operar con su propia **API Key específica**, con permisos acotados a sus índices, Space y recursos asociados. Para ejecutar el script, utilice el siguiente comando desde la consola del agregador: :: /opt/wocu/embedded/bin/python3 /opt/wocu/embedded/wocu/wocu-aggregator/wocu-aggregator/manage.py configure_kibana_realm_spaces Donde se lee ```` debe sustituirse por el identificador real del Reino que se desea configurar. Ejemplo: :: /opt/wocu/embedded/bin/python3 /opt/wocu/embedded/wocu/wocu-aggregator/wocu-aggregator/manage.py configure_kibana_realm_spaces central_1 .. Important:: La **API Key maestra** debe utilizarse únicamente para este tipo de tareas de configuración inicial. No debe reutilizarse como clave operativa de los Reinos, ya que dispone de permisos globales sobre el entorno de Elastic. **¡Enhorabuena!** La configuración inicial del módulo **Observability** se ha completado correctamente. Vista Observability: IA Assistant ================================= WOCU-Monitoring integra el asistente **AI Assistant**, una funcionalidad de Inteligencia Artificial incluida dentro del módulo **Observability** y orientada a agilizar el análisis y diagnóstico de incidencias sobre los elementos monitorizados, como **Dispositivos**, **Servicios** y **Problems**. .. Important:: Este asistente se apoya en las capacidades de **Elastic Observability**, por lo que permite realizar consultas en lenguaje natural sobre la información disponible en Elastic, incluyendo **métricas**, **eventos**, **alertas** y **logs** asociados a los activos del Reino. .. image:: ../images/operation/view_observaility_71.png :align: center Por lo tanto, la pestaña **AI Assistant** ofrece un chat para que el usuario converse e interactue con el Asistente de IA, utilizando lenguaje natural para consultar alertas métricas, eventos y logs asociados a activos de monitorización de forma ágil y centralizada. Componentes ----------- Sus elementos principales son: **Historial de conversaciones**: barra lateral con las conversaciones del usuario, agrupadas por fecha. Desde esta área es posible retomar análisis anteriores, iniciar una nueva conversación y renombrar o eliminar conversaciones. .. image:: ../images/operation/AI_assistant_chat_71.png :align: center :scale: 70% **Selector de un conector**: desplegable que permite seleccionar el conector de IA que será utilizado por el asistente para procesar la consulta. Cada conector representa un modelo o backend de Inteligencia Artificial previamente configurado en Elastic. .. image:: ../images/operation/AI_assistant_selector_71.png :align: center :scale: 70% **Área de conversación**: zona principal de la vista donde se muestran los mensajes intercambiados entre el usuario y el asistente. En esta área se presentan tanto las consultas realizadas como las respuestas generadas por la IA. .. image:: ../images/operation/AI_assistant_chat_detail_71.png :align: center :scale: 70% **Campo de consulta**: caja de texto desde la que el usuario introduce la pregunta o instrucción en lenguaje natural. La consulta puede estar relacionada con eventos recientes, métricas de rendimiento, alertas activas, logs o cualquier otra información de observabilidad disponible para el Reino. .. image:: ../images/operation/AI_assistant_chat_question_71.png :align: center :scale: 70% **Botón Send**: permite enviar la consulta al asistente. También puede utilizarse la combinación de teclas indicada en la propia interfaz para enviar el mensaje de forma rápida. Funcionamiento -------------- El funcionamiento de la vista **AI Assistant** es muy sencilla y se basa en una interacción tipo chat entre el usuario y el Asistente de IA. - Para realizar una consulta, el usuario debe escribir su pregunta o instrucción en el **campo de consulta** situado en la parte inferior de la vista. Esta consulta puede estar relacionada con métricas, eventos, alertas, logs o cualquier otra información de observabilidad disponible para el Reino. - Una vez redactada la consulta, es obligatorio pulsar el botón **Send** para enviarla al Asistente. - Tras el envío, el Asistente procesa la solicitud utilizando el conector seleccionado y devuelve la respuesta en el **área de conversación**. - En esta zona se muestran de forma secuencial tanto las preguntas realizadas por el usuario como las respuestas generadas por la IA. - Esta conversación se registra automáticamente en el **historial de conversaciones**, ubicado en el panel lateral de la vista, permitiendo al usuario retomarla posteriormente y continuar el análisis desde el punto en el que quedó. .. _anomalies_view: Vista de Anomalías de un Dispositivo ==================================== .. attention:: La pestaña **Anomalies** estará disponible cuando el Reino tenga habilitado el Módulo :ref:`observability_module` y exista configuración de análisis de anomalías para las métricas del Host. La vista **Anomalies** permite consultar las anomalías detectadas sobre las métricas de un Host monitorizado en WOCU-Monitoring. Para ello, combina filtros de consulta, una gráfica de evolución de la métrica y una tabla con el detalle de las anomalías detectadas. Esta funcionalidad forma parte del módulo **Observability** y se apoya en las capacidades de análisis de **Elastic Observability**. A partir de los datos almacenados en Elastic, se analizan las series temporales de las métricas monitorizadas para identificar valores que se desvían del comportamiento habitual esperado. .. Note:: La detección de anomalías no se basa únicamente en umbrales estáticos, sino en la comparación entre el valor observado y el patrón de comportamiento aprendido a partir de los datos históricos. De este modo, la vista ayuda a identificar cambios inesperados, desviaciones relevantes o comportamientos inusuales que pueden requerir revisión operativa. Para acceder a la vista de anomalías de un Host: #. Acceda al Reino correspondiente. #. Navegue a **Assets > Hosts**. #. Seleccione el Host que desea analizar. #. Dentro de la :ref:`vista de detalle del Host`, pulse la pestaña **Anomalies**. .. image:: ../images/operation/anomalies_view_71.png :align: center Componentes de la vista ----------------------- La vista **Anomalies** se compone de varios elementos orientados a filtrar, visualizar y consultar las anomalías detectadas. Filtros de consulta ^^^^^^^^^^^^^^^^^^^ En la parte superior de la vista se muestran los filtros que delimitan el análisis: **Date Range** Permite definir el intervalo temporal sobre el que se desea realizar la consulta. El selector ofrece varios rangos predefinidos: * **4 hours**, para consultar las anomalías detectadas durante las últimas cuatro horas. * **1 day**, para analizar el comportamiento registrado durante el último día. * **1 week**, para ampliar la consulta a la última semana. * **1 month**, para revisar un periodo mensual. * **Custom Range**, para seleccionar manualmente una fecha y hora de inicio y una fecha y hora de fin. Cuando se selecciona **Custom Range**, se abre un calendario desde el que el usuario puede definir el intervalo exacto de análisis. Además de seleccionar los días, es posible ajustar la hora, los minutos y los segundos de inicio y fin del periodo. Para aplicar la selección, debe pulsarse el botón **Apply**. .. image:: ../images/operation/date_range_filter_71.png :align: center :scale: 80% **Services y Metrics** Permite seleccionar el contexto concreto de análisis dentro del Host, combinando el servicio y la métrica sobre los que se desea consultar la detección de anomalías. El campo **Services** muestra los servicios disponibles para el Host seleccionado. Al elegir un servicio, el campo **Metrics** se actualiza automáticamente para mostrar únicamente las métricas asociadas a dicho servicio. Una vez seleccionada la combinación de servicio y métrica, la vista consulta los datos correspondientes y actualiza tanto la gráfica de anomalías como la tabla inferior con los resultados detectados para el Host, servicio, métrica y rango temporal seleccionados. .. image:: ../images/operation/services_metrics_filter_71.png :align: center Botón de actualización ^^^^^^^^^^^^^^^^^^^^^^ El botón de actualización permite refrescar la información mostrada en la vista. Esta acción resulta útil para consultar datos recientes o comprobar si se han detectado nuevas anomalías para el Host, servicio y métrica seleccionados. .. image:: ../images/operation/update_button_71.png :align: center Gráfica Anomaly Score ^^^^^^^^^^^^^^^^^^^^^ La zona central de la vista muestra una gráfica asociada a la métrica seleccionada. Esta gráfica permite comparar el comportamiento real de la métrica con e comportamiento esperado calculado por Elastic. En la gráfica hay tres elementos distintos: * **Línea azul**: representa el valor real registrado de la métrica. * **Banda azul sombreada**: rango esperado o comportamiento típico calculado por el modelo. * **Puntos de colores**: valores reales detectados como anomalías, coloreados según su severidad o score. .. image:: ../images/operation/detail_graph_71.png :align: center :scale: 70% Existe una leyenda de **Anomaly Score** que clasifica las anomalías por rangos de severidad. Esta puntuación no representa el valor de la métrica, sino el grado de desviación respecto al comportamiento esperado. Los rangos disponibles son: .. image:: ../images/operation/anomaly_score_71.png :align: center * **0-3**: desviación mínima o sin anomalía relevante. * **3-25**: anomalía de baja severidad. * **25-50**: anomalía moderada. * **50-75**: anomalía alta. * **75-100**: anomalía crítica o muy significativa. Cuanto mayor sea el **Anomaly Score**, mayor será la relevancia de la anomalía. Por este motivo, los puntos con puntuaciones más elevadas deben revisarse con mayor prioridad. No obstante, una puntuación alta no implica necesariamente una incidencia. La anomalía debe analizarse junto con el resto de información disponible del Host, como eventos, problemas activos, alertas o cambios recientes. .. Note:: Las consultas se realizan mediante endpoints autenticados, encargados de obtener las anomalías y los datos necesarios para representar la gráfica según la combinación de Host, servicio y métrica seleccionada. Al situar el cursor sobre un punto, el tooltip muestra el detalle de esa muestra concreta de la gráfica. Véase este ejemplo: .. image:: ../images/operation/example_point.png :align: center :scale: 80% **Fecha y hora** exacta al que corresponde el punto (``16 Jun 2026 11:15``). **Actual**: Es el valor real medido de la métrica en ese instante (``4,533``). **Model lower**: Es el límite inferior del rango esperado por el modelo para ese momento (``1,595``). **Model upper**: Es el límite superior del rango esperado por el modelo para ese momento (``2,47``). En este caso, el valor real 4,533 está por encima del límite superior esperado 2,47, por eso el punto se marca como anomalía. Es decir, la métrica se comportó de forma anormalmente alta respecto a lo que el modelo consideraba normal para esa fecha y hora. Tabla de anomalías ^^^^^^^^^^^^^^^^^^ Debajo de la gráfica se muestra una tabla paginada con el detalle de las anomalías detectadas para el Host, servicio y métrica seleccionados. .. image:: ../images/operation/table_anomalies_71.png :align: center La tabla incluye las siguientes columnas: **Time** Fecha y hora en la que se detectó la anomalía. **Score** Puntuación asignada a la anomalía. Un valor más alto indica una desviación más significativa respecto al comportamiento esperado. **Actual** Valor real registrado para la métrica en ese momento. **Typical** Valor esperado o habitual calculado para esa métrica en el mismo contexto temporal. .. Note:: La comparación entre **Actual** y **Typical** permite identificar si el valor registrado se encuentra por encima o por debajo del patrón esperado. Funcionamiento e interpretación de resultados --------------------------------------------- El funcionamiento de la vista **Anomalies** se basa en la selección de un contexto de análisis para el Host monitorizado. En primer lugar, el usuario debe definir el intervalo temporal mediante el filtro **Date Range**. A continuación, debe seleccionar el **Service** del Host y la **Metric** concreta que desea analizar. A partir de esta combinación de filtros, WOCU-Monitoring consulta la información disponible en **Elastic Observability** mediante endpoints autenticados. Estos endpoints recuperan tanto las anomalías detectadas como los datos necesarios para representar la evolución de la métrica seleccionada. Los resultados se muestran en dos niveles: * Una gráfica de la métrica, donde se visualiza su evolución temporal junto con los puntos anómalos detectados. * Una tabla paginada, donde se detalla cada anomalía identificada para la combinación de Host, servicio, métrica y rango temporal seleccionados. Para interpretar correctamente los resultados, se recomienda revisar los siguientes datos: * **Time**, que indica la fecha y hora en la que se produjo la anomalía. * **Score**, que permite valorar la relevancia de la desviación detectada. * **Actual**, que muestra el valor real registrado para la métrica. * **Typical**, que muestra el valor esperado o habitual calculado por Elastic. * El servicio y la métrica seleccionados. * Los eventos, problemas o alertas registrados en el Host durante el mismo intervalo temporal. Una anomalía no implica necesariamente una incidencia, pero sí identifica un comportamiento que se desvía del patrón habitual de la métrica. Por este motivo, debe utilizarse como punto de partida para el análisis operativo y contrastarse con el resto de información disponible del Host. Acción Ask IA about a problem ============================= .. attention:: Esta acción estará disponible cuando el Reino tenga habilitado el Módulo :ref:`observability_module` y exista configuración de análisis de anomalías para las métricas del Host o servicio seleccionado. La acción **Ask AI about a problem** permite solicitar un análisis asistido por IA sobre el estado de un elemento monitorizado. Esta opción está disponible en los listados de :ref:`Hosts`, :ref:`Services` y :ref:`Problems`, dentro del menú de acciones aplicables a cada elemento. .. image:: ../images/operation/action_ask_ai_71.png :align: center Esta funcionalidad forma parte del **módulo Observability** y se apoya en las capacidades de análisis de **Elastic Observability**. La IA utiliza como base la información almacenada y procesada en Elastic, junto con el contexto operativo disponible en WOCU-Monitoring, para interpretar el estado del Host, servicio o problema seleccionado y ofrecer una explicación orientada al diagnóstico. Al ejecutar la acción, WOCU-Monitoring abre una vista contextual con un diagnóstico del elemento seleccionado. Esta vista resume el estado actual y presenta una interpretación automática de los datos disponibles. .. image:: ../images/operation/action_ask_ai_view_71.png :align: center El análisis puede incluir, entre otros apartados: - Un resumen del estado actual. - La explicación de qué está pasando. - La causa más probable del comportamiento detectado. - Información de diagnóstico y comandos recomendados. - Un siguiente paso recomendado para el operador. El diagnóstico se genera a partir de datos como el estado del Host o servicio, el último check ejecutado, la salida del plugin, el impacto de negocio y la información de observabilidad disponible en Elastic. Al final de la vista se incluye el botón **Open AI Assistant**. Al pulsarlo, el usuario es redirigido a la vista :ref:`Observability > AI Assistant`, donde el asistente se abre con la misma información de diagnóstico cargada en la conversación. .. image:: ../images/operation/ai_assistant_view_71.png :align: center Desde esta vista, el usuario puede continuar el análisis iniciado, formular preguntas adicionales sobre el problema, solicitar aclaraciones, obtener recomendaciones de actuación o profundizar en la causa probable del comportamiento detectado. Esta acción no modifica el estado del elemento monitorizado ni aplica cambios sobre la monitorización. Su finalidad es ofrecer una ayuda contextual al diagnóstico y facilitar la interpretación de los datos observados mediante las capacidades de Elastic Observability integradas en WOCU-Monitoring.