Tutorial: Ingerir e consultar dados de monitorização no Azure Data Explorer
Artigo
Este tutorial irá ensinar-lhe a ingerir dados de registos de diagnósticos e atividades para um cluster do Azure Data Explorer sem escrever código. Com este método de ingestão simples, pode começar rapidamente a consultar o Azure Data Explorer para análise de dados.
Neste tutorial, irá aprender a:
Criar tabelas e mapeamento de ingestão numa base de dados do Azure Data Explorer.
Formate os dados ingeridos com uma política de atualização.
Crie um hub de eventos e ligue-o ao Azure Data Explorer.
Um cluster e uma base de dados do Azure Data Explorer.
Criar um cluster e uma base de dados. Neste tutorial, o nome da base de dados é TestDatabase.
Fornecedor de dados do Azure Monitor: métricas de diagnóstico e registos e registos de atividades
Veja e compreenda os dados fornecidos pelas métricas de diagnóstico e registos de atividades e registos de atividades do Azure Monitor abaixo. Irá criar um pipeline de ingestão com base nestes esquemas de dados. Tenha em atenção que cada evento num registo tem uma matriz de registos. Esta matriz de registos será dividida mais tarde no tutorial.
Exemplos de métricas de diagnóstico, registos e registos de atividades
As métricas de diagnóstico e os registos e registos de atividades do Azure são emitidos por um serviço do Azure e fornecem dados sobre o funcionamento desse serviço.
As métricas de diagnóstico são agregadas com um intervalo de tempo de 1 minuto. Segue-se um exemplo de um esquema de eventos de métricas do Azure Data Explorer durante a consulta:
Os registos de atividades do Azure são registos ao nível da subscrição que fornecem informações sobre as operações realizadas nos recursos na sua subscrição. Segue-se um exemplo de um evento de registo de atividades para verificar o acesso:
Configurar um pipeline de ingestão no Azure Data Explorer
A configuração de um pipeline do Azure Data Explorer envolve vários passos, como a criação de tabelas e a ingestão de dados. Também pode manipular, mapear e atualizar os dados.
Ligar à IU web do Azure Data Explorer
Na base de dados TestDatabase do Azure Data Explorer, selecione Consulta para abrir a IU web do Azure Data Explorer.
Criar as tabelas de destino
A estrutura dos registos do Azure Monitor não é tabular. Irá manipular os dados e expandir cada evento para um ou mais registos. Os dados não processados serão ingeridos numa tabela intermédia chamada ActivityLogsRawRecords para registos de atividades e DiagnosticRawRecords para métricas de diagnóstico e registos. Nessa altura, os dados serão manipulados e expandidos. Com uma política de atualização, os dados expandidos serão ingeridos na tabela ActivityLogs para registos de atividades, DiagnosticMetrics para métricas de diagnóstico e Registos de Diagnóstico para registos de diagnóstico. Isto significa que terá de criar duas tabelas separadas para ingerir registos de atividades e três tabelas separadas para ingerir métricas de diagnóstico e registos.
Utilize a IU da Web do Azure Data Explorer para criar as tabelas de destino na base de dados do Azure Data Explorer.
Na base de dados TestDatabase , crie uma tabela com o nome DiagnosticMetrics para armazenar os registos de métricas de diagnóstico. Utilize o seguinte .create table comando de gestão:
Crie a tabela de dados intermédia denominada DiagnosticRawRecords na base de dados TestDatabase para manipulação de dados com a seguinte consulta. Selecione Executar para criar a tabela.
Na base de dados TestDatabase , crie uma tabela com o nome DiagnosticLogs para armazenar os registos de diagnóstico. Utilize o seguinte .create table comando de gestão:
Crie a tabela de dados intermédia denominada DiagnosticRawRecords na base de dados TestDatabase para manipulação de dados com a seguinte consulta. Selecione Executar para criar a tabela.
Crie uma tabela com o nome ActivityLogs na base de dados TestDatabase para receber registos de atividades. Para criar a tabela, execute a seguinte consulta de Data Explorer do Azure:
Uma vez que o formato de dados é json, é necessário o mapeamento de dados. O json mapeamento mapeia cada caminho json para um nome de coluna de tabela. Os caminhos JSON que incluem carateres especiais devem ser escapados como ['Nome da Propriedade']. Para obter mais informações, veja Sintaxe JSONPath.
Criar política de atualização de dados para métricas de diagnóstico
Crie uma função que expanda a coleção de registos de métricas de diagnóstico para que cada valor na coleção receba uma linha separada. Utilize 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)
}
Adicione a política de atualização à tabela de destino. Esta política irá executar automaticamente a consulta em quaisquer dados recentemente ingeridos na tabela de dados intermédios DiagnosticRawRecords e ingerir os resultados na tabela DiagnosticMetrics :
Criar política de atualização de dados para registos de diagnósticos
Crie uma função que expanda a coleção de registos de diagnósticos para que cada valor na coleção receba uma linha separada. Irá ativar os registos de ingestão num cluster do Azure Data Explorer e utilizar o esquema de registos de ingestão. Irá criar uma tabela para a ingestão com êxito e para ingestão falhada, enquanto alguns dos campos estarão vazios para ingestão com êxito (ErrorCode, por exemplo). Utilize o mv-expand operador :
Adicione a política de atualização à tabela de destino. Esta política irá executar automaticamente a consulta em quaisquer dados recentemente ingeridos na tabela de dados intermédio DiagnosticRawRecords e ingerir os resultados na tabela DiagnosticLogs :
Criar política de atualização de dados para registos de atividades
Crie uma função que expanda a coleção de registos de atividades para que cada valor na coleção receba uma linha separada. Utilize o mv-expand operador :
Adicione a política de atualização à tabela de destino. Esta política irá executar automaticamente a consulta em quaisquer dados recentemente ingeridos na tabela de dados intermédia ActivityLogsRawRecords e ingerir os respetivos resultados na tabela ActivityLogs :
As definições de diagnóstico do Azure permitem exportar métricas e registos para uma conta de armazenamento ou para um hub de eventos. Neste tutorial, vamos encaminhar as métricas e os registos através de um hub de eventos. Irá criar um espaço de nomes do hub de eventos e um hub de eventos para as métricas de diagnóstico e registos nos passos seguintes. O Azure Monitor irá criar as informações do hub de eventos-operational-logs para os registos de atividades.
Crie um hub de eventos com um modelo do Azure Resource Manager no portal do Azure. Para seguir os restantes passos neste artigo, clique com o botão direito do rato no botão Implementar no Azure e, em seguida, selecione Abrir numa nova janela. O botão Implementar no Azure direciona-o para o portal do Azure.
Ligar métricas de diagnóstico e registos ao hub de eventos
Selecione um recurso a partir do qual exportar métricas. Vários tipos de recursos suportam a exportação de dados de diagnóstico, incluindo o espaço de nomes dos hubs de eventos, o Azure Key Vault, o Hub IoT do Azure e os clusters do Azure Data Explorer. Neste tutorial, vamos utilizar um cluster do Azure Data Explorer como recurso. Vamos rever as métricas de desempenho de consultas e os registos de resultados de ingestão.
Selecione o cluster do Kusto no portal do Azure.
Selecione Definições de diagnóstico e, em seguida, selecione a ligação Ativar diagnóstico.
O painel Definições de diagnóstico é apresentado. Siga estes passos:
Atribua aos dados de registo de diagnóstico o nome ADXExportedData.
Em LOG, selecione as caixas de verificação SucceededIngestion e FailedIngestion .
Em MÉTRICA, selecione a caixa de verificação Desempenho da consulta.
Selecione a caixa de verificação Transmitir para um hub de eventos .
Selecione Configurar.
No painel Selecionar hub de eventos , configure como exportar dados de registos de diagnóstico para o hub de eventos que criou:
Na lista Selecionar espaço de nomes do hub de eventos , selecione AzureMonitoringData.
Na lista Selecionar nome do hub de eventos , selecione DiagnósticoDados.
Na lista Selecionar nome da política do hub de eventos , selecione RootManagerSharedAccessKey.
Selecione OK.
Selecione Guardar.
Ligar registos de atividades ao hub de eventos
No menu esquerdo do portal do Azure, selecione Registo de atividades.
É aberta a janela Registo de atividades. Selecione Definições de diagnóstico.
É aberta a janela Definições de diagnóstico. Selecione +Adicionar definição de diagnóstico.
É aberta uma nova janela Definição de diagnóstico .
Efetue os seguintes passos:
Introduza um nome no campo Nome da definição de diagnóstico .
No lado esquerdo das caixas de verificação, selecione os registos da plataforma que pretende recolher de uma subscrição.
Selecione a caixa de verificação Transmitir para um hub de eventos .
Selecione a sua subscrição.
Na lista Espaço de nomes do hub de eventos , selecione AzureMonitoringData.
Opcionalmente, selecione o nome do hub de eventos.
Na lista Nome da política do hub de eventos , selecione o nome predefinido da política do hub de eventos.
No canto superior esquerdo da janela, selecione Guardar. Será criado um hub de eventos com o nome insights-operational-logs (a menos que tenha selecionado um nome do Hub de eventos acima).
Ver dados a fluir para os hubs de eventos
Aguarde alguns minutos até que a ligação seja definida e a exportação do registo de atividades para o hub de eventos esteja concluída. Aceda ao espaço de nomes dos hubs de eventos para ver os hubs de eventos que criou.
Veja os dados que fluem para o hub de eventos:
Ligar um hub de eventos ao Azure Data Explorer
Agora, tem de criar as ligações de dados para as métricas de diagnóstico, registos e registos de atividades.
Criar a ligação de dados para métricas de diagnóstico, registos e registos de atividades
No cluster do Azure Data Explorer com o nome kustodocs, selecione Bases de dados no menu esquerdo.
Na janela Bases de Dados , selecione a base de dados TestDatabase .
No menu esquerdo, selecione Ingestão de dados.
Na janela Ingestão de dados , selecione + Adicionar Ligação de Dados.
Na janela Ligação de dados , introduza as seguintes informações:
Utilize as seguintes definições na janela Ligação de Dados :
Origem de dados:
Definição
Valor sugerido
Descrição do campo
Nome da ligação de dados
DiagnosticsLogsConnection
O nome da ligação que quer criar no Azure Data Explorer.
Espaço de nomes do hub de eventos
AzureMonitoringData
O nome que escolheu anteriormente que identifica o seu espaço de nomes.
Hub de eventos
DiagnosticData
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 para o encaminhamento: estático e dinâmico. Neste tutorial, irá utilizar o encaminhamento estático (a predefinição), onde especifica o nome da tabela, o formato de dados e o mapeamento. Deixe o campo Os meus dados incluem informações de encaminhamento não selecionado.
Definição
Valor sugerido
Descrição do campo
Tabela
DiagnosticRawRecords
A tabela que criou na base de dados TestDatabase .
Formato de dados
JSON
O formato utilizado na tabela.
Mapeamento de colunas
DiagnosticRawRecordsMapping
O mapeamento que criou na base de dados TestDatabase , que mapeia os dados JSON recebidos para os nomes de colunas e tipos de dados da tabela DiagnosticRawRecords .
Selecione Criar.
Utilize as seguintes definições na janela Ligação de Dados :
Origem de dados:
Definição
Valor sugerido
Descrição do campo
Nome da ligação de dados
ActivityLogsConnection
O nome da ligação que quer criar no Azure Data Explorer.
Espaço de nomes do hub de eventos
AzureMonitoringData
O nome que escolheu anteriormente que identifica o seu espaço de nomes.
Hub de eventos
insights-operational-logs
O hub de eventos que criou.
Grupo de consumidores
$Default
O grupo de consumidores predefinido. Se necessário, pode criar um grupo de consumidores diferente.
Tabela de destino:
Existem duas opções para o encaminhamento: estático e dinâmico. Neste tutorial, irá utilizar o encaminhamento estático (a predefinição), onde especifica o nome da tabela, o formato de dados e o mapeamento. Deixe o campo Os meus dados incluem informações de encaminhamento não selecionado.
Definição
Valor sugerido
Descrição do campo
Tabela
ActivityLogsRawRecords
A tabela que criou na base de dados TestDatabase .
Formato de dados
JSON
O formato utilizado na tabela.
Mapeamento de colunas
ActivityLogsRawRecordsMapping
O mapeamento que criou na base de dados TestDatabase , que mapeia os dados JSON recebidos para os nomes de colunas e tipos de dados da tabela ActivityLogsRawRecords .
Selecione Criar.
Consultar as novas tabelas
Tem agora um pipeline com fluxo de dados. Por predefinição, a ingestão através do cluster demora 5 minutos, pelo que permite que os dados fluam durante alguns minutos antes de começarem a consultar.
A consulta seguinte analisa os dados de duração da consulta dos registos 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
Consultar a tabela de registos de diagnóstico
Este pipeline produz ingestões através de um hub de eventos. Irá rever os resultados destas ingestões.
A consulta seguinte analisa quantas ingestões acumuladas num minuto, incluindo uma amostra de Databasee TableIngestionSourcePath para cada intervalo:
DiagnosticLogs
| where Timestamp > ago(15m) and OperationName has 'INGEST'
| summarize count(), take_any(Database, Table, IngestionSourcePath) by bin(Timestamp, 1m)