¿Cómo se activa el registro lento de Redis en un clúster de caché de ElastiCache para Redis?
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.
Contenido relevante
- OFICIAL DE AWSActualizada hace 7 meses
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años