ログ配信 - Amazon ElastiCache for Redis

ログ配信

注記

Redis スローログは、エンジンバージョン 6.0 以降を使用する Redis キャッシュクラスターおよびレプリケーショングループでサポートされています。

Redis エンジンログは、エンジンバージョン 6.2 以降を使用する Redis キャッシュクラスターおよびレプリケーショングループでサポートされています。

ログ配信により、Redis SLOWLOG または Redis エンジンログを 2 つの送信先のいずれかにストリーミングできます。

  • Amazon Kinesis Data Firehose

  • Amazon CloudWatch Logs

ElastiCache API を使用してクラスターを作成または変更するときに、ログ配信を有効にして設定します。各ログエントリは、次の 2 つの形式のいずれかで、指定された送信先に配信されます: JSON または TEXT

一定の数のスローログエントリが Redis エンジンから定期的に取得されます。エンジンパラメータ slowlog-max-len で指定された値によっては、追加のスローログエントリが送信先に配信されないことがあります。

AWS コンソールか修正 API の 1 つ、または 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] — クライアントが使用するコマンド。たとえば、foo がキーで bar が値の場合は、set foo bar。ElastiCache for Redis は、実際のキー名と値を (2 more arguments) と置き換えて、機密データを公開しないようにします。

  • [ClientAddress] — クライアントの IP アドレスとポート

  • [ClientName] — CLIENT SETNAME コマンドを介して設定された場合のクライアント名

エンジンログエントリの内容

ElastiCache for Redis のエンジンログには、以下の情報が含まれています。

  • [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」(センチネル) のいずれかになります。

  • [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.