

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

# 日志传输
<a name="Log_Delivery"></a>

**注意**  
Valkey 7.x 及更高版本以及使用 6.0 和更高版本引擎的 Redis OSS 集群和复制组支持慢速日志。  
Valkey 7.x 及更高版本以及使用 6.2 和更高版本引擎的 Redis OSS 集群和复制组支持引擎日志。

日志传输可让您将[慢日志](https://valkey.io/commands/slowlog)或**引擎日志**流式传输到以下两个目的地之一：
+ Amazon Data Firehose
+ Amazon CloudWatch 日志

使用创建或修改集群时，您可以启用和配置日志传输 ElastiCache APIs。每个日志条目将以两种格式之一传输到指定的目的地：*JSON* 或 *TEXT*。

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

您可以随时使用AWS控制台或其中一个修改选项选择更改传输配置或禁用日志传输 APIs，即[modify-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html)或[modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)。

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

**注意**  
启用 CloudWatch 日志传输后，即使日志直接传送到 Amazon Data Firehose，也会收取亚马逊日志费用。有关更多信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)中的 “销售日志” 部分。

## 慢日志条目的内容
<a name="Log_contents"></a>

慢日志包含以下信息：
+ **CacheClusterId**— 集群的 ID
+ **CacheNodeId**— 缓存节点的 ID
+ **Id** – 每个慢日志条目的唯一渐进式标识符
+ **Timestamp** – 处理已录入的命令时的 Unix 时间戳
+ **Duration** – 其执行所需的时间（以微秒为单位）
+ **Command** – 客户端使用的命令。例如，`set foo bar`其中`foo`是密钥，其中`bar`是值。 ElastiCache 将实际的密钥名称和值替换`(2 more arguments)`为以避免暴露敏感数据。
+ **ClientAddress**— 客户端 IP 地址和端口
+ **ClientName**— 客户端名称（如果通过`CLIENT SETNAME`命令设置） 

## 引擎日志条目的内容
<a name="Log_contents-engine-log"></a>

引 ElastiCache 擎日志包含以下信息：
+ **CacheClusterId**— 集群的 ID
+ **CacheNodeId**— 缓存节点的 ID
+ **日志级别** — LogLevel 可以是以下任一项：`VERBOSE("-")`、`NOTICE("*")`、`WARNING("#")`。
+ **Time** – 日志消息的 UTC 时间。时间采用以下格式：`"DD MMM YYYY hh:mm:ss.ms UTC"`
+ **Role** – 发出日志的节点的角色。它可以是以下之一：“M” 代表主进程，“S” 代表副本，“C” 代表正在处理的写入子进程，“X” 代表哨兵。 RDB/AOF 
+ **Message** – 引擎日志消息。

## 配置日志记录的权限
<a name="Log_permissions"></a>

您需要在您的 IAM 策略中包含以下 IAM user/role 权限：
+ `logs:CreateLogDelivery`
+ `logs:UpdateLogDelivery`
+ `logs:DeleteLogDelivery`
+ `logs:GetLogDelivery`
+ `logs:ListLogDeliveries`

有关更多信息，请参阅[访问管理概览：权限和策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html)。

## 日志类型和日志格式规范
<a name="Destination_Formats"></a>

### 慢日志
<a name="Destination_Formats-slowlog"></a>

慢日志支持 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## 
```

### 引擎日志
<a name="Destination_Formats-engine-log"></a>

引擎日志支持 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 1000 microseconds.
```