使用诊断设置监视 Azure Cache for Redis 数据

Azure 中的诊断设置用于收集资源日志。 Azure 资源发出资源日志,并提供与该资源的操作相关的各种频繁生成的数据。 这些日志是按请求捕获的,也称为“数据平面日志”。 有关 Azure 中功能的建议概述,请参阅 Azure Monitor 中的诊断设置。 这些日志的内容因资源类型而异。 在 Azure Cache for Redis 中,有两个选项可用于记录:

可用范围

“基本”、“标准”和“高级”
缓存指标
连接日志

缓存指标

Azure Cache for Redis 会发出许多指标,例如服务器负载每秒连接数,这些指标对记录很有用。 选择 AllMetrics 选项可以记录上述及其他缓存指标。 可以配置指标的保留时长。 请参阅此处,了解将缓存指标导出到存储帐户的示例

连接日志

Azure Cache for Redis 使用 Azure 诊断设置来记录有关与缓存建立的客户端连接的信息。 记录并分析此诊断设置可帮助你了解谁正在连接到你的缓存,以及这些连接的时间戳。 日志数据可用于识别安全漏洞的范围以及进行安全审核。

连接日志记录的先决条件/限制

Basic、Standard 和 Premium 层

  • 由于这些层中的连接日志包含每 10 秒拍摄一次的时间点快照,因此不会记录在 10 秒间隔内建立和删除的连接。
  • 不会记录身份验证事件。
  • 所有诊断设置最多可能需要 90 分钟才能开始流向所选目标。
  • 启用连接日志可能会导致缓存实例的性能小幅下降。
  • 将日志流式传输到 Azure Log Analytics 时,仅支持 Analytics 日志定价计划。 有关详细信息,请参阅 Azure Monitor 定价

注意

始终可以使用 INFOCLIENT LIST 命令来检查按需连接到缓存实例的人员。

重要

选择日志时,可以选择特定的类别类别组,即跨 Azure 服务预定义的日志分组。 使用类别组时,无法再配置保留设置。 如果需要确定连接日志的保留期,请改为选择“类别”部分中的项。

日志目标

可为 Azure Cache for Redis 实例启用诊断设置,并将资源日志发送到以下目标:

  • Log Analytics 工作区 - 不需要与所监视的资源位于同一区域。
  • 存储帐户 - 必须与缓存位于同一区域。 但是,不支持将高级存储帐户作为目标。
  • 事件中心 - 启用虚拟网络时,诊断设置无法访问事件中心资源。 在事件中心内启用“允许受信任的 Microsoft 服务绕过此防火墙?”设置,以授予对事件中心资源的访问权限。 事件中心必须与缓存位于同一区域。

有关诊断要求的详细信息,请参阅诊断设置

将诊断日志发送到任一目标时,需按照正常数据费率支付存储帐户和事件中心使用费。 计费是在 Azure Monitor 而不是 Azure Cache for Redis 中发生的。 将日志发送到 Log Analytics 时,只需为 Log Analytics 数据输入付费。

有关更多定价信息,请参阅 Azure Monitor 定价

使用 Azure 门户启用连接日志记录

  1. 登录到 Azure 门户

  2. 导航到你的 Azure Cache for Redis 帐户。 打开左侧“监视”部分下的“诊断设置”窗格 。 然后选择“添加诊断设置”。

    选择诊断

  3. 在“诊断设置”窗格中,从“类别”中选择 ConnectedClientList

    有关所记录数据的更多详细信息,请参阅下面的连接日志的内容

  4. 选择 ConnectedClientList 后,将日志发送到首选目的地。 在工作窗格中选择信息。

    选择“启用特定于资源”

使用 REST API 启用连接日志记录

使用 Azure Monitor REST API 通过交互式控制台创建诊断设置。 有关详细信息,请参阅创建或更新

请求

PUT https://management.chinacloudapi.cn/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview

头文件

参数/标头 值/说明
name 诊断设置的名称。
resourceUri subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.Cache/Redis/{CACHE_NAME}
api-version 2017-05-01-preview
Content-Type application/json

正文

{
    "properties": {
      "storageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/apptest/providers/Microsoft.Storage/storageAccounts/appteststorage1",
      "eventHubAuthorizationRuleId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/montest/providers/microsoft.eventhub/namespaces/mynamespace/eventhubs/myeventhub/authorizationrules/myrule",
      "eventHubName": "myeventhub",
      "workspaceId": "/subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/insights-integration/providers/Microsoft.OperationalInsights/workspaces/myworkspace",
      "logs": [
        {
          "category": "ConnectedClientList",
          "enabled": true,
          "retentionPolicy": {
            "enabled": false,
            "days": 0
          }
        }
      ]
    }
}

使用 Azure CLI 启用连接日志记录

在 Azure CLI 中使用 az monitor diagnostic-settings create 命令来创建诊断设置。 有关命令和参数说明的详细信息,请参阅创建诊断设置以将平台日志和指标发送到不同的目标。 此示例演示如何使用 Azure CLI 将数据流式传输到四个不同的端点:

az monitor diagnostic-settings create 
    --resource /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupname}/providers/Microsoft.Cache/Redis/{cacheName}
    --name {logName}
    --logs '[{"category": "ConnectedClientList","enabled": true,"retentionPolicy": {"enabled": false,"days": 0}}]'    
    --event-hub {eventHubName}
    --event-hub-rule /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/microsoft.eventhub/namespaces/{eventHubNamespace}/authorizationrule/{ruleName}
    --storage-account /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}
    --workspace /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{logAnalyticsWorkspaceName}
    --marketplace-partner-id/subscriptions/{subscriptionID}/resourceGroups{resourceGroupname}/proviers/Microsoft.Datadog/monitors/mydatadog

连接日志的内容