Monitoramento em Tempo Real com Event Hubs + ADX na Azure
Guia introdutório para iniciantes

Monitoramento em Tempo Real com Event Hubs + ADX na Azure
Guia introdutório para iniciantes
Introdução
Neste guia prático, você vai aprender como coletar eventos em tempo real com o Azure Event Hubs e armazená-los no Azure Data Explorer (ADX) para análise rápida e consultas com Kusto Query Language (KQL).
O que é o Azure Event Hubs?
O Event Hubs é uma plataforma de streaming de dados da Azure, ideal para ingestão de grandes volumes de eventos — como logs de aplicações, sensores IoT, cliques em sites, e muito mais.
Trata-se de um serviço de mensageria capaz de receber milhões de mensagens por segundo de forma escalável e confiável.
O que é o Azure Data Explorer (ADX)?
O ADX é um banco de dados analítico otimizado para consultas rápidas de grandes volumes de dados de séries temporais. Ele usa a linguagem KQL para explorar dados quase em tempo real.
É como um “Google para seus logs”, capaz de responder perguntas em segundos.
Por que usar Event Hubs + ADX?
Juntos, Event Hubs e ADX formam uma solução poderosa para ingestão e análise de dados em tempo real:
✅ Event Hubs coleta os eventos ✅ ADX armazena, indexa e permite consultas rápidas ✅ Integração nativa via conexão direta
Laboratório na prática: Integrando Event Hubs com ADX
1. Criar o Resource Group
az group create --name rg-event-logs --location eastus
2. Criar o Event Hub Namespace e Hub
az eventhubs namespace create --name ehnamespacehugo --resource-group rg-event-logs --location eastus --sku Standard
az eventhubs eventhub create --name logs-app --namespace-name ehnamespacehugo --resource-group rg-event-logs
3. Criar o Azure Data Explorer Cluster
az kusto cluster create \
--name clusteradxhugo \
--resource-group rg-event-logs \
--location eastus \
--sku name="Dev(No SLA)_Standard_D11_v2" tier=Basic capacity=1
Consultar sku names.
4. Criar o banco no ADX
az kusto database create \
--cluster-name clusteradxhugo \
--resource-group rg-event-logs \
--database-name logsdb \
--read-write-database location="eastus" soft-delete-period="P7D" hot-cache-period="P1D"
5. Criar uma Tabela no ADX
Acesse o ADX Web UI (https://dataexplorer.azure.com) e execute:
.create table LogsAppRaw (
eventTime: datetime,
level: string,
message: string,
source: string
)
E o mapeamento:
.create table LogsAppRaw ingestion json mapping "logs_mapping" '[{"column":"eventTime","path":"$.eventTime"},{"column":"level","path":"$.level"},{"column":"message","path":"$.message"},{"column":"source","path":"$.source"}]'
6. Conectar Event Hub ao ADX
Essa etapa pode ser feita pelo portal ou CLI. Pelo portal:
Acesse o cluster do ADX → Banco de dados logsdb

Vá até “Data ingestion” → “Add data connection”

Escolha “Event Hub” como origem

Selecione o Event Hub logs-app criado anteriormente

Crie ou selecione a tabela destino e clique em criar

Conexão criada!
Pelo CLI, podemos utilizar o comando abaixo:
az kusto data-connection event-hub create \
--cluster-name clusteradxhugo \
--database-name logsdb \
--data-connection-name conn-evh-logs \
--resource-group rg-event-logs \
--event-hub-resource-id "/subscriptions/<ID>/resourceGroups/rg-event-logs/providers/Microsoft.EventHub/namespaces/ehnamespacehugo/eventhubs/logs-app" \
--consumer-group "$Default" \
--location eastus \
--managed-identity "/subscriptions/<ID>/resourceGroups/rg-event-logs/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<IDENTITY>" \
--table-name LogsAppRaw \
--mapping-rule-name logs_mapping \
--data-format JSON
7. Obtenha a connection string correta via CLI:
az eventhubs namespace authorization-rule keys list \
--resource-group rg-event-logs \
--namespace-name ehnamespacehugo \
--name RootManageSharedAccessKey \
--query primaryConnectionString \
-o tsv
Use o valor retornado para
connection_strno Python.
8. Testando com um evento
Use este script em Python para enviar um evento:
from azure.eventhub import EventHubProducerClient, EventData
import json
import datetime
# Connection string e nome do Event Hub
connection_str = "Endpoint=sb://ehnamespacehugo.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=TDfb2wO1vP20pR8vA1U1aweab+3uAoeOV+AEhIve9WY="
eventhub_name = "logs-app"
# Cliente produtor
producer = EventHubProducerClient.from_connection_string(
conn_str=connection_str,
eventhub_name=eventhub_name
)
# Evento JSON
event_data = {
"eventTime": datetime.datetime.utcnow().isoformat(),
"level": "INFO",
"message": "Usuário acessou o sistema",
"source": "web-app"
}
# Enviando
with producer:
event_batch = producer.create_batch()
event_batch.add(EventData(json.dumps(event_data)))
producer.send_batch(event_batch)
print("✅ Evento enviado com sucesso!")
Resultado

9. Consultando com KQL
LogsAppRaw
| order by eventTime desc
| take 5
Resultado

Conclusão
Você agora tem um pipeline de eventos em tempo real, com dados fluindo do Event Hubs para o Azure Data Explorer, pronto para ser analisado com KQL.
Esse setup pode ser expandido para monitoramento, alertas, auditoria, e dashboards com Power BI.
Até a próxima!
메타데이터
- post_id
- 156802eba0cf
- slug
- monitoramento-em-tempo-real-com-event-hubs-adx-na-azure-156802eba0cf
- url
- https://medium.com/@habbema/monitoramento-em-tempo-real-com-event-hubs-adx-na-azure-156802eba0cf
- canonical_url
- https://medium.com/@habbema/monitoramento-em-tempo-real-com-event-hubs-adx-na-azure-156802eba0cf
- author_url
- https://medium.com/@habbema
- status
- ok
- fetched_at
- 2026-07-10 06:45:42