Transmitir por streaming dados de monitoramento do Azure para um hub de eventos ou para um parceiro externo

Na maioria dos casos, o método mais eficaz para transmitir por streaming dados do Azure Monitor para ferramentas externas é usar os Hubs de Eventos do Azure. Este artigo fornece uma breve descrição sobre como transmitir dados e lista alguns dos parceiros para os quais você pode enviá-los. Alguns parceiros têm integração especial com o Azure Monitor e podem ser hospedados no Azure.

Criar um namespace dos Hubs de Eventos

Antes de configurar o streaming para qualquer fonte de dados, é necessário criar um namespace no Hubs de Eventos e um hub de eventos. Esse namespace e hub de eventos é o destino para todos os seus dados de monitoramento. Um namespace dos Hubs de Eventos é um agrupamento lógico de hubs de eventos que compartilham a mesma política de acesso, assim como uma conta de armazenamento tem blobs individuais dentro dessa conta de armazenamento. Considere os seguintes detalhes sobre o namespace de Hubs de Eventos e dos hubs de eventos usados para transmitir por streaming dados de monitoramento:

  • O número de unidades de taxa de transferência permite aumentar a escala de taxa de transferência para os hubs de eventos. Normalmente, é necessária apenas uma unidade de produtividade. Se for necessário escalar verticalmente conforme o uso de log aumenta, é possível aumentar manualmente o número de unidades de produtividade para o namespace ou habilitar a inflação automática.
  • O número de partições permite paralelizar o consumo em muitos consumidores. Uma única partição pode suportar até 20 MBps ou aproximadamente 20.000 mensagens por segundo. Dependendo da ferramenta que consome os dados, poderá ou não dar suporte ao consumo de várias partições. Quatro partições são razoáveis para começar se você não tiver certeza sobre o número de partições a serem definidas.
  • Você define a retenção de mensagens em seu hub de eventos para pelo menos sete dias. Se sua ferramenta de consumo ficar inativa por mais de um dia, essa retenção garante que a ferramenta possa continuar de onde parou para eventos de até sete dias.
  • Deve ser utilizado o grupo de consumidores padrão para o hub de eventos. Não há necessidade de criar outros grupos de consumidores ou usar um grupo de consumidores separado, a menos que você planeje que duas ferramentas diferentes consumam os mesmos dados do mesmo hub de eventos.
  • Para o log de atividades do Azure, escolha um namespace dos Hubs de Eventos e o Azure Monitor criará um hub de eventos dentro desse namespace chamado insights-logs-operational-logs. Para outros tipos de log, é possível escolher um hub de eventos existente ou que o Azure Monitor crie um hub de eventos por categoria de log.
  • Normalmente, as portas de saída 5671 e 5672 devem ser abertas no computador ou na rede virtual que consome os dados do hub de eventos.

Dados de monitoramento disponíveis

As Fontes de dados de monitoramento do Azure Monitor e seus métodos de coleta de dados descrevem os diferentes tipos de dados coletados pelo Azure Monitor e os métodos usados para coletá-los. Consulte esse artigo para obter os dados que podem ser transmitidos para um hub de eventos e links para detalhes de configuração.

Transmitir dados de diagnóstico

Use as configurações de diagnóstico para transmitir logs e métricas para Hubs de Eventos. Para obter informações sobre como definir configurações de diagnóstico, consulte Criar configurações de diagnóstico

O JSON a seguir é um exemplo de dados de métricas enviados para um hub de eventos:

[
  {
    "records": [
      {
        "count": 2,
        "total": 0.217,
        "minimum": 0.042,
        "maximum": 0.175,
        "average": 0.1085,
        "resourceId": "/SUBSCRIPTIONS/ABCDEF12-3456-78AB-CD12-34567890ABCD/RESOURCEGROUPS/RG-001/PROVIDERS/MICROSOFT.WEB/SITES/SCALEABLEWEBAPP1",
        "time": "2023-04-18T09:03:00.0000000Z",
        "metricName": "CpuTime",
        "timeGrain": "PT1M"
      },
      {
        "count": 2,
        "total": 0.284,
        "minimum": 0.053,
        "maximum": 0.231,
        "average": 0.142,
        "resourceId": "/SUBSCRIPTIONS/ABCDEF12-3456-78AB-CD12-34567890ABCD/RESOURCEGROUPS/RG-001/PROVIDERS/MICROSOFT.WEB/SITES/SCALEABLEWEBAPP1",
        "time": "2023-04-18T09:04:00.0000000Z",
        "metricName": "CpuTime",
        "timeGrain": "PT1M"
      },
      {
        "count": 1,
        "total": 1,
        "minimum": 1,
        "maximum": 1,
        "average": 1,
        "resourceId": "/SUBSCRIPTIONS/ABCDEF12-3456-78AB-CD12-34567890ABCD/RESOURCEGROUPS/RG-001/PROVIDERS/MICROSOFT.WEB/SITES/SCALEABLEWEBAPP1",
        "time": "2023-04-18T09:03:00.0000000Z",
        "metricName": "Requests",
        "timeGrain": "PT1M"
      },
    ...
    ]
  }
]

