ElastiCache forRedis キャッシュクラスターで Redis Slow ログをオンにするにはどうすればよいですか。

最終更新日: 2022 年 6 月 24 日

ElastiCache for Redis キャッシュクラスターで Redis Slow ログをオンにしたい。どうすればよいですか。

簡単な説明

Redis Slow ログ機能は、指定された期間を超えるクエリをログに記録します。低速ログには、低速クエリを Amazon CloudWatch または Amazon Kinesis Data Firehose に記録するオプションがあります。Redis Slow ログは、特に待ち時間が長く、CPU 使用率が高い場合に、Redis データベースをデバッグおよびトレースするための優れたツールです。

コマンドが slowlog-log-slower-than パラメーターで設定された実行時間を超えると、新しいエントリが低速ログに追加されます。各ログエントリは、JSON またはテキスト形式で指定された宛先 (CloudWatch または Kineses) に配信されます。

各フォーマットの例を次に示します。

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##"
}

テキスト

logslowxxxxmsxj,0001,1605631822,30,GET ... (1 more arguments),192.168.12.104:55452,logslowxxxxmsxj##

解像度

前提条件

Redis Slow ログには、Redis エンジンバージョン 6.0 以降が必要です。エンジンのバージョンが 6.0 より前の場合は、slowlog get 128 コマンドを使用して手動でスローログを取得できます。各ノードには独自の低速ログがあります。したがって、クラスター内の各ノードからログを収集する必要があります。

クラスターの作成または変更中に低速ログ機能をオンにするには、CloudWatch または Kinesis Firehose に公開するためのアクセス許可が必要です。識別およびアクセス管理ポリシーを作成し、それを責任のあるユーザーに添付して、次の権限を使用します。

Amazon CloudWatch の権限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "logs:CreateLogDelivery",
        "logs:GetLogDelivery",
        "logs:UpdateLogDelivery",
        "logs:DeleteLogDelivery",
        "logs:ListLogDeliveries"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow",
      "Sid": "ElastiCacheLogging"
    },
    {
      "Sid": "ElastiCacheLoggingCWL",
      "Action": [
        "logs:PutResourcePolicy",
        "logs:DescribeResourcePolicies",
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    }
  ]
}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "logs:CreateLogDelivery",
        "logs:GetLogDelivery",
        "logs:UpdateLogDelivery",
        "logs:DeleteLogDelivery",
        "logs:ListLogDeliveries"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow",
      "Sid": "ElastiCacheLogging"
    },
    {
      "Sid": "ElastiCacheLoggingFHSLR",
      "Action": [
        "iam:CreateServiceLinkedRole"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Sid": "ElastiCacheLoggingFH",
      "Action": [
        "firehose:TagDeliveryStream"
      ],
      "Resource": "Amazon Kinesis Data Firehose delivery stream ARN",
      "Effect": "Allow"
    }
  ]
}

ElastiCache クラスターで Redis の遅いログをオンにします

前提条件を満たした後、クラスターの作成中または既存のクラスターを変更することにより、Slow ログをオンにすることができます。

AWS コンソールから Redis Slow ログをオンにする手順については、「コンソールを使用したログ配信の指定」を参照してください。

Slow ログの内容

ログの宛先を選択した後、クエリが指定された時間枠を超えると、イベントがログの宛先に記録されます。各ログイベントには、次のコンテンツが含まれます。

  • CacheClusterId: キャッシュクラスターの ID。
  • CacheNodeId: キャッシュノードの ID。
  • Id: すべての低速ログエントリの一意のプログレッシブ識別子。
  • タイムスタンプ:ログに記録されたコマンドが処理された Unix タイムスタンプ。
  • 期間: 実行に必要な時間 (マイクロ秒単位)。
  • コマンド: クライアントが使用するコマンド。例えば、foo bar を設定します。ここで、foo はキーで、bar は値です。ElastiCache for Redis は、機密データの公開を回避するために、実際のキーの名前と値を (さらに 2 つの引数) に置き換えます。
  • ClientAddress: クライアントの IP アドレスとポート。
  • clientName: CLIENT SETNAME コマンドで設定した場合のクライアント名。

この記事は役に立ちましたか。


請求に関するサポートまたは技術サポートが必要ですか?