重要
Azure Cache for Redis宣布其所有 SKU 的停用时间表。 建议尽快将现有Azure Cache for Redis实例移动到Azure托管 Redis。
迁移指南:
有关停用的更多详细信息:
Azure Cache for Redis在 Diagnostic 设置中提供了两个监视选项:
-
Cache 指标日志将缓存操作的指标记录在 Azure Monitor 中。
-
连接日志用于记录与缓存的连接。 Azure 捕获这些日志(每个请求),这些日志也被称为 数据平面日志。 连接日志的内容因资源类型而异。
有关 Azure Monitor 监视和日志记录功能的概述,请参阅 Azure Monitor 中的诊断设置。
可用范围
| 层 |
“基本”、“标准”和“高级” |
| 缓存指标 |
是 |
| 连接日志 |
是 |
缓存度量值
Azure Redis 发出许多有用的指标,例如 Server Load 和 Connections per Second。 有关 Azure Redis 指标的完整列表,请参阅 Metrics。
若要记录缓存指标,请根据层的说明在缓存诊断设置中启用 AllMetrics 选项。 可以配置指标的保留时间。 有关日志记录和导出指标的详细信息,请参阅 Azure Cache for Redis 指标。
连接日志
Azure Cache for Redis使用Azure诊断设置记录有关缓存的客户端连接信息。 在诊断设置中记录和分析此信息有助于了解谁连接到缓存以及何时连接到缓存。 可以使用日志数据进行安全审核,或确定安全问题的范围。
连接日志实现和生成的日志在 Azure Redis 层中相似。
重要
- 在基本层、标准层和高级层中,连接日志记录轮询缓存中的当前客户端连接。 只要连接持续,同一客户端 IP 地址就可以重复出现。
要求和限制
基本层、标准层和高级层缓存按 IP 地址轮询客户端连接,包括源自每个唯一 IP 地址的连接数。 这些日志不是累积的,而是表示以 10 秒间隔拍摄的时间点快照。 这些层不会记录成功或失败的身份验证事件或断开连接事件。
请记住以下限制:
- 由于这些层中的连接日志由每隔 10 秒拍摄的时间点快照组成,因此不会记录在 10 秒间隔内建立和删除的连接。
- 不会记录身份验证和断开连接事件。
- 诊断设置最多可能需要 90 分钟 才能开始流向所选目标。
- 连接日志记录可能会导致缓存性能下降。
- 若要将日志流式传输到 Log Analytics,仅支持 Analytics Logs 定价计划。 有关详细信息,请参阅 Azure Monitor 定价。
重要
选择日志时,可以选择 Categories 或 Category 组,这些组是跨Azure服务的日志预定义分组。 如果使用 类别组,则无法配置保留设置。 如果需要为连接日志设置保留期,请改为在 “类别 ”中选择该项。 有关详细信息,请参阅 类别组。
日志目的地
为 Azure Redis 实例启用诊断设置时,可以将资源日志发送到以下目标:
发送至 Log Analytics 工作区。 此工作区无需与要监视的资源在同一区域。
存档到存储帐户。 存储帐户必须与缓存位于同一区域。
流式传输到事件中心。 事件中心必须与缓存位于同一区域。
如果启用了虚拟网络,诊断设置无法访问事件中心资源。 启用 Azure 事件中心 中的 允许受信任的 Microsoft 服务绕过此防火墙 设置,以授予事件中心资源的访问权限。
将诊断日志发送到存储帐户或事件中心时,系统会为任一目标收取正常数据费率。 系统会按照 Azure Monitor 而非 Azure Cache for Redis 进行计费。 向 Log Analytics 发送日志时,仅需支付 Log Analytics 数据引入的费用。 有关详细信息,请参阅 Azure Monitor 定价。
使用 Azure 门户启用诊断设置
在缓存的 Azure 门户页上,选择左侧导航窗格中的 监控 下的 诊断设置。
在“诊断设置”页上,选择“添加诊断设置”。
在 “诊断设置 ”页上,输入诊断设置的名称,然后选择所需的监视选项。 例如,选择 AllMetrics 以记录所有指标和 allLogs 以记录 连接的客户端列表 和 MSEntra 身份验证审核日志。
选择一个或多个目标以及目标详细信息,然后选择“ 保存”。
使用 REST API 启用连接日志记录
若要创建诊断设置,请使用交互式控制台中的 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 启用连接日志记录
使用 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 Logs 属性 |
说明 |
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 中的平台日志和指标。