O JSON a seguir é um exemplo de dados de log enviados para um hub de eventos:

[
  {
    "records": [
      {
        "time": "2023-04-18T09:39:56.5027358Z",
        "category": "AuditEvent",
        "operationName": "VaultGet",
        "resultType": "Success",
        "correlationId": "12345678-abc-4bc5-9f31-950eaf3bfcb4",
        "callerIpAddress": "10.0.0.10",
        "identity": {
          "claim": {
            "http://schemas.microsoft.com/identity/claims/objectidentifier": "123abc12-abcd-9876-cdef-123abc456def",
            "appid": "12345678-a1a1-b2b2-c3c3-9876543210ab"
          }
        },
        "properties": {
          "id": "https://mykeyvault.vault.azure.net/",
          "clientInfo": "AzureResourceGraph.IngestionWorkerService.global/1.23.1.224",
          "requestUri": "https://northeurope.management.azure.com/subscriptions/ABCDEF12-3456-78AB-CD12-34567890ABCD/resourceGroups/rg-001/providers/Microsoft.KeyVault/vaults/mykeyvault?api-version=2023-02-01&MaskCMKEnabledProperties=true",
          "httpStatusCode": 200,
          "properties": {
            "sku": {
              "Family": "A",
              "Name": "Standard",
              "Capacity": null
            },
            "tenantId": "12345678-abcd-1234-abcd-1234567890ab",
            "networkAcls": null,
            "enabledForDeployment": 0,
            "enabledForDiskEncryption": 0,
            "enabledForTemplateDeployment": 0,
            "enableSoftDelete": 1,
            "softDeleteRetentionInDays": 90,
            "enableRbacAuthorization": 0,
            "enablePurgeProtection": null
          }
        },
        "resourceId": "/SUBSCRIPTIONS/ABCDEF12-3456-78AB-CD12-34567890ABCD/RESOURCEGROUPS/RG-001/PROVIDERS/MICROSOFT.KEYVAULT/VAULTS/mykeyvault",
        "operationVersion": "2023-02-01",
        "resultSignature": "OK",
        "durationMs": "16"
      }
    ],
    "EventProcessedUtcTime": "2023-04-18T09:42:07.0944007Z",
    "PartitionId": 1,
    "EventEnqueuedUtcTime": "2023-04-18T09:41:14.9410000Z"
  },
...

Enviar por streaming manual com aplicativo lógico

Para dados que não podem ser transmitidos diretamente para um hub de eventos, é possível gravar no Armazenamento do Microsoft Azure e, em seguida, você pode usar um aplicativo lógico disparado por tempo que extrai dados do Armazenamento de Blobs do Azure e enviá-los por push como uma mensagem para o hub de eventos.

Ferramentas de parceiro com integração do Azure Monitor

Rotear dados de monitoramento para um hub de eventos com o Azure Monitor permite integração fácil com ferramentas de monitoramento e SIEM externos. A tabela a seguir lista exemplos de ferramentas com integração do Azure Monitor.

Ferramenta Hospedada no Azure Descrição
IBM QRadar Não O Microsoft Azure DSM e protocolo de Hub de Eventos do Microsoft Azure estão disponíveis para download no site de suporte da IBM.
Splunk Não O Complemento do Splunk para os Serviços de Nuvem da Microsoft é um projeto de software livre disponível no Splunkbase.

Se não for possível instalar um complemento em sua instância do Splunk e, por exemplo, estiver usando um proxy ou em execução no Splunk Cloud, poderá encaminhar esses eventos para o Coletor de Eventos HTTP ao usar o Azure Function para Splunk. Essa ferramenta é disparada por novas mensagens no hub de eventos.
SumoLogic Não As instruções para configurar o SumoLogic para consumir dados de um hub de eventos estão disponíveis em Coletar logs dos Hubs de Eventos para o aplicativo de auditoria do Azure.
ArcSight Não O conector inteligente ArcSight de Hubs de Eventos do Azure está disponível como parte da coleção de conectores inteligentes ArcSight.
Servidor syslog Não Caso deseje transmitir por streaming dados do Azure Monitor diretamente para um servidor Syslog, é possível usar uma solução baseada em uma função do Azure.
LogRhythm Não As instruções para configurar o LogRhythm para coletar logs de um hub de eventos estão disponíveis neste site do LogRhythm.
Logz.io Sim Para obter mais informações, consulte Introdução ao monitoramento e registro em log usando o Logz.io para aplicativos Java em execução no Azure.

Próximas etapas