0Pricing
Azure Fundamentals · Aula

Fundamentos do Log Analytics e KQL

Ingira registros de diagnóstico em um espaço de trabalho do Log Analytics e escreva consultas na Kusto Query Language para filtrar, agregar e visualizar dados operacionais.

Fundamentos do Log Analytics e KQL é uma aula grátis de Azure Fundamentals no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Azure Fundamentals, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Azure Fundamentals inclui 4 aulas no total.

O que é um espaço de trabalho do Log Analytics?

Um espaço de trabalho do Log Analytics é o repositório central de dados do Azure Monitor para dados de registros e telemetria. Quando você configura as configurações de diagnóstico em um recurso do Azure, os registros estruturados e as métricas são enviados para o espaço de trabalho. Em seguida, você pode consultar os dados usando a Kusto Query Language (KQL). Um espaço de trabalho tem sua própria política de retenção (30 dias por padrão, até 730 dias) e seus próprios controles de acesso.

# Create a Log Analytics workspace
az monitor log-analytics workspace create \
  --resource-group myRG \
  --workspace-name myWorkspace \
  --location eastus \
  --retention-time 90

Como enviar registros de diagnóstico para um espaço de trabalho

Todo recurso do Azure pode emitir registros de diagnóstico — registros detalhados de operações como chamadas de API, eventos de autenticação e execução de consultas. Você os habilita por meio das Configurações de diagnóstico no recurso, especificando o destino como seu espaço de trabalho do Log Analytics. As categorias comuns de registros incluem AuditEvent para Key Vault, AppServiceHTTPLogs para App Service e NetworkSecurityGroupFlowEvent para NSGs.

# Enable diagnostic settings to send Key Vault logs to Log Analytics
az monitor diagnostic-settings create \
  --name 'KVLogs' \
  --resource /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myKV \
  --workspace myWorkspace \
  --logs '[{"category":"AuditEvent","enabled":true}]'

Introdução à sintaxe do KQL

A Kusto Query Language (KQL) é uma linguagem de consulta somente leitura para analisar dados de registros. Uma consulta KQL é lida da esquerda para a direita como uma cadeia: começa com um nome de tabela e, em seguida, passa pelo pipe (|) por meio de operadores. Entre os operadores comuns estão where para filtragem, project para selecionar colunas, summarize para agregação e order by para ordenação. O KQL diferencia maiúsculas de minúsculas nos nomes de colunas, mas não nas palavras-chave.

// Basic KQL query structure
AzureActivity
| where TimeGenerated > ago(24h)
| where OperationNameValue == 'MICROSOFT.COMPUTE/VIRTUALMACHINES/DELETE'
| project TimeGenerated, Caller, ResourceGroup, Resource
| order by TimeGenerated desc

Filtragem com o operador Where

O operador where filtra linhas usando expressões booleanas. Você pode combinar condições com and, or e not. O operador has realiza uma pesquisa que não diferencia maiúsculas de minúsculas e respeita os limites das palavras em cadeias de caracteres, enquanto contains faz uma pesquisa por substring. O operador in testa a associação a uma lista. Use ago() para expressar intervalos de tempo relativos, como ago(1h) ou ago(7d).

// Filter for failed HTTP requests in the last hour
AppRequests
| where TimeGenerated > ago(1h)
| where Success == false
| where ResultCode in (500, 502, 503)
| project TimeGenerated, Name, ResultCode, DurationMs
| order by DurationMs desc

Agregação de dados com Summarize

O operador summarize calcula agregações entre linhas. As funções de agregação comuns incluem count(), sum(), avg(), max(), min() e dcount() para contagem distinta. Você pode agrupar por uma ou mais colunas usando a cláusula by. A função bin() arredonda os carimbos de data e hora para intervalos, permitindo a agregação de séries temporais.

// Count failed requests per hour per endpoint
AppRequests
| where TimeGenerated > ago(24h)
| where Success == false
| summarize FailureCount = count() by bin(TimeGenerated, 1h), Name
| order by TimeGenerated desc, FailureCount desc

Junção de tabelas no KQL

O KQL é compatível com join para correlacionar dados de várias tabelas. O tipo de junção padrão é innerunique, mas você pode especificar inner, leftouter, rightouter ou fullouter. Um padrão comum é unir AzureActivity a AzureMetrics para correlacionar alterações administrativas com quedas de desempenho. O operador lookup é uma alternativa mais leve para enriquecer linhas usando uma pequena tabela de referência.

// Correlate VM restarts with CPU spike events
AzureActivity
| where OperationNameValue has 'restart'
| join kind=leftouter (
    AzureMetrics
    | where MetricName == 'Percentage CPU'
    | where Average > 90
) on ResourceId
| project TimeGenerated, Resource, Average

