

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 日誌傳送
<a name="Log_Delivery"></a>

**注意**  
Valkey 7.x 及更高版本支援慢速日誌，以及使用引擎 6.0 以上版本的 Redis OSS 叢集和複寫群組。  
引擎日誌支援 Valkey 7.x 及更高版本，以及使用引擎 6.2 以上版本的 Redis OSS 叢集和複寫群組。

日誌交付可讓您將 [SLOWLOG](https://valkey.io/commands/slowlog) 或**引擎日誌**串流至兩個目的地之一：
+ Amazon Data Firehose
+ Amazon CloudWatch Logs

使用 ElastiCache API 建立或修改叢集時，可以啟用和設定日誌傳送功能。每個日誌項目會以下列兩種格式之一傳送至指定目的地：*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` 參數以進行所有日誌傳送修改。

**注意**  
啟用日誌交付時，即使日誌直接交付至 Amazon Data Firehose，也會收取 Amazon CloudWatch Logs 費用。如需詳細資訊，請參閱 [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
+ **Log level** – 日誌等級可為下列任一項目：`VERBOSE("-")`、`NOTICE("*")`、`WARNING("#")`。
+ **Time** – 所記錄訊息的 UTC 時間。時間格式如下：`"DD MMM YYYY hh:mm:ss.ms UTC"`
+ **Role** – 從中發出日誌之節點的角色。可為下列任一項：「M」代表主要、「S」代表複本、「C」代表 RDB/AOF 上執行的寫入器子程序、「X」代表佈哨功能。
+ **訊息** – 引擎日誌訊息。

## 設定記錄功能的許可
<a name="Log_permissions"></a>

您需要在 IAM 使用者/角色政策中包含下列 IAM 許可：
+ `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.
```