Partilhar via


Tutorial: Ingerir e consultar dados de monitoramento no Azure Data Explorer

Este tutorial mostra-lhe como ingerir dados dos registos de diagnóstico e de atividade para um cluster Azure Data Explorer sem escrever código. Ao usar este método simples de ingestão, pode começar rapidamente a consultar o Azure Data Explorer para análise de dados.

Neste tutorial, aprenderás como:

  • Crie tabelas e mapeamento de ingestão em um banco de dados do Azure Data Explorer.
  • Formate os dados ingeridos usando uma política de atualização.
  • Crie um hub de eventos e conecte-o ao Azure Data Explorer.
  • Transmita dados para um hub de eventos a partir de métricas e logs de diagnóstico e logs de atividade do Azure Monitor.
  • Consulte os dados ingeridos usando o Azure Data Explorer.

Observação

Crie todos os recursos no mesmo local ou região do Azure.

Pré-requisitos

Fornecedor de dados do Azure Monitor: métricas e logs de diagnóstico e logs de atividades

Veja e compreenda os dados fornecidos pelas métricas de diagnóstico, registos e registos de atividade do Azure Monitor nas secções seguintes. Cria-se um pipeline de ingestão baseado nestes esquemas de dados. Cada evento num registo tem um conjunto de registos. Vais dividir este conjunto de registos mais tarde no tutorial.

Exemplos de métricas de diagnóstico, logs e logs de atividades

Um serviço do Azure emite registos de diagnóstico e métricas do Azure e registos de atividade. Estes registos fornecem dados sobre o funcionamento desse serviço.

Exemplo de métricas de diagnóstico

As métricas de diagnóstico agregam dados com uma granularidade de tempo de um minuto. O exemplo seguinte mostra um esquema de evento métrico do Azure Data Explorer na duração da consulta:

{
    "records": [
    {
        "count": 14,
        "total": 0,
        "minimum": 0,
        "maximum": 0,
        "average": 0,
        "resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
        "time": "2018-12-20T17:00:00.0000000Z",
        "metricName": "QueryDuration",
        "timeGrain": "PT1M"
    },
    {
        "count": 12,
        "total": 0,
        "minimum": 0,
        "maximum": 0,
        "average": 0,
        "resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
        "time": "2018-12-21T17:00:00.0000000Z",
        "metricName": "QueryDuration",
        "timeGrain": "PT1M"
    }
    ]
}

Configurar um pipeline de ingestão no Azure Data Explorer

A configuração de um pipeline do Azure Data Explorer envolve várias etapas, como a criação de tabelas e a ingestão de dados. Você também pode manipular, mapear e atualizar os dados.

Conectar-se à interface do usuário da Web do Azure Data Explorer

No banco de dados TestDatabase do Azure Data Explorer, selecione Consulta para abrir a interface do usuário da Web do Azure Data Explorer.

Página de consulta.

Criar as tabelas de destino

A estrutura dos logs do Azure Monitor não é tabular. Precisa de manipular os dados e expandir cada evento para um ou mais registos. Ingerir os dados brutos numa tabela intermédia chamada ActivityLogsRawRecords para registos de atividade e DiagnosticRawRecords para métricas e registos de diagnóstico. Nesse momento, você manipula e expande os dados. Ao utilizar uma política de atualização, ingere os dados expandidos na tabela ActivityLogs para registos de atividade, DiagnosticMetrics para métricas de diagnóstico e DiagnósticoLogs para registos de diagnóstico. Este processo significa que precisa de criar duas tabelas separadas para ingerir registos de atividade e três tabelas separadas para ingerir métricas e registos de diagnóstico.

Use a interface do usuário da Web do Azure Data Explorer para criar as tabelas de destino no banco de dados do Azure Data Explorer.

Criar tabelas para as métricas de diagnóstico

  1. No banco de dados TestDatabase , crie uma tabela chamada DiagnosticMetrics para armazenar os registros de métricas de diagnóstico. Use o seguinte .create table comando de gerenciamento:

    .create table DiagnosticMetrics (Timestamp:datetime, ResourceId:string, MetricName:string, Count:int, Total:double, Minimum:double, Maximum:double, Average:double, TimeGrain:string)
    
  2. Selecione Executar para criar a tabela.

    Executar consulta.

  3. Crie a tabela de dados intermédia chamada DiagnosticRawRecords na base de dados TestDatabase para manipulação de dados utilizando a seguinte consulta. Selecione Executar para criar a tabela.

    .create table DiagnosticRawRecords (Records:dynamic)
    
  4. Definir a política de retenção zero para a tabela intermediária:

    .alter-merge table DiagnosticRawRecords policy retention softdelete = 0d
    

