日志传输 - 亚马逊 ElastiCache

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

日志传输

注意

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 指定的值,可能不会将其他慢日志条目传送到目的地。

您可以随时使用 AWS 控制台或其中一个修改选项选择更改传输配置或禁用日志传输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.