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

日志传输

注意

使用 6.0 和更高版本引擎的 Redis 缓存集群和复制组支持此功能。

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

  • 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 命令设置)

配置日志记录的权限

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