Azure Redis 缓存在 诊断设置中提供了两个监视选项:
-
缓存指标 记录有关缓存操作的 Azure Monitor 指标。
-
连接日志用于记录与缓存的连接。 Azure 根据请求捕获这些日志(也称为 数据平面日志)。 连接日志的内容因资源类型而异。
有关 Azure Monitor 监视和日志记录功能的概述,请参阅 Azure Monitor 中的诊断设置。
层 |
“基本”、“标准”和“高级” |
缓存指标 |
是 |
连接日志 |
是 |
Azure Redis 发出许多有用的指标,例如 服务器负载 和 每秒连接数。 有关 Azure Redis 指标的完整列表,请参阅 指标。
若要记录缓存指标,请根据层的说明在缓存诊断设置中启用 AllMetrics 选项。 可以配置指标的保留时间。 有关日志记录和导出指标的详细信息,请参阅 Azure Redis 缓存指标。
Azure Cache for Redis 使用 Azure 诊断设置记录关于缓存的客户端连接信息。 在诊断设置中记录和分析此信息有助于了解谁连接到缓存以及何时连接到缓存。 可以使用日志数据进行安全审核,或确定安全问题的范围。
连接日志实现和生成的日志在 Azure Redis 层中相似。
重要
- 在基本层、标准层和高级层中,连接日志记录轮询缓存中的当前客户端连接。 只要连接持续,同一客户端 IP 地址就可以重复出现。
基本层、标准层和高级层缓存按 IP 地址轮询客户端连接,包括源自每个唯一 IP 地址的连接数。 这些日志不是累积的,而是表示以 10 秒间隔拍摄的时间点快照。 这些层不会记录成功或失败的身份验证事件或断开连接事件。
请记住以下限制:
- 由于这些层中的连接日志由每隔 10 秒拍摄的时间点快照组成,因此不会记录在 10 秒间隔内建立和删除的连接。
- 不会记录身份验证和断开连接事件。
- 诊断设置最多可能需要 90 分钟 才能开始流向所选目标。
- 连接日志记录可能会导致缓存性能下降。
- 若要将日志流式传输至 Log Analytics,仅支持 Analytics 日志定价方案。 有关详细信息,请参阅 Azure Monitor 定价。
重要
选择日志时,可以选择类别或类别组,这些类别组是跨 Azure 服务的日志预定义分组。 如果使用 类别组,则无法配置保留设置。 如果需要为连接日志设置保留期,请改为在 “类别 ”中选择该项。 有关详细信息,请参阅 类别组。
为 Azure Redis 实例启用诊断设置时,可以将资源日志发送到以下目标:
发送到 Log Analytics 工作区。 此工作区无需与要监视的资源在同一区域。
存档到存储帐户。 存储帐户必须与缓存位于同一区域。
流式传输到事件中心。 事件中心必须与缓存位于同一区域。
如果启用了虚拟网络,诊断设置无法访问事件中心资源。 启用 “允许受信任的Microsoft服务绕过 Azure 事件中心中的此防火墙 设置,以授予对事件中心资源的访问权限。
将诊断日志发送到存储帐户或事件中心时,系统会为任一目标收取正常数据费率。 计费是在 Azure Monitor 而不是 Azure Cache for Redis 中发生的。 将日志发送到 Log Analytics 时,只需为 Log Analytics 数据引入付费。 有关定价的详细信息,请参阅 Azure Monitor 定价。
在缓存的Azure 门户页上,在左侧导航窗格中的监视下,选择诊断设置。
在“诊断设置”页上,选择“添加诊断设置”。
在 “诊断设置 ”页上,输入诊断设置的名称,然后选择所需的监视选项。 例如,选择 AllMetrics 以记录所有指标和 allLogs 以记录 连接的客户端列表 和 MSEntra 身份验证审核日志。
选择一个或多个目标以及目标详细信息,然后选择“ 保存”。
若要创建诊断设置,请在交互式控制台中使用 Azure Monitor REST API,如下所示。 有关详细信息,请参阅 诊断设置 - 创建或更新。
请求
PUT https://management.chinacloudapi.cn/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview
参数/标头
-
Content-Type
: application/json
-
name
:诊断设置的名称
-
resourceUri
: subscriptions/<your subscription id>/resourceGroups/<cache resource group>/providers/Microsoft.Cache/Redis/<cache name>
-
api-version
: 2017-05-01-preview
示例正文
{
"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 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}/providers/Microsoft.Datadog/monitors/mydatadog
以下字段和属性显示在日志类别中 ConnectedClientList
。 在 Azure Monitor 中,日志收集在资源提供程序名称 ACRConnectedClientList
下的 MICROSOFT.CACHE
表中。
Azure 存储字段或属性 |
Azure Monitor 日志属性 |
说明 |
time |
TimeGenerated |
生成日志时的 UTC 时间戳。 |
location |
Location |
在其中访问了 Azure Redis 缓存的 Azure 区域。 |
category |
不适用 |
可用日志类别 ConnectedClientList 。 |
resourceId |
_ResourceId |
对其启用了日志的 Azure Redis 资源。 |
operationName |
OperationName |
与日志记录关联的 Redis 操作。 |
properties |
不适用 |
请参阅以下行。 |
tenant |
CacheName |
Azure Redis 实例的名称。 |
roleInstance |
RoleInstance |
记录客户端列表的角色实例。 |
connectedClients.ip |
ClientIp |
Redis 客户端 IP 地址。 |
connectedClients.privateLinkIpv6 |
PrivateLinkIpv6 |
Redis 客户端专用链接 IPv6 地址(如果适用)。 |
connectedClients.count |
ClientCount |
来自关联 IP 地址的 Redis 客户端连接数。 |
发送到存储帐户的日志的内容可能如以下示例所示。
{
"time": "2021-08-05T21:04:58.0466086Z",
"location": "canadacentral",
"category": "ConnectedClientList",
"properties": {
"tenant": "mycache",
"connectedClients": [
{
"ip": "192.123.43.36",
"count": 86
},
{
"ip": "10.1.1.4",
"privateLinkIpv6": "fd40:8913:31:6810:6c31:200:a01:104",
"count": 1
}
],
"roleInstance": "1"
},
"resourceId": "/SUBSCRIPTIONS/eeee4efe-ff5f-aa6a-bb7b-cccccc8c8c8c/RESOURCEGROUPS/AZURE-CACHE/PROVIDERS/MICROSOFT.CACHE/REDIS/MYCACHE",
"Level": 4,
"operationName": "Microsoft.Cache/ClientList"
}
有关如何使用 Azure 门户、Azure CLI 或 Azure PowerShell 创建诊断设置的详细信息,请参阅 创建诊断设置以收集 Azure 中的平台日志和指标。