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.
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.
Requisitos previos
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 de Microsoft Entra autorizada para ver los datos en 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 de 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 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.
Descargue los gráficos de Helm necesarios.
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.
Para agregar la dependencia de Elasticsearch a Helm, ejecute estos comandos:
helm repo add elastic https://helm.elastic.co helm repo update
Para obtener el gráfico de K2Bridge del directorio de gráficos del repositorio de GitHub realice estas acciones:
Clonar el repositorio de GitHub.
Ir al directorio raíz del repositorio de K2Bridge.
Ejecute este comando:
helm dependency update charts/k2bridge
Implemente K2Bridge.
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.
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
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 de 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.
La salida del comando anterior sugiere el siguiente comando de Helm para implementar Kibana. Opcionalmente, ejecute este comando:
helm install kibana elastic/kibana --version 7.17.3 -n k2bridge --set image=docker.elastic.co/kibana/kibana-oss --set imageTag=7.10.2 --set elasticsearchHosts=http://k2bridge:8080
Use el reenvío de puertos para acceder a Kibana en localhost.
kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
Para conectarse a Kibana, use la siguiente URL http://127.0.0.1:5601.
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
Los resultados deberán tener un aspecto 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.
Configure patrones de índice para acceder a sus datos.
En una nueva instancia de Kibana:
- Abra Kibana.
- Vaya a Management (Administración).
- Seleccione Index Patterns (Patrones de índice).
- 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.
En Kibana, seleccione la pestaña Discover (Detectar).
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.
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.
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.
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.
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 "status: 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 donde el valor de ciudad de destino comienza por "L" o "l". (K2Bridge no distingue mayúsculas de minúsculas).
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.
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.
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.
Seleccione las opciones Save (Guardar) o Share (Compartir) para conservar la búsqueda.
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)
Para crear una visualización de barra vertical, en la pestaña Discover (Detectar), busque la barra lateral Available fields (Campos disponibles).
Seleccione un nombre de campo y haga clic en Visualize (Visualizar).
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).
Creación de una visualización desde la pestaña Visualize (Visualizar)
Seleccione la pestaña Visualize (Visualizar) y haga clic en Create visualization (Crear visualización).
En la ventana Nueva visualización, seleccione un tipo de visualización.
Una vez que se genera la visualización, puede editar las métricas y agregar hasta un cubo.
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
yMetric chart
. - Se admiten las siguientes métricas:
Average
,Count
,Max
,Median
,Min
,Percentiles
,Standard deviation
,Sum
,Top hits
yUnique 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
yTerms
. - Los cubos
IPv4 range
ySignificant 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.
Para crear un panel, seleccione la pestaña Dashboard (Panel) y haga clic en Create new dashboard (Crear nuevo panel).
El nuevo panel se abre en modo de edición.
Para agregar un nuevo panel de visualización, haga clic en Create new (Crear nuevo).
Para agregar una visualización que ya haya creado, haga clic en Add an existing (Agregar una existente) y seleccione una visualización.
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.