Visualizar dados do Azure Data Explorer no Kibana com o conector open source K2Bridge
A K2Bridge (Ponte Kibana-Kusto) permite-lhe utilizar o Azure Data Explorer como uma origem de dados e visualizar esses dados no Kibana. K2Bridge é uma aplicação em contentores open source. Funciona como um proxy entre uma instância do Kibana e um cluster do Azure Data Explorer. Este artigo descreve como utilizar k2Bridge para criar essa ligação.
A K2Bridge traduz as consultas do Kibana para Linguagem de Pesquisa Kusto (KQL) e envia os resultados do Data Explorer do Azure para o Kibana.
A K2Bridge suporta os separadores Descobrir, Visualizar e Dashboard do Kibana.
Com o separador Descobrir , pode:
- Pesquise e explore os dados.
- Filtrar resultados.
- Adicionar ou remover campos na grelha de resultados.
- Ver conteúdo do registo.
- Guardar e partilhar pesquisas.
Com o separador Visualizar , pode:
- Crie visualizações como: gráficos de barras, gráficos circulares, tabelas de dados, mapas térmicos e muito mais.
- Guardar uma visualização
Com o separador Dashboard , pode:
- Crie painéis com visualizações novas ou guardadas.
- Guardar um dashboard.
A imagem seguinte mostra uma instância do Kibana vinculada ao Azure Data Explorer por K2Bridge. A experiência de utilizador no Kibana não mudou.
Pré-requisitos
Antes de poder visualizar dados do Azure Data Explorer no Kibana, tenha o seguinte pronto:
- Uma subscrição do Azure. Crie uma conta gratuita do Azure.
- Um cluster e uma base de dados do Azure Data Explorer. Precisará do URL do cluster e do nome da base de dados.
- Helm v3, o gestor de pacotes do Kubernetes.
- Azure Kubernetes Service cluster (AKS) ou qualquer outro cluster do Kubernetes. Utilize a versão 1.21.2 ou mais recente, com um mínimo de três nós Azure Kubernetes Service. A versão 1.21.2 foi testada e verificada. Se precisar de um cluster do AKS, veja como implementar um cluster do AKS com a CLI do Azure ou com o portal do Azure.
- Um principal de serviço Microsoft Entra autorizado a ver dados no Azure Data Explorer, incluindo o ID de cliente e o segredo do cliente. Em alternativa, pode utilizar uma identidade gerida atribuída pelo sistema.
Se optar por utilizar um principal de serviço Microsoft Entra, terá de criar um principal de serviço Microsoft Entra. Para a instalação, precisará do ClientID e de um Segredo. Recomendamos um principal de serviço com permissão de visualizador e desencorajamo-lo a utilizar permissões de nível superior. Para atribuir permissões, veja Gerir permissões de base de dados no portal do Azure ou utilizar comandos de gestão para Gerir funções de segurança de bases de dados.
Se optar por utilizar uma identidade atribuída pelo sistema, terá de obter a identidade gerida do conjunto de agentes ClientID (localizado no grupo de recursos "[MC_xxxx]" gerado)
Executar K2Bridge no Azure Kubernetes Service (AKS)
Por predefinição, o gráfico Helm de K2Bridge faz referência a uma imagem publicamente disponível localizada no Microsoft Container Registry (MCR). O MCR não necessita de credenciais.
Transfira os gráficos Helm necessários.
Adicione a dependência elasticsearch ao Helm. A dependência é necessária porque k2Bridge utiliza uma pequena instância interna do Elasticsearch. Os pedidos relacionados com metadados dos serviços de instância, como consultas de padrões de índice e consultas guardadas. Esta instância interna não guarda dados de negócio. Pode considerar a instância um detalhe de implementação.
Para adicionar a dependência elasticsearch ao Helm, execute estes comandos:
helm repo add elastic https://helm.elastic.co helm repo update
Para obter o gráfico K2Bridge a partir do diretório de gráficos do repositório do GitHub:
Clone o repositório a partir do GitHub.
Aceda ao diretório de repositório raiz K2Bridges.
Execute este comando:
helm dependency update charts/k2bridge
Implementar K2Bridge.
Defina as variáveis para os valores corretos para o seu ambiente.
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
Ao utilizar uma identidade gerida, o valor ADX_CLIENT_ID é o ID de cliente da identidade gerida, localizado no grupo de recursos gerado "[MC_xxxx]". Para obter mais informações, veja MC_ grupo de recursos. A ADX_SECRET_ID só é necessária se utilizar um principal de serviço Microsoft Entra.
Opcionalmente, ative a telemetria do Application Insights. Se estiver a utilizar o Application Insights pela primeira vez, crie um recurso do Application Insights. Copie a chave de instrumentação para uma variável.
APPLICATION_INSIGHTS_KEY=[INSTRUMENTATION_KEY] COLLECT_TELEMETRY=true
Instale o gráfico K2Bridge. As visualizações e dashboards são suportados apenas com a versão do Kibana 7.10. As etiquetas de imagem mais recentes são: 6.8_latest e 7.16_latest, que suportam o Kibana 6.8 e o Kibana 7.10, respetivamente. A imagem de '7.16_latest' suporta o Kibana OSS 7.10.2 e a instância interna do Elasticsearch é 7.16.2.
Se tiver sido utilizado um principal de serviço 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]
Em alternativa, se a identidade gerida tiver sido utilizada:
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]
Em Configuração, pode encontrar o conjunto completo de opções de configuração.
A saída do comando anterior sugere o comando helm seguinte para implementar o Kibana. Opcionalmente, execute 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
Utilize o reencaminhamento de portas para aceder ao Kibana no localhost.
kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
Ligue-se ao Kibana ao aceder a http://127.0.0.1:5601.
Expor o Kibana aos utilizadores. Existem vários métodos para o fazer. O método que utiliza depende em grande parte do seu caso de utilização.
Por exemplo, pode expor o serviço como um serviço Balanceador de Carga. Para tal, adicione o parâmetro --set service.type=LoadBalancer ao comando de instalação do Kibana Helm anterior.
Em seguida, execute este comando:
kubectl get service -w -n k2bridge
A saída deverá ter o seguinte aspeto:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kibana-kibana LoadBalancer xx.xx.xx.xx <pending> 5601:30128/TCP 4m24s
Em seguida, pode utilizar o valor EXTERNAL-IP gerado que é apresentado. Utilize-o para aceder ao Kibana ao abrir um browser e aceder a <EXTERNAL-IP>:5601.
Configurar padrões de índice para aceder aos seus dados.
Numa nova instância do Kibana:
- Abra Kibana.
- Navegue para Gestão.
- Selecione Padrões de Índice.
- Criar um padrão de índice. O nome do índice tem de corresponder exatamente ao nome da tabela ou ao nome da função sem um asterisco (*). Pode copiar a linha relevante da lista.
Nota
Para executar o K2Bridge noutros fornecedores do Kubernetes, altere o valor Elasticsearch storageClassName em values.yaml para corresponder ao sugerido pelo fornecedor.
Detetar dados
Quando o Azure Data Explorer está configurado como uma origem de dados para o Kibana, pode utilizar o Kibana para explorar os dados.
No Kibana, selecione o separador Descobrir .
Na lista de padrões de índice, selecione um padrão de índice que defina a origem de dados a explorar. Aqui, o padrão de índice é uma tabela de Data Explorer do Azure.
Se os seus dados têm um campo de filtro de tempo, pode especificar o intervalo de tempo. No canto superior direito da página Descobrir , selecione um filtro de hora. Por predefinição, a página mostra os dados dos últimos 15 minutos.
A tabela de resultados mostra os primeiros 500 registos. Pode expandir um documento para examinar os dados do campo no formato JSON ou tabela.
Pode adicionar colunas específicas à tabela de resultados ao selecionar adicionar junto ao nome do campo. Por predefinição, a tabela de resultados inclui a coluna _source e uma coluna Time se o campo de hora existir.
Na barra de consulta, pode procurar dados ao:
- Introduzir um termo de pesquisa.
- Utilizar a sintaxe de consulta Lucene. Por exemplo:
- Procure "erro" para localizar todos os registos que contêm este valor.
- Procure "status: 200" para obter todos os registos com um valor de estado de 200.
- Utilizar os operadores lógicos AND, OR e NOT.
- Utilizar os carateres universais asterisco (*) e ponto de interrogação (?). Por exemplo, a consulta "destination_city: L*" corresponde a registos em que o valor destination-city começa com "L" ou "l". (K2Bridge não é sensível a maiúsculas e minúsculas.)
Nota
Apenas a sintaxe de consulta Lucene do kibana é suportada. Não utilize a opção KQL, que significa Linguagem de Consulta Kibana.
Dica
Em Procurar, pode encontrar mais regras de pesquisa e lógica.
Para filtrar os resultados da pesquisa, utilize a lista campos Disponíveis . A lista de campos é onde pode ver:
- Os cinco valores mais altos do campo.
- O número de registos que contêm o campo.
- A percentagem de registos que contêm cada valor.
Dica
Utilize a lupa para localizar todos os registos com um valor específico.
Também pode utilizar a lupa para filtrar os resultados e ver a vista de formato de tabela de resultados de cada registo na tabela de resultados.
Selecione Guardar ou Partilhar para manter a sua pesquisa.
Visualizar os dados
Utilize visualizações do Kibana para obter vistas rápidas dos dados do Azure Data Explorer.
Criar uma visualização a partir do separador Descobrir
Para criar uma visualização de barra vertical, no separador Descobrir , localize a barra lateral Campos disponíveis .
Selecione um nome de campo e, em seguida, clique em Visualizar.
O separador Visualizar é aberto e apresenta a visualização. Para editar os dados e as métricas da visualização, veja também Criar uma visualização a partir do separador Visualizar.
Criar uma visualização a partir do separador Visualizar
Selecione o separador Visualizar e clique em Criar visualização.
Na janela Nova Visualização , selecione um tipo de visualização.
Após a visualização ser gerada, pode editar as métricas e somar um registo.
Nota
K2Bridge suporta uma agregação de registo. Algumas agregações suportam opções de pesquisa. Utilize a sintaxe Lucene, não a opção KQL, que significa sintaxe da Linguagem de Consulta Kibana.
Importante
- São suportadas as seguintes visualizações:
Vertical bar
, ,Area chart
,Line chart
Horizontal bar
,Pie chart
,Gauge
,Data table
,Heat map
, eGoal chart
Metric chart
. - São suportadas as seguintes métricas:
Average
, ,Count
,Median
Max
,Min
,Percentiles
,Standard deviation
,Sum
Top hits
eUnique count
. - A métrica
Percentiles ranks
não é suportada. - A utilização de agregações de registos é opcional, pode visualizar dados sem agregação de registos.
- São suportados os seguintes registos:
No bucket aggregation
, ,Filters
Date histogram
,Range
,Date range
, eHistogram
Terms
. - Os registos
IPv4 range
eSignificant terms
não são suportados.
Criar dashboards
Pode criar dashboards com visualizações do Kibana para resumir, comparar e contrastar rapidamente vistas do Azure Data Explorer dados.
Para criar um dashboard, selecione o separador Dashboard e, em seguida, clique em Criar novo dashboard.
O novo dashboard é aberto no modo de edição.
Para adicionar um novo painel de visualização, clique em Criar novo.
Para adicionar uma visualização que já criou, clique em Adicionar um existente e selecione uma visualização.
Para organizar painéis, organizar painéis por prioridade, redimensionar os painéis e muito mais, clique em Editar e, em seguida, utilize as seguintes opções:
- Para mover um painel, clique sem soltar no cabeçalho do painel e, em seguida, arraste para a nova localização.
- Para redimensionar um painel, clique no controlo de redimensionamento e, em seguida, arraste para as novas dimensões.