Visualize dados do Azure Data Explorer no Kibana com o conector de código aberto K2Bridge
O K2Bridge (Kibana-Kusto Bridge) permite que você use o Azure Data Explorer como uma fonte de dados e visualize esses dados no Kibana. K2Bridge é um aplicativo em contêineres de código aberto. Ele atua como um proxy entre uma instância do Kibana e um cluster Azure Data Explorer. Este artigo descreve como usar o K2Bridge para criar essa conexão.
O K2Bridge converte consultas Kibana em KQL (Linguagem de Consulta Kusto) e envia os resultados Azure Data Explorer de volta ao Kibana.
O K2Bridge dá suporte às guias Descobrir, Visualizar e Painel do Kibana.
Com a guia Descobrir, você pode:
- Entender e explorar os dados.
- Filtrar resultados.
- Adicionar ou remover campos na grade de resultados.
- Exibir conteúdo do registro.
- Salvar e compartilhar pesquisas.
Com a guia Visualizar, você pode:
- Crie visualizações como: gráficos de barras, gráficos de pizza, tabelas de dados, mapas de calor e muito mais.
- Salvar uma visualização
Com a guia Painel, você pode:
- Crie painéis usando visualizações novas ou salvas.
- Salve um painel.
A imagem a seguir mostra uma instância Kibana vinculada Azure Data Explorer por K2Bridge. A experiência do usuário no Kibana permanece inalterada.
Pré-requisitos
Antes de visualizar dados de Azure Data Explorer no Kibana, tenha o seguinte pronto:
- Uma assinatura do Azure. Criar uma conta gratuita do Azure.
- Um cluster e um banco de dados do Azure Data Explorer. Você precisará da URL do cluster e do nome do banco de dados.
- Helm v3, o gerenciador de pacotes do Kubernetes.
- Cluster AKS (Serviço de Kubernetes do Azure) ou qualquer outro cluster do Kubernetes. Use a versão 1.21.2 ou mais recente, com no mínimo três nós do Serviço de Kubernetes do Azure. A versão 1.21.2 foi testada e verificada. Se precisar de um cluster do AKS, veja o guia de início rápido do AKS Usando a CLI do Azure ou Usando o portal do Azure.
- Uma entidade de serviço Microsoft Entra autorizada a exibir dados no Azure Data Explorer, incluindo a ID do cliente e o segredo do cliente. Como alternativa, você pode usar uma identidade gerenciada atribuída pelo sistema.
Se você optar por usar uma entidade de serviço Microsoft Entra, precisará criar uma entidade de serviço Microsoft Entra. Para a instalação, você precisará da ClientID e de um Segredo. Recomendamos uma entidade de serviço com permissão de visualizador e não recomendamos o uso de permissões de nível superior. Para atribuir permissões, consulte Gerenciar permissões de banco de dados no portal do Azure ou usar comandos de gerenciamento para Gerenciar funções de segurança de banco de dados.
Se você optar por usar uma identidade atribuída pelo sistema, precisará obter a identidade gerenciada do pool de agentes ClientID (localizada no grupo de recursos "[MC_xxxx]" gerado)
Executar K2Bridge no AKS (Serviço de Kubernetes do Azure)
Por padrão, o gráfico do Helm de K2Bridge faz referência a uma imagem disponível publicamente localizada no MCR (Microsoft Container Registry). O MCR não requer credenciais.
Baixe os gráficos do Helm necessários.
Adicione a dependência Elasticsearch ao Helm. A dependência é necessária porque o K2Bridge usa uma pequena instância interna do Elasticsearch. A instância de serviços solicitações relacionadas a metadados, como consultas de padrões de índice e consultas salvas. Essa instância interna não salva dados de negócios. Você pode considerar a instância como um detalhe de implementação.
Para adicionar a dependência do Elasticsearch ao Helm, execute estes comandos:
helm repo add elastic https://helm.elastic.co helm repo update
Para obter o gráfico K2Bridge do diretório de gráficos do repositório GitHub:
Clone o repositório do GitHub.
Vá para o diretório do repositório raiz K2Bridges.
Execute este comando:
helm dependency update charts/k2bridge
Implante o K2Bridge.
Defina as variáveis com os valores corretos do 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]
Observação
Ao usar uma identidade gerenciada, o valor ADX_CLIENT_ID é a ID do cliente da identidade gerenciada, localizada no grupo de recursos "[MC_xxxx]" gerado. Para saber mais, confira MC_ resource group. O ADX_SECRET_ID só será necessário se você usar uma entidade de serviço Microsoft Entra.
Opcionalmente, habilite a telemetria do Application Insights. Se você estiver usando o Application Insights pela primeira vez, crie um recurso de 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. Há suporte apenas para visualizações e painéis com a versão Kibana 7.10. As marcas de imagem mais recentes são: 6.8_latest e 7.16_latest, que dão suporte ao Kibana 6.8 e Kibana 7.10, respectivamente. A imagem de '7.16_latest' dá suporte ao Kibana OSS 7.10.2, e a instância interna do Elasticsearch é 7.16.2.
Se uma entidade de serviço Microsoft Entra tiver sido usada:
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]
ou se a identidade gerenciada tiver sido usada:
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, você pode encontrar o conjunto completo de opções de configuração.
A saída do comando anterior sugere o próximo comando do Helm para implantar o Kibana. Como opção, 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
Use o encaminhamento de porta para acessar o Kibana no localhost.
kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
Conecte-se ao Kibana ao acessar http://127.0.0.1:5601.
Exponha o Kibana aos usuários. Existem vários métodos para fazer isso. O método usado depende muito do seu caso de uso.
Por exemplo, você pode expor o serviço como um serviço Load Balancer. Para fazer isso, adicione o parâmetro --set service.type=LoadBalancer ao Helm Kibana anterior no comando install.
Em seguida, execute este comando:
kubectl get service -w -n k2bridge
O resultado deve ser assim:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kibana-kibana LoadBalancer xx.xx.xx.xx <pending> 5601:30128/TCP 4m24s
Em seguida, você pode usar o valor EXTERNAL-IP gerado que aparece. Use-o para acessar o Kibana abrindo um navegador e acessando <EXTERNAL-IP>:5601.
Configure padrões de índice para acessar seus dados.
Em uma nova instância do Kibana:
- Abra o Kibana.
- Navegue até Gerenciamento.
- Selecione Padrões de Índice.
- Crie um padrão de índice. O nome do índice precisa corresponder exatamente ao nome da tabela ou nome da função sem um asterisco (*). Você pode copiar a linha relevante da lista.
Observação
Para executar o K2Bridge em outros provedores do Kubernetes, altere o valor storageClassName do Elasticsearch em values.yaml para corresponder ao sugerido pelo provedor.
Descobrir dados
Quando Azure Data Explorer é configurado como uma fonte de dados para Kibana, você pode usar o Kibana para explorar os dados.
No Kibana, selecione a guia Descobrir.
Na lista padrão de índice, selecione um padrão de índice que defina a fonte de dados a ser explorada. Aqui, o padrão de índice é uma tabela do Azure Data Explorer.
Se os dados têm um campo de filtro de tempo, você pode especificar o intervalo de tempo. No canto superior direito da página Descobrir, selecione um filtro de hora. Por padrão, a página mostra os dados dos últimos 15 minutos.
A tabela de resultados mostra os primeiros 500 registros. Você pode expandir um documento para examinar seus dados de campo no formato JSON ou tabela.
Você pode adicionar colunas específicas à tabela de resultados selecionando adicionar ao lado do nome do campo. Por padrão, a tabela de resultados inclui a coluna _source e uma coluna Time se o campo de hora existir.
Na barra de consulta, você pode pesquisar os dados:
- Inserindo um termo de pesquisa.
- Usando a sintaxe de consulta Lucene. Por exemplo:
- Pesquise "erro" para encontrar todos os registros que contêm esse valor.
- Pesquise "status: 200" para obter todos os registros com um valor de status de 200.
- Usando operadores lógicos AND, OR e NOT.
- Usando os caracteres curinga asterisco (*) e ponto de interrogação (?). Por exemplo, a consulta "destination_city: L *" corresponde aos registros em que o valor de destino-cidade começa com "L" ou "l". (K2Bridge não diferencia maiúsculas de minúsculas.)
Observação
Há suporte apenas para a sintaxe de consulta Lucene do Kibana. Não use a opção KQL, que significa Linguagem de Consulta Kibana.
Dica
Em Pesquisando, você pode encontrar mais regras de pesquisa e lógica.
Para filtrar os resultados da pesquisa, use a lista Campo disponível. A lista de campos é onde você pode ver:
- Os cinco valores principais para o campo.
- O número de registros que contêm o campo.
- A porcentagem de registros que contêm cada valor.
Dica
Use a lupa para localizar todos os registros que têm um valor específico.
Você também pode usar a lupa para filtrar os resultados e ver a exibição de formato de tabela de resultados de cada registro nela.
Selecione Salvar ou Compartilhar para reter sua pesquisa.
Visualizar dados
Use visualizações do Kibana para obter exibições rápidas de dados do Azure Data Explorer.
Criar uma visualização na guia Descobrir
Para criar uma visualização de barra vertical, na guia Descobrir, localize a barra lateral Campos disponíveis.
Selecione um nome de campo e clique em Visualizar.
A guia Visualizar é aberta e exibe a visualização. Para editar os dados e as métricas da visualização, confira também Criar uma visualização na guia Visualizar.
Criar uma visualização na guia Visualizar
Selecione a guia Visualizar e clique em Criar visualização.
Na janela Nova visualização, selecione um tipo de visualização.
Depois que a visualização for gerada, você poderá editar as métricas e adicionar até um bucket.
Observação
O K2Bridge dá suporte à agregação de um bucket. Algumas agregações dão suporte para opções de pesquisa. Use a sintaxe Lucene, não a opção KQL, que significa a sintaxe da Linguagem de Consulta Kibana.
Importante
- Há suporte para as seguintes visualizações:
Vertical bar
,Area chart
,Line chart
,Horizontal bar
,Pie chart
,Gauge
,Data table
,Heat map
,Goal chart
eMetric chart
. - Há suporte para as seguintes métricas:
Average
,Count
,Max
,Median
,Min
,Percentiles
,Standard deviation
,Sum
,Top hits
eUnique count
. - Não há suporte para a métrica
Percentiles ranks
. - O uso das agregações de bucket é opcional; você pode visualizar dados sem agregação de bucket.
- Há suporte para os seguintes buckets:
No bucket aggregation
,Date histogram
,Filters
,Range
,Date range
,Histogram
eTerms
. - Não há suporte para os buckets
IPv4 range
eSignificant terms
.
Criar dashboards
Você pode criar painéis com visualizações do Kibana para resumir, comparar e contrastar exibições rápidas de dados do Azure Data Explorer.
Para criar um painel, selecione a guia Painel e clique em Criar painel.
O novo painel é aberto no modo de edição.
Para adicionar um novo painel de visualização, clique em Criar.
Para adicionar uma visualização que você já criou, clique em Adicionar uma existente e selecione uma visualização.
Para dispor, organizar por prioridade e redimensionar os painéis e muito mais, clique em Editar e use as seguintes opções:
- Para mover um painel, clique e segure o cabeçalho do painel e arraste para o novo local.
- Para redimensionar um painel, clique no controle para redimensionar e arraste para as novas dimensões.