📚
AZ-104 na prática
Artigo 14
Ver série completa →
Infra

AZ-104 na prática [14]: Azure Monitor e Log Analytics

Monitorar o ambiente Azure é fundamental para garantir disponibilidade, performance e segurança. O Azure Monitor é a plataforma central para coleta e análise de dados de telemetria.

Tipos de dados no Azure Monitor

Métricas, valores numéricos coletados em intervalos regulares (CPU %, bytes de rede, IOPS). Retidos por 93 dias por padrão.

Logs, registros estruturados de eventos e operações. Armazenados no Log Analytics Workspace, retidos por 30 dias por padrão (configurável até 2 anos).

Log Analytics Workspace

# Criar workspace
az monitor log-analytics workspace create \
  --resource-group meu-rg \
  --workspace-name meu-workspace \
  --location brazilsouth \
  --sku PerGB2018 \
  --retention-time 90

# Conectar VM ao workspace (via Azure Monitor Agent)
az vm extension set \
  --resource-group meu-rg \
  --vm-name minha-vm \
  --name AzureMonitorLinuxAgent \
  --publisher Microsoft.Azure.Monitor \
  --version 1.0

Queries KQL

KQL (Kusto Query Language) é a linguagem de consulta do Log Analytics:

// VMs com CPU acima de 90% nas últimas 24h
Perf
| where TimeGenerated > ago(24h)
| where ObjectName == "Processor" and CounterName == "% Processor Time"
| where CounterValue > 90
| summarize MaxCPU = max(CounterValue) by Computer
| order by MaxCPU desc

// Falhas de login nas últimas 6h
SecurityEvent
| where TimeGenerated > ago(6h)
| where EventID == 4625
| summarize FailedLogins = count() by Account, Computer
| where FailedLogins > 5
| order by FailedLogins desc

// Eventos de criação de recursos
AzureActivity
| where TimeGenerated > ago(7d)
| where OperationNameValue endswith "write"
| where ActivityStatusValue == "Success"
| project TimeGenerated, Caller, ResourceGroup, ResourceId

Alertas

# Alerta de métrica: CPU > 80% por 5 minutos
az monitor metrics alert create \
  --name alerta-cpu \
  --resource-group meu-rg \
  --scopes /subscriptions/{sub-id}/resourceGroups/meu-rg/providers/Microsoft.Compute/virtualMachines/minha-vm \
  --condition "avg Percentage CPU > 80" \
  --window-size 5m \
  --evaluation-frequency 1m \
  --action /subscriptions/{sub-id}/resourceGroups/meu-rg/providers/microsoft.insights/actionGroups/meu-ag \
  --severity 2

# Criar action group
az monitor action-group create \
  --resource-group meu-rg \
  --name meu-ag \
  --short-name ag \
  --email-receiver name=admin address=admin@empresa.com

Diagnostic Settings

Configure quais logs e métricas são enviados para onde:

az monitor diagnostic-settings create \
  --resource /subscriptions/{sub-id}/resourceGroups/meu-rg/providers/Microsoft.Network/networkSecurityGroups/nsg-web \
  --name diag-nsg \
  --workspace /subscriptions/{sub-id}/resourceGroups/meu-rg/providers/Microsoft.OperationalInsights/workspaces/meu-workspace \
  --logs '[{"category": "NetworkSecurityGroupFlowEvent", "enabled": true}]'
Dica para o exame: Application Insights é um subcomponente do Azure Monitor para monitoramento de aplicações (disponibilidade, performance, exceções). Pode ser baseado em workspace (recomendado) ou clássico. O SDK do Application Insights permite instrumentação personalizada no código.

Network Watcher

# Verificar conectividade entre dois recursos
az network watcher test-connectivity \
  --source-resource /subscriptions/{sub-id}/resourceGroups/meu-rg/providers/Microsoft.Compute/virtualMachines/vm-origem \
  --dest-address 10.0.2.4 \
  --dest-port 443

# Capturar pacotes de rede
az network watcher packet-capture create \
  --resource-group meu-rg \
  --vm minha-vm \
  --name captura-01 \
  --storage-account meu-storage \
  --time-limit 300

O que cai no exame

  • Diferença entre Métricas (tempo real) e Logs (histórico, KQL)
  • Como configurar alertas de métrica e de log
  • Que Diagnostic Settings conectam recursos ao Log Analytics
  • Application Insights e seus recursos (availability tests, live metrics)
  • Network Watcher para troubleshooting de rede