Estruturar consultas do Log Analytics
Os administradores criam consultas do Log Analytics a partir de dados armazenados em tabelas dedicadas em um espaço de trabalho do Log Analytics. Algumas tabelas dedicadas comuns incluem Event, Syslog, Heartbeat e Alert. Ao criar uma consulta KQL (Kusto Query Language), você começa determinando quais tabelas no repositório de Logs do Azure Monitor têm os dados que você está procurando.
A ilustração a seguir destaca como as consultas KQL usam os dados de tabela dedicados para seus serviços e recursos monitorados.
Coisas a saber sobre a estrutura de consulta KQL
Vamos dar uma olhada mais de perto nos dados de tabela dedicados e como estruturar uma consulta de log KQL.
Cada uma das fontes de dados e soluções selecionadas armazena seus dados em tabelas dedicadas no espaço de trabalho do Log Analytics.
A documentação para cada fonte de dados e solução inclui o nome do tipo de dados que ela cria e uma descrição de cada uma de suas propriedades.
A estrutura básica de uma consulta é uma tabela de origem seguida por uma série de comandos (referidos como operadores).
Uma consulta pode ter uma cadeia de vários operadores para refinar seus dados e executar funções avançadas.
Cada operador em uma cadeia de consulta começa com um caractere
|
de pipe.Muitas consultas exigem dados de uma única tabela apenas, mas outras consultas podem usar várias opções e incluir dados de várias tabelas.
Exemplos de consulta de log do KQL
Vamos analisar alguns operadores comuns de consulta de log KQL e sintaxe de exemplo.
Podemos criar consultas para pesquisar dados na StormEvent
tabela que tem cinco entradas:
tipo | evento | gravidade | iniciar | duration | region |
---|---|---|---|---|---|
Water |
Freezing rain |
1 |
6:00 AM 01-27-2023 |
3 hours |
1, 2 |
Wind |
High winds |
1 |
8:00 AM 01-27-2023 |
12 hours |
1, 2, 4, 5 |
Temperature |
Below freezing |
2 |
11:00 PM 01-26-2023 |
10 hours |
1, 2, 4, 5 |
Water |
Snow |
3 |
4:00 PM 01-26-2023 |
10 hours |
1, 2, 4, 5 |
Water |
Flood warning |
2 |
9:00 AM 01-26-2023 |
10 hours |
3 |
Para encontrar outros operadores e exemplos, revise: Analise dados de monitoramento com Kusto Query Language - Treinamento | Microsoft Learn.
Contar o número de itens
Use o count
operador para descobrir o número de registros em um conjunto de registros de entrada.
O exemplo a StormEvent
seguir retorna o número de registros na tabela. Os resultados da consulta revelam que a StormEvent
tabela tem cinco entradas.
StormEvent | count
Resultados da consulta:
contagem |
---|
5 |
Devolver o primeiro número de itens
Use o top
operador para ver os primeiros registros N do conjunto de registros de entrada, classificados pelas colunas especificadas. As colunas correspondem às propriedades de dados definidas na tabela dedicada.
O exemplo a seguir retorna os três primeiros registros de dados para StormEvent
. A tabela de resultados mostra o nome da tempestade event
, a gravidade e a duração prevista.
StormEvent | top 3 by event severity duration
Resultados da consulta:
evento | gravidade | duration |
---|---|---|
Freezing rain |
1 |
3 hours |
High winds |
1 |
12 hours |
Below freezing |
2 |
10 hours |
Encontrar itens correspondentes
Use o where
operador para filtrar sua tabela para o subconjunto de linhas que correspondem ao valor de predicado fornecido. O valor do predicado indica o que procurar na tabela, como em where=="find-this"
.
O exemplo a seguir filtra os registros de dados para StormEvent
usar apenas registros que correspondem a "neve".
StormEvent | where event=="snow"
Sua consulta filtra para uma linha na StormEvent
tabela:
tipo | evento | gravidade | iniciar | duration | region |
---|---|---|---|---|---|
Water |
Snow |
3 |
4:00 PM 01-26-2023 |
10 hours |
1, 2, 4, 5 |