将Azure监视数据流式传输到事件中心和外部合作伙伴

将数据从Azure Monitor流式传输到外部工具的有效方法是使用 Azure 事件中心。 本文介绍如何将数据流式传输到事件中心,并列出一些合作伙伴,这些合作伙伴可以使用中心中的数据。 一些合作伙伴与Azure Monitor集成,并具有Azure托管服务。

创建事件中心命名空间

在为数据源配置流式处理之前,需要 创建事件中心命名空间和事件中心。 此命名空间和事件中心是所有监视数据的目标。 事件中心命名空间是共享相同访问策略的事件中心的逻辑分组,与存储帐户中的 Blob 具有单独的容器一样。 请考虑以下有关用于流式监视数据的事件中心命名空间和事件中心的详细信息:

  • 吞吐量单位数允许增加事件中心的吞吐量规模。 通常只需要一个吞吐量单位。 如果需要随着日志使用量的增加而纵向扩展,可以手动增加命名空间的吞吐量单位数或启用自动膨胀。
  • 分区数允许跨多个使用者并行使用。 单个分区最多可以支持 20 MBps 或大约每秒 20,000 条消息。 根据处理数据的工具,它可能支持,也可能不支持从多个分区读取。 如果不确定要设置的分区数,则四个分区是合理的。
  • 将事件中心的消息保留期设置为至少七天。 如果你的消耗工具停机超过一天,此保留期可确保该工具可以从最多七天前的事件继续处理。
  • 使用事件中心的默认使用者组。 无需创建其他使用者组或使用单独的使用者组,除非你计划让两个不同的工具使用同一事件中心的相同数据。
  • 对于Azure活动日志,选择事件中心命名空间时,Azure Monitor在该命名空间中创建名为 insights-logs-operational-logs 的事件中心。 对于其他日志类型,可以选择现有事件中心,或者让Azure Monitor为每个日志类别创建事件中心。
  • 必须在使用事件中心的数据的计算机或虚拟网络上打开出站端口 5671 和 5672。

流媒体方法

可以使用Azure Monitor中的以下方法将数据发送到事件中心:

  • 诊断设置

    使用诊断设置将Azure平台日志和指标流式传输到事件中心。 有关如何设置诊断设置的信息,请参阅 “创建诊断设置”。

  • 使用逻辑应用手动流式传输

    对于无法直接流式传输到事件中心的数据,可以写入Azure 存储,然后使用触发时间的逻辑应用从Azure Blob 存储拉取数据并将其作为消息推送到事件中心。 有关详细信息,请参阅 将 Azure 逻辑应用 中的工作流连接到事件中心。

数据格式

以下 JSON 是发送到事件中心的指标数据示例:

[
  {
    "records": [
      {
        "count": 2,
        "total": 0.217,
        "minimum": 0.042,
        "maximum": 0.175,
        "average": 0.1085,
        "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/RG-001/PROVIDERS/MICROSOFT.WEB/SITES/SCALEABLEWEBAPP1",
        "time": "2023-04-18T09:03:00.0000000Z",
        "metricName": "Requests",
        "timeGrain": "PT1M"
      },
    ...
    ]
  }
]

以下 JSON 是发送到事件中心的日志数据示例:

[
  {
    "records": [
      {
        "time": "2023-04-18T09:39:56.5027358Z",
        "category": "AuditEvent",
        "operationName": "VaultGet",
        "resultType": "Success",
        "correlationId": "cccc2222-dd33-4444-55ee-666666ffffff",
        "callerIpAddress": "10.0.0.10",
        "identity": {
          "claim": {
            "http://schemas.microsoft.com/identity/claims/objectidentifier": "dddddddd-3333-4444-5555-eeeeeeeeeeee",
            "appid": "44445555-eeee-6666-ffff-7777aaaa8888"
          }
        },
        "properties": {
          "id": "https://mykeyvault.vault.azure.cn/",
          "clientInfo": "AzureResourceGraph.IngestionWorkerService.global/1.23.1.224",
          "requestUri": "https://northeurope.management.chinacloudapi.cn/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "bbbbcccc-1111-dddd-2222-eeee3333ffff",
            "networkAcls": null,
            "enabledForDeployment": 0,
            "enabledForDiskEncryption": 0,
            "enabledForTemplateDeployment": 0,
            "enableSoftDelete": 1,
            "softDeleteRetentionInDays": 90,
            "enableRbacAuthorization": 0,
            "enablePurgeProtection": null
          }
        },
        "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
  },
...

具有Azure Monitor集成的合作伙伴工具

使用 Azure Monitor 将监视数据路由到事件中心,使你可以轻松地与外部 SIEM 和监视工具集成。 下表列出了具有Azure Monitor集成的工具示例。

Tool 部署于 Azure 云平台 Description
IBM QRadar 否 Microsoft Azure DSM和Microsoft Azure Event Hubs协议可从 IBM 支持网站下载。
Splunk 否 适用于 Microsoft 云服务的 Splunk 加载项是 Splunkbase 中提供的开源项目。

如果无法在 Splunk 实例中安装加载项,并且正在使用代理或在 Splunk Cloud 上运行,则可以使用 Azure Function for Splunk 将这些事件转发到 Splunk HTTP 事件收集器。 此工具由事件中心的新消息触发。
SumoLogic 否 有关设置 SumoLogic 来从事件中心获取数据的说明,请参阅 从事件中心收集 Azure Audit App 日志。
ArcSight 否 ArcSight Azure 事件中心智能连接器作为 ArcSight 智能连接器集合的一部分提供。
Syslog 服务器 否 如果要将 Azure Monitor 数据直接流式传输到 Syslog 服务器,则可以使用基于 Azure 函数的解决方案。
LogRhythm 否 此 LogRhythm 网站提供了有关设置 LogRhythm 以从事件中心收集日志的说明。
Logz.io 是的 有关详细信息,请参阅 使用 Logz.io 监视和记录运行在 Azure 上的 Java 应用。"

后续步骤