Visualización de datos de Azure Data Explorer en Kibana con el conector de código abierto K2Bridge

K2Bridge (Kibana-Kusto Bridge) permite usar Azure Data Explorer como origen de datos y visualizar dichos datos en Kibana. K2Bridge es una aplicación en contenedores de código abierto. Actúa como un proxy entre una instancia de Kibana y un clúster de Azure Data Explorer. En este artículo se describe cómo usar K2Bridge para crear esa conexión.

K2Bridge traduce las consultas de Kibana al lenguaje de consulta de Kusto (KQL) y devuelve a Kibana los resultados de Azure Data Explorer.

Conexión de Kibana con Azure Data Explorer mediante K2Bridge.

K2Bridge admite las pestañas Discover (Detectar), Visualize (Visualize) y Dashboard (Panel) de Kibana.

Con la pestaña Discover (Detectar) puede:

  • Buscar y explorar los datos.
  • Filtrar los resultados.
  • Agregar o quitar campos en la cuadrícula de resultados.
  • Ver el contenido del registro.
  • Guardar y compartir búsquedas.

Con la pestaña Visualize (Visualizar) puede:

  • Crear visualizaciones como: gráficos de barras, gráficos circulares, tablas de datos, mapas térmicos, etc.
  • Guardar una visualización.

Con la pestaña Dashboard (Panel) puede:

  • Crear paneles mediante visualizaciones nuevas o guardadas.
  • Guardar un panel.

En la siguiente imagen se muestra una instancia de Kibana enlazada a Azure Data Explorer mediante K2Bridge. La experiencia de usuario en Kibana no cambia.

Página de Kibana enlazada a Azure Data Explorer.

Prerrequisitos

Para poder visualizar datos de Azure Data Explorer en Kibana, debe tener a punto lo siguiente:

  • Suscripción a Azure. Cree una cuenta de Azure gratuita.
  • Un clúster y una base de datos de Azure Data Explorer. Necesitará la dirección URL del clúster y el nombre de la base de datos.
  • Helm V3, el administrador de paquetes de Kubernetes.
  • Clúster de Azure Kubernetes Service (AKS) o cualquier otro clúster de Kubernetes. Use la versión 1.21.2 o posterior, con un mínimo de tres nodos de Azure Kubernetes Service. Se ha probado y comprobado la versión 1.21.2. Si necesita un clúster de AKS, consulte los artículos en los que se explica cómo implementar un clúster de AKS mediante la CLI de Azure o mediante Azure Portal.
  • Una entidad de servicio Microsoft Entra autorizada para ver los datos de Azure Data Explorer, incluido el identificador de cliente y el secreto de cliente. Como alternativa, puede usar una identidad administrada asignada por el sistema.

Si decide usar una entidad de servicio de Microsoft Entra, deberá crear una entidad de servicio Microsoft Entra. Para la instalación, necesitará el valor de ClientID y un secreto. Se recomienda usar una entidad de servicio con permiso de visor, no es preciso que tenga permisos de nivel superior. Para asignar permisos, consulte Administración de permisos de base de datos en el Azure Portal o uso de comandos de administración para administrar roles de seguridad de base de datos.

Si decide usar una identidad asignada por el sistema, deberá obtener el clientID de identidad administrada del grupo de agentes (ubicado en el grupo de recursos "[MC_xxxx]" generado).

Ejecución de K2Bridge en Azure Kubernetes Service (AKS)

