Monitorização
e Custos
Monitorizar a infraestrutura é tão importante quanto criá-la. Sem visibilidade, não sabes quando algo falha ou está prestes a falhar — e sem controlo de custos, as surpresas na fatura podem ser desagradáveis. Neste módulo final fechamos o ciclo.
1 Azure Monitor
O Azure Monitor é a plataforma central de observabilidade do Azure. Recolhe, analisa e actua sobre dados de telemetria de recursos Azure, aplicações e ambientes on-premises.
Recolha · Análise · Visualização · Acção
Metrics
Valores numéricos em série temporal (CPU %, RAM, requests/s). Leves, recolhidos automaticamente. Retidos 93 dias.
Logs
Registos de eventos estruturados com contexto rico. Consultados com KQL (Kusto Query Language). Retidos conforme configuração.
Application Insights
APM (Application Performance Monitoring) para aplicações web. Rastreamento de pedidos, dependências, erros e utilizadores.
Service Map
Descoberta automática de dependências entre componentes. Visualiza a arquitectura real da tua aplicação.
2 Métricas
As métricas são valores numéricos que representam o estado de um recurso num momento no tempo. São recolhidas automaticamente de todos os recursos Azure — não precisas de configurar nada para começar a vê-las.
Abrir Metrics Explorer
Portal Azure → selecciona qualquer recurso (ex: uma VM) → Metrics no menu lateral. Ou pesquisa "Monitor" → Metrics.
Escolher o recurso e a métrica
Scope: selecciona o recurso · Metric namespace: ex "Virtual Machine Host" · Metric: "Percentage CPU" · Aggregation: Average
Definir o intervalo de tempo
Usa o selector de tempo no canto superior direito: Last 1 hour, Last 24 hours, Last 30 days ou intervalo personalizado.
Guardar no Dashboard
Clica em "Pin to dashboard" para adicionar o gráfico ao teu dashboard personalizado. Cria um dashboard por ambiente/projecto.
3 Log Analytics e KQL
O Log Analytics Workspace é o repositório central de logs do Azure Monitor. Os logs são consultados com KQL (Kusto Query Language) — uma linguagem poderosa mas com curva de aprendizagem suave.
# Criar workspace
az monitor log-analytics workspace create \
--workspace-name law-lab-mod7 \
--resource-group rg-lab-mod3 \
--location PortugalCentral \
--retention-time 30 # dias de retenção (padrão: 30, máx: 730)
# Ligar VM ao workspace (activar diagnóstico)
az monitor diagnostic-settings create \
--name diag-vm-lab \
--resource $(az vm show --resource-group rg-lab-mod3 --name vm-lab01 --query id -o tsv) \
--workspace $(az monitor log-analytics workspace show \
--workspace-name law-lab-mod7 \
--resource-group rg-lab-mod3 --query id -o tsv) \
--metrics '[{"category":"AllMetrics","enabled":true}]'
KQL — Consultas essenciais
// Ver métricas de CPU das VMs nas últimas 24h (percentis)
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time"
| where TimeGenerated > ago(24h)
| summarize avg(CounterValue), max(CounterValue) by Computer, bin(TimeGenerated, 1h)
| render timechart
// Ver todos os erros das últimas 6 horas
AzureDiagnostics
| where Level == "Error"
| where TimeGenerated > ago(6h)
| project TimeGenerated, Resource, Category, OperationName, ResultDescription
| order by TimeGenerated desc
// Top 10 recursos com mais actividade
AzureActivity
| where TimeGenerated > ago(7d)
| summarize count() by ResourceGroup
| top 10 by count_
| render barchart
// Logins falhados nas últimas 24h
SigninLogs
| where TimeGenerated > ago(24h)
| where ResultType != "0" // 0 = sucesso, qualquer outro = falha
| summarize Falhas=count() by UserPrincipalName, IPAddress
| sort by Falhas desc
4 Alertas
Os alertas notificam-te (email, SMS, webhook, Teams...) quando uma condição específica é cumprida — CPU acima de 90%, VM parada, custo mensal ultrapassado, etc.
Metric Alert
Dispara quando uma métrica (CPU, RAM, requests) excede um limiar. Resolução automática quando volta ao normal.
Log Alert
Dispara com base em consultas KQL. Ex: "mais de 10 erros 500 em 5 minutos".
Activity Log Alert
Dispara com eventos administrativos: VM eliminada, role atribuída, policy alterada.
Action Group
Define o que acontece quando o alerta dispara: email, SMS, webhook, Azure Function, ticket ITSM.
# 1. Criar Action Group (quem recebe a notificação)
az monitor action-group create \
--name ag-lab-email \
--resource-group rg-lab-mod3 \
--short-name ag-lab \
--action email meu-email meuendereco@email.com
# 2. Criar alerta de métrica: CPU > 80% por 5 minutos
az monitor metrics alert create \
--name alerta-cpu-alta \
--resource-group rg-lab-mod3 \
--scopes $(az vm show --resource-group rg-lab-mod3 --name vm-lab01 --query id -o tsv) \
--condition "avg Percentage CPU > 80" \
--window-size 5m \
--evaluation-frequency 1m \
--action ag-lab \
--description "Alerta: CPU da VM Lab acima de 80%"
# 3. Listar alertas activos
az monitor alert list \
--resource-group rg-lab-mod3 \
--output table
5 Gestão de Custos (Cost Management)
O Azure Cost Management + Billing é a ferramenta essencial para compreender, analisar e controlar os gastos Azure. Disponível para todos os utilizadores — mesmo na conta gratuita.
Aceder ao Cost Management
Portal Azure → pesquisa Cost Management → Cost Management + Billing → selecciona a tua subscrição → Cost analysis
Analisar gastos por serviço
Na vista Cost analysis, muda o agrupamento para "Service name" — vês exactamente o que cada serviço está a custar. Filtra por grupo de recursos para isolar um projecto.
Criar um Orçamento (Budget)
Cost Management → Budgets → + Add → Scope: subscrição · Valor: 10 USD (seguro para avaliação) · Alerta a 80% e 100%.
Ver previsão de custo
Na análise de custo, o Azure mostra a previsão para o resto do mês com base no consumo actual. Se a previsão exceder o orçamento, actua imediatamente.
6 Calculadora de Preços Azure
Antes de criar qualquer infraestrutura em produção, estima os custos na Azure Pricing Calculator em azure.microsoft.com/pricing/calculator.
Pricing Calculator
Estima custos antes de criar recursos. Exporta como Excel. Compara cenários alternativos.
azure.microsoft.com/pricing/calculator
TCO Calculator
Total Cost of Ownership — compara o custo de manter servidores on-premises vs. migrar para Azure.
azure.microsoft.com/pricing/tco
Cost Advisor
Recomendações automáticas de poupança: VMs subdimensionadas, Reserved Instances, recursos não utilizados.
Tags de Custo
Marca recursos com tags (Projecto, Departamento, Ambiente) para agrupar e reportar custos por centro de custo.
7 Estratégias de Otimização de Custos
| Estratégia | Poupança típica | Como implementar |
|---|---|---|
| Reserved Instances | 40-72% | Compromisso de 1 ou 3 anos para VMs ou DBs previsíveis. Paga antecipadamente ou mensalmente. |
| Azure Hybrid Benefit | 40-85% | Usa licenças Windows Server ou SQL Server existentes para reduzir custo das VMs. |
| Spot VMs | até 90% | VMs com capacidade excedentária, preço variável. Para workloads tolerantes a interrupções (batch, CI/CD). |
| Auto-shutdown | 30-60% | Para VMs de dev/test fora do horário de trabalho (ex: desligar às 19h, ligar às 8h). |
| Right-sizing | 10-30% | Redimensionar VMs sobredimensionadas. O Azure Advisor sugere tamanhos mais adequados com base no histórico. |
| Lifecycle policies | Variable | Mover dados Storage para Cool/Archive automaticamente. Para blobs raramente acedidos, reduz 50-90%. |
| Eliminar recursos não usados | 100% | IPs públicos soltos, discos sem VM, Load Balancers sem backend — custam mas não servem nada. |
# Listar IPs públicos não associados (custo sem utilidade)
az network public-ip list \
--query "[?ipConfiguration==null].{Nome:name, IP:ipAddress, Grupo:resourceGroup}" \
--output table
# Listar discos não associados a nenhuma VM
az disk list \
--query "[?managedBy==null].{Nome:name, Tamanho:diskSizeGb, SKU:sku.name, Grupo:resourceGroup}" \
--output table
# Listar VMs paradas (não deallocated — ainda a custar)
az vm list \
--show-details \
--query "[?powerState=='VM stopped'].{Nome:name, Estado:powerState, Grupo:resourceGroup}" \
--output table
# Ver recomendações do Azure Advisor (inclui custos)
az advisor recommendation list \
--category Cost \
--output table
Lab 7 — Monitorização completa, alertas e análise de custos
Dashboard de monitorização + controlo de custos
- Cria um Log Analytics Workspace:
az monitor log-analytics workspace create --workspace-name law-lab-final --resource-group rg-lab-mod3 --location PortugalCentral - No portal, vai a Azure Monitor → Metrics. Selecciona a VM
vm-lab01como scope. Adiciona a métrica "Percentage CPU". Anota o valor médio das últimas 24h. - Cria um Action Group com o teu email:
az monitor action-group create --name ag-final --resource-group rg-lab-mod3 --short-name ag-final --action email meu-alerta meu@email.com - Cria um alerta de CPU:
az monitor metrics alert create --name alerta-cpu-lab --resource-group rg-lab-mod3 --scopes $(az vm show -g rg-lab-mod3 -n vm-lab01 --query id -o tsv) --condition "avg Percentage CPU > 80" --window-size 5m --evaluation-frequency 1m --action ag-final - Vai a Cost Management + Billing → Cost analysis. Agrupa por "Service name". Que serviços estão a custar mais? Qual o custo total acumulado até agora?
- Cria um Budget de 5 USD: Cost Management → Budgets → + Add → Scope: subscrição · Valor: 5 USD · Alertas: 80% e 100%.
- Na linha de comandos:
az network public-ip list --query "[?ipConfiguration==null].{Nome:name}" --output table— há IPs soltos a custar desnecessariamente? - 🧹 Limpeza final:
az group delete --name rg-lab-mod3 --yes --no-wait. Isto elimina TODOS os recursos criados durante o curso de uma vez!
Verifica os teus conhecimentos — Módulo 7 e revisão geral
1. Qual a diferença entre Métricas e Logs no Azure Monitor?
2. Um Budget Azure de 50 USD foi configurado com alerta a 100%. O que acontece quando os gastos atingem 50 USD?
3. (Revisão geral) Uma empresa tem VMs que só são usadas durante o horário comercial (9h-18h, dias úteis). Qual a melhor estratégia para reduzir custos?
8 Próximos Passos
Concluíste o curso Azure · Edu PT! Aqui ficam os caminhos recomendados para continuar a aprender:
Certificações Microsoft Azure
Azure Fundamentals
Conceitos cloud, serviços Azure, segurança, privacidade, compliance e preços. O ponto de partida perfeito após este curso.
Azure Administrator
Gerir identidades, governança, armazenamento, compute, redes e monitorização. Para administradores de sistemas.
Azure Developer
Desenvolver soluções cloud, integrar serviços, implementar segurança e monitorização em aplicações.
Azure Architect
Arquitectar soluções Azure — identidade, governança, dados, continuidade, infra e aplicações.
DevOps Engineer
Azure DevOps, GitHub Actions, pipelines CI/CD, IaC com Terraform e Bicep, segurança DevSecOps.
AI Fundamentals
Conceitos de IA, machine learning e serviços cognitivos Azure. Bom complemento após o AZ-900.
Tópicos avançados para explorar
Azure Bicep / Terraform
Infraestrutura como código (IaC) — define toda a infraestrutura em ficheiros declarativos e versiona no Git.
Azure DevOps / GitHub Actions
Pipelines CI/CD para automatizar build, test e deploy de aplicações e infraestrutura.
Azure AI / OpenAI
Azure OpenAI Service, Cognitive Services, Machine Learning Studio — IA como serviço.
Azure SQL / Cosmos DB
Bases de dados geridas — SQL Database, PostgreSQL Flexible Server, Cosmos DB para NoSQL global.
Azure Service Bus / Event Grid
Mensageria empresarial e eventos — arquitecturas event-driven e microsserviços desacoplados.
Azure Arc
Gere recursos fora do Azure (on-premises, AWS, GCP) a partir do portal Azure com políticas e monitoring unificados.