¿Cómo se activa el registro lento de Redis en un clúster de caché de ElastiCache para Redis?

4 minutos de lectura
0

Quiero activar el registro lento de Redis en mi clúster de caché de ElastiCache para Redis. ¿Cómo puedo hacerlo?

Descripción corta

La función de registro lento de Redis registra las consultas que exceden un periodo de tiempo específico. El registro lento ofrece la opción de registrar las consultas lentas en Amazon CloudWatch o en Amazon Kinesis Data Firehose. El registro lento de Redis es una buena herramienta para depurar y rastrear la base de datos de Redis, especialmente si experimenta una alta latencia o un alto uso de la CPU.

Se agrega una nueva entrada al registro lento cuando un comando excede el tiempo de ejecución establecido por el parámetro slowlog-log-slower-than. Cada entrada de registro se entrega al destino especificado (CloudWatch o Kineses) en formato JSON o de texto.

Los siguientes son ejemplos de cada formato:

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

Texto

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

Resolución

Requisitos previos

El registro lento de Redis requiere la versión del motor de Redis 6.0 y superior. Si la versión de su motor es inferior a la 6.0, puede recuperar manualmente el registro lento mediante el comando slowlog get 128. Cada nodo tiene su propio registro lento. Por lo tanto, se debe recopilar el registro de cada nodo dentro del clúster.

La activación de la función de registro lento durante la creación o modificación del clúster requiere un permiso de publicación en CloudWatch o Kinesis Firehose. Utilice los siguientes permisos para crear una política de Identify and Access Management y adjuntarla al usuario responsable:

Permisos de 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"
    }
  ]
}

Permisos de Amazon Kinesis Data Firehose:

{
  "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"
    }
  ]
}

Activar los registros lentos de Redis en el clúster de ElastiCache

Después de cumplir con los requisitos previos, puede activar el registro lento mientras crea el clúster o al modificar un clúster existente.

Para obtener instrucciones sobre cómo activar los registros lentos de Redis desde la consola de AWS, consulte Especificar la entrega de registros mediante la consola.

Contenido del registro lento

Después de seleccionar el destino del registro, cuando una consulta excede el marco de tiempo especificado, el evento se registra en el destino del registro. Cada evento registrado tiene el siguiente contenido:

  • CacheClusterID: el ID del clúster de caché.
  • CacheNodeId: el ID del nodo de caché.
  • Id: un identificador progresivo único para cada entrada de registro lento.
  • Timestamp: la marca de tiempo de Unix en la que se procesó el comando registrado.
  • Duración: la cantidad de tiempo necesaria para su ejecución, en microsegundos.
  • Comando: el comando que utiliza el cliente. Por ejemplo, establecer foo bar donde foo es la clave y bar es el valor. ElastiCache para Redis reemplaza el nombre de la clave y el valor real con (2 argumentos más) para evitar la exposición de datos sensibles.
  • ClientAddress: dirección IP y puerto del cliente.
  • ClientName: nombre del cliente si se establece a través del comando CLIENT SETNAME.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años