Criar mapeamentos de tabela

Como o formato de dados é json, precisa de criar um mapeamento de dados. O json mapeamento liga cada caminho JSON ao nome de uma coluna de tabela. Se um caminho JSON tiver caracteres especiais, escape deles como ['Nome da Propriedade']. Para obter mais informações, consulte Sintaxe JSONPath.

Associa métricas de diagnóstico e logs à tabela

Use a seguinte consulta para mapear a métrica de diagnóstico e os dados de registo para a tabela:

.create table DiagnosticRawRecords ingestion json mapping 'DiagnosticRawRecordsMapping' '[{"column":"Records","Properties":{"path":"$.records"}}]'

Criar a política de atualização para dados de métricas e logs

Criar política de atualização de dados para métricas de diagnóstico

  1. Crie uma função que expanda a coleção de registos de métricas diagnósticas para que cada valor na coleção tenha uma linha separada. Use o mv-expand operador:

    .create function DiagnosticMetricsExpand() {
       DiagnosticRawRecords
       | mv-expand events = Records
       | where isnotempty(events.metricName)
       | project
           Timestamp = todatetime(events['time']),
           ResourceId = tostring(events.resourceId),
           MetricName = tostring(events.metricName),
           Count = toint(events['count']),
           Total = todouble(events.total),
           Minimum = todouble(events.minimum),
           Maximum = todouble(events.maximum),
           Average = todouble(events.average),
           TimeGrain = tostring(events.timeGrain)
    }
    
  2. Adicione a política de atualização à tabela de destino. Esta política executa automaticamente a consulta em quaisquer dados recém-ingeridos na tabela intermédia DiagnosticRawRecords e ingere os seus resultados na tabela DiagnosticMetrics :

    .alter table DiagnosticMetrics policy update @'[{"Source": "DiagnosticRawRecords", "Query": "DiagnosticMetricsExpand()", "IsEnabled": "True", "IsTransactional": true}]'
    

Criar um namespace de Hubs de Eventos do Azure

As configurações de diagnóstico do Azure permitem exportar métricas e logs para uma conta de armazenamento ou para um hub de eventos. Neste tutorial, encaminha as métricas e registos através de um hub de eventos. Cria-se um espaço de nomes de hub de eventos e um hub de eventos para as métricas de diagnóstico e registos nos passos seguintes. O Azure Monitor cria o hub de eventos insights-operational-logs para os registos de atividades.

  1. Crie um hub de eventos usando um modelo do Azure Resource Manager no portal do Azure. Para seguir o restante das etapas neste artigo, clique com o botão direito do mouse no botão Implantar no Azure e selecione Abrir em nova janela. O botão Implantar no Azure leva você ao portal do Azure.

    Botão Implantar no Azure.

  2. Crie um namespace de Event Hubs e um hub de eventos para os registos de diagnóstico. Aprenda a criar um namespace de Event Hubs.

  3. Preencha o formulário com as seguintes informações. Para quaisquer configurações não listadas na tabela a seguir, use os valores padrão.

    Setting Valor sugerido Descrição
    Subscription A sua subscrição Selecione a assinatura do Azure que você deseja usar para seu hub de eventos.
    Grupo de recursos test-resource-group Criar um novo grupo de recursos.
    Localização Selecione a região que melhor atende às suas necessidades. Crie o namespace do hub de eventos no mesmo local que outros recursos.
    Nome do namespace AzureMonitoringData Escolha um nome exclusivo que identifique o seu espaço de nomes.
    Nome do hub de eventos Dados de diagnóstico O hub de eventos fica sob o namespace, que fornece um contêiner de escopo exclusivo.
    Nome do grupo de consumidores AdxPipeline Crie um nome de grupo de consumidores. Os grupos de consumidores permitem que múltiplas aplicações consumidoras tenham cada uma uma vista separada do fluxo de eventos.

Conectar métricas e logs do Azure Monitor ao seu hub de eventos

Agora você precisa conectar suas métricas e logs de diagnóstico e seus logs de atividade ao hub de eventos.

Conecte métricas e logs de diagnóstico ao seu hub de eventos

