日志传输 - 亚马逊 ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

日志传输

注意

Valkey 7.x 及更高版本支持慢日志,以及使用引擎版本 6.0 及更高版本的 Redis OSS 缓存集群和复制组。

Valkey 7.x 支持引擎日志,使用引擎版本 6.2 及更高版本的 Redis OSS 缓存集群和复制组均支持引擎日志。

日志传输允许您将引擎日志SLOWLOG引擎日志流式传输到以下两个目的地之一:

  • Amazon Data Firehose

  • 亚马逊 CloudWatch 日志

使用创建或修改集群时,您可以启用和配置日志传输 ElastiCache APIs。每个日志条目都将以以下两种格式之一传送到指定目的地:JSONTEXT

定期从引擎中检索固定数量的慢速日志条目。根据针对引擎参数 slowlog-max-len 指定的值,可能不会将其他慢日志条目传送到目的地。

您可以随时使用 Amazon 控制台或其中一个修改选项选择更改传输配置或禁用日志传输APIs,即modify-cache-clustermodify-replication-group

您必须为所有日志传输修改设置 apply-immediately 参数。

注意

启用 CloudWatch 日志传输后,即使日志直接传送到 Amazon Data Firehose,也会收取亚马逊日志费用。有关更多信息,请参阅 Amazon CloudWatch 定价中的 “销售日志” 部分。

慢日志条目的内容

慢日志包含以下信息:

  • CacheClusterId— 缓存集群的 ID

  • CacheNodeId— 缓存节点的 ID

  • Id – 每个慢日志条目的唯一渐进式标识符

  • Timestamp – 处理已录入的命令时的 Unix 时间戳

  • Duration – 其执行所需的时间(以微秒为单位)

  • Command – 客户端使用的命令。例如,set foo bar其中foo是键,其中bar是值。 ElastiCache 将实际的密钥名称和值替换(2 more arguments)为以避免暴露敏感数据。

  • ClientAddress— 客户端 IP 地址和端口

  • ClientName— 如果通过CLIENT SETNAME命令设置客户机名称

引擎日志条目的内容

引 ElastiCache 擎日志包含以下信息:

  • CacheClusterId— 缓存集群的 ID

  • CacheNodeId— 缓存节点的 ID

  • 日志级别 — LogLevel 可以是以下任一项:VERBOSE("-")NOTICE("*")WARNING("#")

  • 时间-记录消息的UTC时间。时间采用以下格式:"DD MMM YYYY hh:mm:ss.ms UTC"

  • Role – 发出日志的节点的角色。它可以是以下之一:“M” 代表主进程,“S” 代表副本,“C” 代表在RDB/AOF上工作的写入子进程,“X” 代表哨兵。

  • 消息-引擎日志消息。

配置日志记录的权限

您需要在IAM用户/角色IAM策略中包含以下权限:

  • logs:CreateLogDelivery

  • logs:UpdateLogDelivery

  • logs:DeleteLogDelivery

  • logs:GetLogDelivery

  • logs:ListLogDeliveries

有关更多信息,请参阅访问管理概览:权限和策略

日志类型和日志格式规范

慢日志

慢日志同时支持JSON和 TEXT

以下是JSON格式示例:

{ "CacheClusterId": "logslowxxxxmsxj", "CacheNodeId": "0001", "Id": 296, "Timestamp": 1605631822, "Duration (us)": 0, "Command": "GET ... (1 more arguments)", "ClientAddress": "192.168.12.104:55452", "ClientName": "logslowxxxxmsxj##" }

以下是TEXT格式示例:

logslowxxxxmsxj,0001,1605631822,30,GET ... (1 more arguments),192.168.12.104:55452,logslowxxxxmsxj##

引擎日志

引擎日志同时支持JSON和 TEXT

以下是JSON格式示例:

{ "CacheClusterId": "xxxxxxxxxzy-engine-log-test", "CacheNodeId": "0001", "LogLevel": "VERBOSE", "Role": "M", "Time": "12 Nov 2020 01:28:57.994 UTC", "Message": "Replica is waiting for next BGSAVE before synchronizing with the primary. Check back later" }

以下是TEXT格式示例:

xxxxxxxxxxxzy-engine-log-test/0001:M 29 Oct 2020 20:12:20.499 UTC * A slow-running Lua script detected that is still in execution after 10000 milliseconds.