日誌傳送 - Amazon ElastiCache

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

日誌傳送

注意

Valkey 7.x 和更新版本支援慢速日誌,以及使用引擎 6.0 版更新的 Redis OSS 快取叢集和複寫群組。

Valkey 7.x 和 Redis OSS 快取叢集和使用引擎 6.2 版之後的複寫群組都支援引擎日誌。

日誌交付可讓您將 SLOWLOG引擎日誌串流至兩個目的地之一:

  • Amazon Data Firehose

  • Amazon CloudWatch Logs

使用 ElastiCache API 建立或修改叢集時,可以啟用和設定日誌傳送功能。每個日誌項目會以下列兩種格式之一傳送至指定目的地:JSONTEXT

定期從引擎擷取固定數量的慢速日誌項目。根據為引擎參數slowlog-max-len 指定的值,可能無法將其他慢速日誌項目傳送至目的地。

您可以選擇隨時使用 AWS 主控台或其中一個修改 APIs 來變更交付組態或停用日誌交付,可以是 modify-cache-clustermodify-replication-group

您必須設定 apply-immediately 參數以進行所有日誌傳送修改。

注意

啟用日誌交付時,即使日誌直接交付至 Amazon Data Firehose,也會收取 Amazon CloudWatch Logs 費用。如需詳細資訊,請參閱 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

  • Log level – 日誌等級可為下列任一項目:VERBOSE("-")NOTICE("*")WARNING("#")

  • Time – 所記錄訊息的 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.