De forma predeterminada, el gráfico de Helm de K2Bridge hace referencia a una imagen disponible públicamente ubicada en el Registro de contenedor de Microsoft (MCR). MCR no requiere credenciales.

  1. Descargue los gráficos de Helm necesarios.

  2. Agregue la dependencia Elasticsearch a Helm. La dependencia es necesaria porque K2Bridge utiliza una pequeña instancia interna de Elasticsearch. La instancia atiende solicitudes relacionadas con los metadatos, como las consultas de patrones de índice y las consultas guardadas. Esta instancia interna no guarda datos empresariales y se puede considerar un detalle de implementación.

    1. Para agregar la dependencia de Elasticsearch a Helm, ejecute estos comandos:

      helm repo add elastic https://helm.elastic.co
      helm repo update
      
    2. Para obtener el gráfico de K2Bridge del directorio de gráficos del repositorio de GitHub realice estas acciones:

      1. Clonar el repositorio de GitHub.

      2. Ir al directorio raíz del repositorio de K2Bridge.

      3. Ejecute este comando:

        helm dependency update charts/k2bridge
        
  3. Implemente K2Bridge.

    1. Establezca las variables en los valores correctos para su entorno.

      ADX_URL=[YOUR_ADX_CLUSTER_URL] #For example, https://mycluster.westeurope.kusto.windows.net
      ADX_DATABASE=[YOUR_ADX_DATABASE_NAME]
      ADX_CLIENT_ID=[SERVICE_PRINCIPAL_CLIENT_ID]
      ADX_CLIENT_SECRET=[SERVICE_PRINCIPAL_CLIENT_SECRET]
      ADX_TENANT_ID=[SERVICE_PRINCIPAL_TENANT_ID]
      

      Nota

      Cuando se usa una identidad administrada, el valor de ADX_CLIENT_ID es el identificador de cliente de la identidad administrada que se encuentra en el grupo de recursos "[MC_xxxx]" generado. Para obtener más información, consulte Grupo de recursos MC_. El ADX_SECRET_ID solo es necesario si usa una entidad de servicio de Microsoft Entra.

    2. De forma opción, habilite la telemetría de Application Insights. Si es la primera vez que usa Azure Application Insights, cree un recurso de Application Insights. Copie la clave de instrumentación en una variable.

      APPLICATION_INSIGHTS_KEY=[INSTRUMENTATION_KEY]
      COLLECT_TELEMETRY=true
      
    3. Instale el gráfico de K2Bridge. Las visualizaciones y paneles solo se admiten con la versión 7.10 de Kibana. Las etiquetas de imagen más recientes son: 6.8_latest y 7.16_latest, que admiten Kibana 6.8 y Kibana 7.10, respectivamente. La imagen de "7.16_latest" admite OSS de Kibana 7.10.2 y su instancia interna de Elasticsearch es 7.16.2.

      Si se usó una entidad de servicio Microsoft Entra:

      helm install k2bridge charts/k2bridge -n k2bridge --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set settings.aadClientId="$ADX_CLIENT_ID" --set settings.aadClientSecret="$ADX_CLIENT_SECRET" --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=6.8_latest/7.16_latest] 
      [--set image.repository=$REPOSITORY_NAME/$CONTAINER_NAME] 
      [--set privateRegistry="$IMAGE_PULL_SECRET_NAME"] [--set settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      O bien, si se usó la identidad administrada:

      helm install k2bridge charts/k2bridge -n k2bridge --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set       settings.aadClientId="$ADX_CLIENT_ID" --set settings.useManagedIdentity=true --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=7.16_latest] [--set  settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      En Configuration (Configuración) puede encontrar el conjunto completo de opciones de configuración.

    4. La salida del comando anterior sugiere el siguiente comando de Helm para implementar Kibana. Opcionalmente, ejecute este comando:

      helm install kibana elastic/kibana -n k2bridge --set image=docker.elastic.co/kibana/kibana-oss --set imageTag=7.10.2 --set elasticsearchHosts=http://k2bridge:8080
      
    5. Use el reenvío de puertos para acceder a Kibana en localhost.

      kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
      
    6. Para conectarse a Kibana, use la siguiente URL http://127.0.0.1:5601.

    7. Exponga Kibana a los usuarios. Dispone de varios métodos para hacerlo. El mejor método dependerá en gran medida del caso de uso.

      Por ejemplo, puede exponer el servicio como un servicio de Load Balancer. Para ello, agregue el parámetro --set service.type=LoadBalancer al comando install de Helm de Kibana anterior.

      Luego, ejecute este comando:

      kubectl get service -w -n k2bridge
      

      El resultado debe ser similar al siguiente:

      NAME            TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
      kibana-kibana   LoadBalancer   xx.xx.xx.xx    <pending>     5601:30128/TCP   4m24s
      

      Después, puede utilizar el valor de EXTERNAL-IP generado que aparece. Úselo para acceder a Kibana abriendo un explorador y yendo a <EXTERNAL-IP>:5601.

  4. Configure patrones de índice para acceder a sus datos.

    En una nueva instancia de Kibana:

    1. Abra Kibana.
    2. Vaya a Management (Administración).
    3. Seleccione Index Patterns (Patrones de índice).
    4. Cree un patrón de índice. El nombre del índice debe coincidir exactamente con de la tabla o la función, sin asterisco (*). Puede copiar la línea correspondiente de la lista.

Nota

Para ejecutar K2Bridge en otros proveedores de Kubernetes, cambie el valor storageClassName de Elasticsearch en values.yaml para que se ajuste al que sugiere el proveedor.

Detección de datos

Si Azure Data Explorer está configurado como un origen de datos para Kibana, puede usar Kibana para explorar los datos.

Captura de pantalla Descubrir en Kibana.

  1. En Kibana, seleccione la pestaña Discover (Detectar).

  2. En la lista de patrones de índice, seleccione uno que defina el origen de datos que se va a explorar. En este caso, el patrón de índice es una tabla de Azure Data Explorer.

    Captura de pantalla de la lista de patrones del origen de datos.

  3. Si sus datos tienen un campo de filtro de tiempo, puede especificar el intervalo de tiempo. En la parte superior derecha de la página Discover (Detectar), seleccione un filtro de tiempo. De forma predeterminada, la página muestra los datos de los últimos 15 minutos.

    Captura de pantalla de la selección de un filtro de hora.

  4. La tabla de resultados muestra los primeros 500 registros. Puede expandir un documento para examinar los datos de sus campos en formato JSON o de tabla.

    Captura de pantalla de un registro expandido en la pestaña Descubrir.

  5. Para elegir columnas específicas para agregarlas a la tabla de resultados, seleccione add (Agregar) junto al nombre del campo. De forma predeterminada, la tabla de resultados incluye la columna _source y una columna Time (Hora) si el campo de hora existe.

    Captura de pantalla de la adición de columnas.

  6. En la barra de consulta, puede realizar las acciones siguientes para buscar los datos:

    • Escribir un término de búsqueda.
    • Usar la sintaxis de consulta de Lucene. Por ejemplo:
      • Busque "error" para encontrar todos los registros que contienen este valor.
      • Busque "estado: 200" para obtener todos los registros con un valor de estado de 200.
    • Usar los operadores lógicos AND, OR y NOT.
    • Usar los caracteres comodín, asterisco (*) y signo de interrogación (?). Por ejemplo, la consulta "destination_city: L*" coincide con los registros en que el valor de destination-city comienza por "L" o "l" (K2Bridge no distingue mayúsculas de minúsculas).

    Captura de pantalla de la ejecución de consultas.

Nota

Solo se admite la sintaxis de consulta de Lucene de Kibana. No use la opción KQL, que significa lenguaje de consulta de Kibana.

Sugerencia

En Búsqueda, puede encontrar más reglas de búsqueda y lógica.

  1. Para filtrar los resultados de la búsqueda, use la lista Campos disponibles. La lista de campos es donde puede ver:

    • Los primeros cinco valores del campo.
    • El número de registros que contienen el campo.
    • El porcentaje de registros que contienen cada valor.

    Sugerencia

    Use el icono de la lupa para buscar todos los registros que tienen un valor específico.

    Captura de pantalla de una lista de campos con la lupa destacada.

    La lupa también se puede usar para filtrar los resultados y usar la vista en formato de tabla de cada registro en la tabla de resultados.

    Captura de pantalla de una lista de tablas con la lupa destacada.

  2. Seleccione las opciones Save (Guardar) o Share (Compartir) para conservar la búsqueda.

    Captura de pantalla de cómo guardar una búsqueda en Kibana.

Visualización de datos

Use visualizaciones de Kibana para obtener vistas rápidas de datos de Azure Data Explorer.

Creación de una visualización desde la pestaña Discover (Detectar)

  1. Para crear una visualización de barra vertical, en la pestaña Discover (Detectar), busque la barra lateral Available fields (Campos disponibles).

    Captura de pantalla de la selección de un campo en los campos disponibles en la pestaña Descubrir.

  2. Seleccione un nombre de campo y haga clic en Visualize (Visualizar).

    Captura de pantalla de la creación de una visualización y la selección de un campo.

  3. Se abre la pestaña Visualize (Visualizar) y se muestra la visualización. Para editar los datos y las métricas de la visualización, consulte también Creación de una visualización desde la pestaña Visualize (Visualizar).

    Captura de pantalla de la edición de la visualización en la pestaña Visualizar.

Creación de una visualización desde la pestaña Visualize (Visualizar)

  1. Seleccione la pestaña Visualize (Visualizar) y haga clic en Create visualization (Crear visualización).

    Captura de pantalla de la selección de la pestaña Visualizar.

  2. En la ventana Nueva visualización, seleccione un tipo de visualización.

    Captura de pantalla de la selección de un tipo de visualización.

  3. Una vez que se genera la visualización, puede editar las métricas y agregar hasta un cubo.

    Captura de pantalla de la edición de las métricas.

Nota

K2Bridge admite una agregación de cubo. Algunas agregaciones admiten opciones de búsqueda. Use la sintaxis de Lucene, no la opción KQL, que significa sintaxis del lenguaje de consulta Kibana.

Importante

  • Se admiten las visualizaciones siguientes: Vertical bar, Area chart, Line chart, Horizontal bar, Pie chart, Gauge, Data table, Heat map, Goal chart y Metric chart.
  • Se admiten las siguientes métricas: Average, Count, Max, Median, Min, Percentiles, Standard deviation, Sum, Top hits y Unique count.
  • La métrica Percentiles ranks no se admite.
  • El uso de agregaciones de cubos es opcional, puede visualizar datos sin agregación de cubos.
  • Se admiten los cubos siguientes: No bucket aggregation, Date histogram, Filters, Range, Date range, Histogram y Terms.
  • Los cubos IPv4 range y Significant terms no se admiten.

Crear paneles

Puede crear paneles con visualizaciones de Kibana para resumir, comparar y contrastar vistas rápidas de datos de Azure Data Explorer.

  1. Para crear un panel, seleccione la pestaña Dashboard (Panel) y haga clic en Create new dashboard (Crear nuevo panel).

    Captura de pantalla de la selección de la pestaña Panel de información.

    El nuevo panel se abre en modo de edición.

  2. Para agregar un nuevo panel de visualización, haga clic en Create new (Crear nuevo).

    Captura de pantalla de la adición de una visualización existente a un panel de información.

  3. Para agregar una visualización que ya haya creado, haga clic en Add an existing (Agregar una existente) y seleccione una visualización.

  4. Para ordenar los paneles, organícelos por prioridad, cambie el tamaño de los paneles, etc., y haga clic en Editar y, a continuación, use las siguientes opciones:

    • Para mover un panel, haga clic y mantenga presionado el encabezado del panel y arrástrelo a la nueva ubicación.
    • Para cambiar el tamaño de un panel, haga clic en el control de cambio de tamaño y, a continuación, arrastre hasta las nuevas dimensiones.

    Captura de pantalla de los paneles de información con visualizaciones de los datos de Azure Data Explorer.