Selecione um recurso do qual exportar métricas. Vários tipos de recursos dão suporte à exportação de dados de diagnóstico, incluindo namespace de hubs de eventos, Azure Key Vault, Hub IoT do Azure e clusters do Azure Data Explorer. Neste tutorial, use um cluster de Azure Data Explorer como recurso. Pode analisar as métricas de desempenho das consultas e os registos dos resultados de ingestão.

  1. Selecione seu cluster Kusto no portal do Azure.

  2. Selecione Configurações de diagnóstico e, em seguida, selecione o link Ativar diagnóstico .

    Configurações de diagnóstico.

  3. O painel Configurações de diagnóstico é aberto. Siga os seguintes passos:

    1. Dê aos seus dados de log de diagnóstico o nome ADXExportedData.

    2. Em LOG, selecione as caixas de seleção SucceededIngestion e FailedIngestion.

    3. Em METRIC, selecione a caixa de seleção Desempenho da consulta.

    4. Marque a caixa de seleção Transmitir para um hub de eventos .

    5. Selecione Configurar.

      Painel de configurações de diagnóstico.

  4. No painel Selecionar hub de eventos , configure como exportar dados de logs de diagnóstico para o hub de eventos criado:

    1. Na lista Selecionar namespace do hub de eventos , selecione AzureMonitoringData.
    2. Na lista Selecionar nome do hub de eventos , selecione DiagnosticData.
    3. Na lista Selecionar nome da política do hub de eventos , selecione RootManagerSharedAccessKey.
    4. Selecione OK.
  5. Selecione Guardar.

Veja os dados fluindo para seus hubs de eventos

  1. Espere alguns minutos até que a ligação esteja definida e a exportação do registo de atividades para o hub de eventos termine. Vá para o namespace dos hubs de eventos para ver os hubs de eventos que você criou.

    Hubs de eventos criados.

  2. Veja os dados que fluem para o seu hub de eventos:

    Dados do hub de eventos.

Conectar um hub de eventos ao Azure Data Explorer

Agora, precisa criar as conexões de dados para as suas métricas de diagnóstico, logs e logs de atividade.

Criar a conexão de dados para métricas de diagnóstico, logs e logs de atividades

  1. No cluster do Azure Data Explorer chamado kustodocs, selecione Bancos de Dados no menu à esquerda.

  2. Na janela Bancos de dados , selecione seu banco de dados TestDatabase .

  3. No menu à esquerda, selecione Ingestão de dados.

  4. Na janela Ingestão de dados , selecione + Adicionar conexão de dados.

  5. Na janela Conexão de dados , insira as seguintes informações:

    Conexão de dados do hub de eventos.

  1. Use as seguintes configurações na janela Conexão de dados :

    Fonte de dados:

    Setting Valor sugerido Descrição do campo
    Nome da conexão de dados DiagnosticsLogsConnection O nome da ligação que quer criar no Azure Data Explorer.
    Namespace do hub de eventos AzureMonitoringData O nome que escolheu anteriormente para identificar o seu espaço de nomes.
    Hub de eventos Dados de diagnóstico O hub de eventos que criou.
    Grupo de consumidores AdxPipeline O grupo de consumidores definido no hub de eventos que criou.

    Tabela de destino

    Existem duas opções de roteamento: estático e dinâmico. Para este tutorial, usa o roteamento estático (o padrão), onde especifica o nome da tabela, o formato dos dados e o mapeamento. Deixe Meus dados incluem informações de encaminhamento desmarcado.

    Setting Valor sugerido Descrição do campo
    Tabela DiagnosticRawRecords A tabela que você criou no banco de dados TestDatabase .
    Formato dos dados JSON O formato usado na tabela.
    Mapeamento de colunas DiagnosticRawRecordsMapping O mapeamento que criou na base de dados TestDatabase, que associa os dados JSON recebidos aos nomes de coluna e tipos de dados da tabela DiagnosticRawRecords.
  2. Selecione Criar.

Consultar as novas tabelas

Agora você tem um pipeline com fluxo de dados. A ingestão através do cluster demora cinco minutos por padrão, por isso aguarda alguns minutos antes de começares a fazer consultas.

Consultar a tabela de métricas de diagnóstico

A consulta a seguir analisa os dados de duração da consulta de registros de métricas de diagnóstico no Azure Data Explorer:

DiagnosticMetrics
| where Timestamp > ago(15m) and MetricName == 'QueryDuration'
| summarize avg(Average)

Resultados da consulta:

avg_Average
00:06.156