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.

Ligação do Kibana com o Azure Data Explorer através de K2Bridge.

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.

Página do Kibana vinculada ao Azure Data Explorer.

Pré-requisitos

Antes de poder visualizar dados do Azure Data Explorer no Kibana, tenha o seguinte pronto:

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.

  1. Transfira os gráficos Helm necessários.

  2. 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.

    1. Para adicionar a dependência elasticsearch ao Helm, execute estes comandos:

      helm repo add elastic https://helm.elastic.co
      helm repo update
      
    2. Para obter o gráfico K2Bridge a partir do diretório de gráficos do repositório do GitHub:

      1. Clone o repositório a partir do GitHub.

      2. Aceda ao diretório de repositório raiz K2Bridges.

      3. Execute este comando:

        helm dependency update charts/k2bridge
        
  3. Implementar K2Bridge.

    1. 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.

    2. 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
      
    3. 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.

    4. 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
      
    5. Utilize o reencaminhamento de portas para aceder ao Kibana no localhost.

      kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
      
    6. Ligue-se ao Kibana ao aceder a http://127.0.0.1:5601.

    7. 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.

  4. Configurar padrões de índice para aceder aos seus dados.

    Numa nova instância do Kibana:

    1. Abra Kibana.
    2. Navegue para Gestão.
    3. Selecione Padrões de Índice.
    4. 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.

Captura de ecrã do separador Descobrir no Kibana.

  1. No Kibana, selecione o separador Descobrir .

  2. 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.

    Captura de ecrã a mostrar a lista de padrões de origem de dados.

  3. 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.

    Captura de ecrã a mostrar a seleção de um filtro de tempo.

  4. A tabela de resultados mostra os primeiros 500 registos. Pode expandir um documento para examinar os dados do campo no formato JSON ou tabela.

    Captura de ecrã a mostrar um registo expandido no separador Descobrir.

  5. 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.

    Captura de ecrã a mostrar a adição de colunas.

  6. 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.)

    Captura de ecrã a mostrar a execução de consultas.

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.

  1. 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.

    Captura de ecrã a mostrar uma lista de campos com a lupa realçada.

    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.

    Captura de ecrã a mostrar uma lista de tabelas com a lupa realçada.

  2. Selecione Guardar ou Partilhar para manter a sua pesquisa.

    Captura de ecrã a mostrar como guardar uma pesquisa no Kibana.

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

  1. Para criar uma visualização de barra vertical, no separador Descobrir , localize a barra lateral Campos disponíveis .

    Captura de ecrã a mostrar a seleção de um campo nos campos disponíveis no separador Descobrir.

  2. Selecione um nome de campo e, em seguida, clique em Visualizar.

    Captura de ecrã a mostrar a criação de uma visualização e a seleção do campo.

  3. 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.

    Captura de ecrã a mostrar a edição da visualização no separador Visualizar.

Criar uma visualização a partir do separador Visualizar

  1. Selecione o separador Visualizar e clique em Criar visualização.

    Captura de ecrã a mostrar a seleção do separador Visualizar.

  2. Na janela Nova Visualização , selecione um tipo de visualização.

    Captura de ecrã a mostrar a seleção de um tipo de visualização.

  3. Após a visualização ser gerada, pode editar as métricas e somar um registo.

    Captura de ecrã a mostrar a edição das métricas.

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 chartHorizontal bar, Pie chart, Gauge, Data table, Heat map, e Goal chartMetric chart.
  • São suportadas as seguintes métricas: Average, , Count, MedianMax, Min, Percentiles, Standard deviation, SumTop hits e Unique 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, , FiltersDate histogram, Range, Date range, e HistogramTerms.
  • Os registos IPv4 range e Significant 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.

  1. Para criar um dashboard, selecione o separador Dashboard e, em seguida, clique em Criar novo dashboard.

    Captura de ecrã a mostrar a seleção do separador Dashboard.

    O novo dashboard é aberto no modo de edição.

  2. Para adicionar um novo painel de visualização, clique em Criar novo.

    Captura de ecrã a mostrar a adição de uma visualização existente a um dashboard.

  3. Para adicionar uma visualização que já criou, clique em Adicionar um existente e selecione uma visualização.

  4. 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.

    Captura de ecrã a mostrar dashboards com visualizações de dados do Azure Data Explorer.