你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

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

创建事件中心命名空间

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

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

流式处理方法

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

  • 数据收集规则

    数据收集规则用于将日志和指标流式传输到事件中心、Log Analytics 工作区和 Azure 存储。 有关如何设置数据收集规则的信息,请参阅 Azure Monitor 中的数据收集规则创建和编辑数据收集规则

  • 诊断设置

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

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

    对于无法直接流式传输到事件中心的数据,可以写入 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.net/",
          "clientInfo": "AzureResourceGraph.IngestionWorkerService.global/1.23.1.224",
          "requestUri": "https://northeurope.management.azure.com/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 集成的工具示例。

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

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

后续步骤