← Back to list

Monitoramento em Tempo Real com Event Hubs + ADX na Azure

Guia introdutório para iniciantes

Hugo Habbema · 2025-07-21 03:04 · 0 claps · 3.7 min read
#azure-event-hub #azure-data-explorer
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud

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_str no 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