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

在大多数情况下,将数据从 Azure Monitor 流式传输到外部工具的最有效方法是使用 Azure 事件中心。 本文简述了如何流式传输数据,然后列出了一些可以在其中发送数据的合作伙伴。 某些合作伙伴有与 Azure Monitor 的特殊集成,该集成可能托管在 Azure 上。

创建事件中心命名空间

在针对任何数据源配置流式传输之前,需要创建事件中心命名空间和事件中心。 此命名空间和事件中心是所有监视数据的目标。 事件中心命名空间是共享相同访问策略的事件中心的逻辑分组,就像存储帐户中有各个 blob 一样。 请注意以下详细信息,这些详细信息涉及用于流式传输监视数据的事件中心命名空间和事件中心:

  • 使用吞吐量单位数,可增加事件中心的吞吐量规模。 通常只需要一个吞吐量单位。 如果需要在日志使用量增加时纵向扩展,可以手动增加命名空间的吞吐量单位数或启用自动扩充。
  • 使用分区数可以在多个使用者之间并行使用。 单个分区最多支持 20 MBps,或者大约每秒 20,000 条消息。 不一定支持从多个分区使用,具体取决于使用数据的工具。 如果不确定要设置的分区数量,那么从四个分区开始较为合理。
  • 将事件中心的消息保留期设置为至少 7 天。 如果使用的工具多天出现故障,此保留期可确保该工具可以从它中断的位置重新开始(因为事件最多可保存 7 天)。
  • 应该对事件中心使用默认的使用者组。 除非你打算通过两个不同的工具使用同一事件中心内的相同数据,否则无需创建其他使用者组或使用单独的使用者组。
  • 对于 Azure 活动日志,可选取事件中心命名空间,Azure Monitor 将在该命名空间内创建名为“insights-logs-operational-logs”的事件中心。 对于其他日志类型,可以选择现有的事件中心,或者让 Azure Monitor 为每个日志类别创建一个事件中心。
  • 通常,必须在使用事件中心数据的计算机或虚拟网络上打开出站端口 5671 和 5672。

提供的监视数据

Azure Monitor 的监视数据源及其数据收集方法介绍了 Azure Monitor 收集的不同类型的数据以及用于收集它们的方法。 请参阅本文,了解可流式传输到事件中心的数据以及指向配置详细信息的链接。

流诊断数据

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

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

[
  {
    "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"
      },
    ...
    ]
  }
]

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

[
  {
    "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.cn/",
          "clientInfo": "AzureResourceGraph.IngestionWorkerService.global/1.23.1.224",
          "requestUri": "https://chinanorth2.management.chinacloudapi.cn/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"
  },
...

使用逻辑应用手动进行流式传输

对于无法直接流式传输到事件中心的数据,可以将其写入 Azure 存储,接着使用时间触发的逻辑应用从 Azure Blob 存储中拉取数据,然后将其作为消息推送到事件中心

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

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

工具 在 Azure 中托管 说明
IBM QRadar Azure DSM 和 Azure 事件中心协议可从 IBM 支持网站下载。
Splunk 适用于 Microsoft 云服务的 Splunk 加载项是 Splunkbase 中提供的开源项目。

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

后续步骤