Visualização dos resultados do KQL

Depois de escrever uma consulta no portal do Log Analytics, você pode renderizar os resultados como um gráfico temporal, gráfico de barras, gráfico de pizza ou tabela usando o operador render. Você também pode fixar qualquer resultado de consulta em um painel do Azure ou salvá-lo como uma pasta de trabalho. O comando render timechart transforma uma consulta de séries temporais com summarize em um gráfico de linhas instantâneo para análise de tendências.

// Render a time chart of request counts per 5-minute interval
AppRequests
| where TimeGenerated > ago(4h)
| summarize RequestCount = count() by bin(TimeGenerated, 5m)
| render timechart

Alertas de pesquisa de registros

Os alertas de pesquisa de registros executam uma consulta KQL segundo uma programação e são acionados quando o resultado atende a uma condição, como uma contagem de resultados maior que zero ou uma coluna numérica que excede um limite. Eles são mais flexíveis que os alertas de métricas, pois permitem consultar quaisquer dados de registros em várias tabelas. A frequência de avaliação e a janela de tempo são configuráveis de forma independente — por exemplo, executar a cada 5 minutos considerando os últimos 15 minutos.

// Example log search alert condition: more than 5 exceptions in 15 min
AppExceptions
| where TimeGenerated > ago(15m)
| summarize ExceptionCount = count()
// Alert when ExceptionCount > 5

Referência das tabelas de registros comuns

O Azure Monitor armazena registros em tabelas conhecidas. AzureActivity registra operações no nível da assinatura. SecurityEvent contém registros de segurança do Windows provenientes de VMs com o agente do Log Analytics. Heartbeat mostra a conectividade do agente (uma linha por minuto para cada VM conectada). AppRequests, AppExceptions e AppDependencies vêm do Application Insights. Conhecer esses nomes de tabela é essencial para escrever consultas operacionais eficazes.

Retenção e custos do espaço de trabalho

A precificação do Log Analytics tem dois componentes: ingestão de dados (por GB ingerido) e retenção de dados (os primeiros 30 dias são gratuitos; depois, é cobrado um valor por GB por mês além do padrão). Você pode reduzir os custos filtrando categorias de registros ruidosas antes da ingestão, usando Basic Logs para dados de alto volume e baixo valor a um preço reduzido e arquivando dados antigos no Azure Data Explorer ou em armazenamento frio para retenção de conformidade de longo prazo.

Modelos de controle de acesso ao espaço de trabalho

Os espaços de trabalho do Log Analytics são compatíveis com dois modelos de controle de acesso. No modo workspace-context, um usuário com acesso de Leitura ao espaço de trabalho pode consultar todas as tabelas. No modo resource-context, um usuário pode consultar apenas os registros emitidos pelos recursos que ele tem permissão RBAC para ler — mesmo sem acesso explícito ao espaço de trabalho. O modo resource-context é recomendado para organizações grandes nas quais equipes diferentes são responsáveis por recursos diferentes.

Verificação rápida

Teste sua compreensão dos conceitos do Microsoft Azure Fundamentals (AZ-900) abordados nesta lição.

Recapitulação da lição

Nesta lição, você aprendeu que os espaços de trabalho do Log Analytics centralizam dados de registros de diagnóstico dos recursos do Azure, que os operadores do KQL, como where, summarize e render, permitem filtrar, agregar e visualizar registros, e que os alertas de pesquisa de registros acionam respostas automatizadas quando o resultado de uma consulta KQL atende a uma condição definida. A seguir, exploraremos o Application Insights para obter telemetria no nível da aplicação.

Perguntas Frequentes

A aula “Fundamentos do Log Analytics e KQL” é grátis?

Sim — o texto completo de “Fundamentos do Log Analytics e KQL” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Azure Fundamentals, atualize para CoddyKit PRO. O curso de Azure Fundamentals inclui 4 aulas no total.

O que vou aprender em “Fundamentos do Log Analytics e KQL”?

Ingira registros de diagnóstico em um espaço de trabalho do Log Analytics e escreva consultas na Kusto Query Language para filtrar, agregar e visualizar dados operacionais. Você pratica Azure Fundamentals com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Azure Fundamentals?

Nenhuma experiência prévia é necessária. Azure Fundamentals no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Fundamentos do Log Analytics e KQL”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Azure Fundamentals?

Sim. Cada aula de Azure Fundamentals inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Métricas e Alertas do Azure Monitor
  2. Fundamentos do Log Analytics e KQL
  3. Application Insights
  4. Painéis e Livros de Trabalho do Azure
← Voltar para Azure Fundamentals