Como faço para ativar o log lento do Redis em um cluster de cache do ElastiCache for Redis?
Data da última atualização: 24/06/2022
Quero ativar o log lento do Redis no cluster de cache do ElastiCache for Redis. Como posso fazer isso?
Breve descrição
O recurso de log lento do Redis registra consultas que excedem um período de tempo especificado. O log lento oferece uma opção para registrar consultas lentas no Amazon CloudWatch ou no Amazon Kinesis Data Firehose. O log lento do Redis é uma boa ferramenta para depurar e rastrear o banco de dados Redis, especialmente se você estiver enfrentando alta latência e/ou alto uso de CPU.
Uma nova entrada é adicionada ao log lento quando um comando excede o tempo de execução definido pelo parâmetro slowlog-log-slower-than. Cada entrada de log é entregue ao destino especificado (CloudWatch ou Kineses) em formato JSON ou texto.
Veja a seguir exemplos 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##
Resolução
Pré-requisitos
O log lento do Redis requer o mecanismo Redis versão 6.0 e superior. Se a versão do mecanismo for anterior à versão 6.0, você poderá recuperar manualmente o log lento usando o comando slowlog get 128. Cada nó tem seu próprio log lento. Portanto, você deve coletar o log de cada nó do cluster.
Ativar o recurso de log lento durante a criação ou modificação do cluster requer permissão para publicação no CloudWatch ou no Kinesis Firehose. Use as seguintes permissões criando uma política de gerenciamento de identidade e acesso e anexando-a ao usuário responsável:
Permissões do 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"
}
]
}
Permissões do 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"
}
]
}
Ativar logs lentos do Redis no cluster do ElastiCache
Depois de atender aos pré-requisitos, você pode ativar o log lento ao criar o cluster ou ao modificar um cluster existente.
Para obter instruções sobre como ativar os logs lentos do Redis no console da AWS, consulte Especificar a entrega de logs usando o console.
Conteúdo do log lento
Depois que destino do log é selecionado, quando uma consulta excede o período de tempo especificado, o evento é registrado no destino do log. Cada evento registrado tem o seguinte conteúdo:
- CacheClusterId: o ID do cluster de cache.
- CacheNodeId: o ID do nó de cache.
- Id: um identificador progressivo exclusivo para cada entrada do log lento.
- Timestamp: o timestamp Unix em que o comando registrado foi processado.
- Duração: a quantidade de tempo necessária para a execução, em microssegundos.
- Comando: o comando usado pelo cliente. Por exemplo, set foo bar, em que foo é a chave e bar é o valor. O ElastiCache for Redis substitui o nome e o valor da chave real por (mais 2 argumentos) para evitar a exposição de dados confidenciais.
- ClientAddress: endereço IP e porta do cliente.
- ClientName: nome do cliente se definido pelo comando CLIENT SETNAME.
Este artigo ajudou?
Precisa de ajuda com faturamento ou suporte técnico?