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

日志传输

注意

使用 6.0 和更高版本引擎的 Redis 缓存集群和复制组支持 Redis 慢日志。

使用 6.2 和更高版本引擎的 Redis 缓存集群和复制组支持 Redis 引擎日志。

日志传输可让您将 Redis 慢日志Redis 引擎日志流式传输到以下两个目的地之一:

  • Amazon Kinesis Data Firehose

  • Amazon CloudWatch Logs

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

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

您可以选择使用 Amazon 控制台或任一修改 API(modify-cache-clustermodify-replication-group),随时更改传输配置或禁用日志传输。

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

注意

Amazon CloudWatch Logs 费用会在启用日志传输时收取,即使日志将直接传输到 Amazon Kinesis Data Firehose。有关更多信息,请参阅 Amazon CloudWatch 定价中的“已出售日志”部分。

慢日志条目的内容

ElastiCache for Redis 慢日志包含以下信息:

  • CacheClusterId – 缓存集群的 ID

  • CacheNodeId – 缓存节点的 ID

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

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

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

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

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

  • ClientName – 客户端名称(如果通过 CLIENT SETNAME 命令设置)

引擎日志条目的内容

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

  • CacheClusterId – 缓存集群的 ID

  • CacheNodeId – 缓存节点的 ID

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

  • Time – 日志消息的 UTC 时间。时间采用以下格式:"DD MMM YYYY hh:mm:ss.ms UTC"

  • Role – 发出日志的节点的角色。它可以是以下值之一:“M”表示主角色,“S”表示副本。

  • Message - Redis 引擎日志消息。

配置日志记录的权限

您需要在您的 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.