Como faço para resolver que meu agente unificado do CloudWatch não esteja enviando eventos de log?

8 minuto de leitura
0

Quero resolver se meu agente unificado do Amazon CloudWatch não está enviando eventos de log.

Breve descrição

Se seu agente unificado do CloudWatch não enviar eventos de log, as causas possíveis são as seguintes:

  • Metadados fora de sincronia
  • Versão desatualizada do agente do CloudWatch
  • Falha na conexão com o endpoint do CloudWatch Logs
  • Configurações incorretas de conta, região da AWS ou grupo de logs
  • Permissões insuficientes do AWS Identity and Access Management (IAM)
  • Erros de execução do agente do CloudWatch
  • Problemas de data e hora
  • Valor ausente ou incorreto no arquivo de estado do log
  • Configuração incorreta do arquivo de log de origem
  • Restrições de PutLogEvents
  • Valor de force_flush_interval alto

Observação: a resolução a seguir não se aplica ao CloudWatch Container Insights. Para mais informações sobre a solução de problemas do CloudWatch Container Insights, consulte Solução de problemas do Container Insights e Como solucionar problemas de status do pod no Amazon EKS?

Resolução

Metadados fora de sincronia

Se você tiver metadados fora de sincronia, o agente do CloudWatch não funcionará conforme o esperado. Para solucionar esse problema, realize as etapas a seguir:

Versão desatualizada do agente do CloudWatch

Se você tiver uma versão desatualizada do agente CloudWatch, baixe as notas de lançamento do pacote do agente CloudWatch e o número da versão mais recente. A versão mais recente pode incluir atualizações que resolvam seu problema.

Falha na conexão com o endpoint do CloudWatch Logs

Para testar a conectividade com o endpoint do CloudWatch Logs use um dos comandos a seguir:

Observação: substitua example-region pela região necessária.

telnet logs.<example-region>.amazonaws.com 443
nc -zv logs.<example-region>.amazonaws.com 443

Se você receber falhas de conexão, conclua as seguintes etapas:

  • Certifique-se de que o grupo de segurança e as listas de controle de acesso à rede (ACL de rede) permitam a conectividade.
  • Para endpoints públicos, use um gateway de internet ou um gateway NAT para sua instância.
  • Se você usa endpoints do Amazon Virtual Private Cloud (Amazon VPC), certifique-se de que o endpoint seja resolvido para um IP do Amazon VPC. Além disso, certifique-se de que o grupo de segurança do endpoint permita o acesso a partir da instância de origem.

Configurações incorretas de conta, região ou grupo de logs

Para o arquivo de configuração do agente CloudWatch, certifique-se de que a região especificada corresponda à região do console. Além disso, certifique-se de que os logs estejam verificados na conta correta.

De maneira opcional, use o arquivo common‑config.toml para substituir os padrões do sistema do agente do CloudWatch:

Linux:

/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml
/etc/amazon/amazon-cloudwatch-agent/common-config.toml

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml

Permissões insuficientes do IAM

O agente do CloudWatch usa credenciais do usuário do IAM ou da política de perfil do IAM para enviar eventos de logs para o CloudWatch. Antes de publicar um evento de logs, crie um grupo de logs e um fluxo de logs. Se não existir grupo de logs ou fluxo de logs, então o agente do CloudWatch os criará.

Verifique se sua política inclui as seguintes permissões do IAM:

"logs:CreateLogGroup","logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"

Adicione todas as permissões do IAM ausentes na política do usuário ou na política do perfil.

Observação: ao criar perfis e usuários do IAM, é recomendável usar as políticas CloudWatchAgentServerPolicy e CloudWatchAgentAdminPolicy criadas pela Amazon.

Erros de execução do agente do CloudWatch

Verifique se o agente do CloudWatch está em execução. Se o agente não estiver em execução, verifique se há erros no local do arquivo de log:

Linux:

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log

Observação: Os logs podem ser especificados em um local logfile personalizado. Verifique o arquivo de configuração do agente para identificar qualquer local de log personalizado.

Use o parâmetro debug para ativar o registro detalhado de depuração no arquivo de configuração. Se você usar o parâmetro run_as_user, verifique se o usuário tem permissões para o local do log. Sem as permissões necessárias, o usuário do CloudWatch não pode gravar logs no local.

Se você observar problemas relacionados ao IMDS ao iniciar o agente CloudWatch, conclua as seguintes etapas:

Problemas de data e hora

Verifique se os eventos de logs tem carimbos de data e hora de mais de 14 dias atrás ou de mais de duas horas no futuro. O comando PutLogEvents não permite lotes de log com esses períodos de tempo. Além disso, verifique se o serviço de horário do sistema da instância está configurado corretamente. Para obter mais informações, consulte Alterar o fuso horário da sua instância.

Valor ausente ou incorreto no arquivo de estado do log

Para resolver um valor ausente ou incorreto no arquivo de estado do log, conclua as seguintes etapas:

  1. Certifique-se de que seus arquivos de estado estejam no local correto:
    Linux:

    /opt/aws/amazon-cloudwatch-agent/logs/state
    
    

    Windows:

    C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs\state

    Observação: certifique-se de que os arquivos de estado anteriores contenham o mesmo valor de tamanho do arquivo de log. Isso permite que novos dados sejam lidos e publicados no CloudWatch.

  2. Verifique o valor do tamanho do arquivo estado:
    Linux:

    sudo cat /opt/aws/amazon-cloudwatch-agent/logs/state/_var_log_httpd_access_log
    
    

    Windows:

    gc 'C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs\state\C__Program_Files_log.log'
    
    

    Observação: a saída dos comandos anteriores é um valor numérico do deslocamento atual. Por exemplo, se a saída for 34, o deslocamento atual está no 34.º byte do arquivo de log. Os logs são lidos nesse byte quando novos logs são gravados no arquivo de log.

  3. Verifique o valor do tamanho do arquivo de log:
    Linux:

    stat /var/log/httpd/access_log | grep Size | awk '{print $2}'
    
    

    Windows:

    Get-Item 'C:\Program Files\log.log' | Format-List | findstr Length
  4. Verifique se as saídas das etapas 2 e 3 anteriores são as mesmas.

Configuração incorreta do arquivo de log de origem

Para resolver problemas de uma configuração incorreta do arquivo de log de origem, conclua as seguintes etapas:

  • Verifique se a configuração do agente CloudWatch inclui o arquivo de log que você deseja monitorar.
  • Certifique-se de que o arquivo de log tenha o formato de arquivo correto e certifique-se de que os nomes e locais corretos sejam usados.
  • Na configuração atual, verifique se os logs são enviados para o mesmo grupo de logs e fluxo de logs dos quais você deseja recuperar dados.
  • Revise o arquivo de log que você está monitorando na sua instância. Verifique se o arquivo de log de origem contém os dados que você deseja publicar no grupo de logs.

Restrições de PutLogEvents

O agente do CloudWatch usa a API PutLogEvents para publicar eventos de log nos grupos de log do CloudWatch. Certifique-se de estar em conformidade com as restrições dessa API. Para mais informações, consulte PutLogEvents.

Valor de force_flush_interval alto

O force_flush_interval especifica o tempo máximo que os logs podem permanecer no buffer de memória antes de serem enviados ao servidor. Se o tamanho dos logs atingir o buffer máximo de 1 MB, eles serão imediatamente publicados no CloudWatch. Os logs são publicados no CloudWatch independentemente do intervalo definido pelo force_flush_interval.

Se o intervalo for definido como um valor alto e o tamanho do log não atingir 1 MB, os logs permanecerão no buffer. Os logs permanecem no buffer até que o buffer esteja cheio ou o intervalo termine. Durante esse intervalo, os logs não estão disponíveis no CloudWatch. Certifique-se de definir o valor do intervalo para o tamanho correto. É uma prática recomendada definir o valor do intervalo com base no tamanho do log e nos intervalos em que você deseja que eles sejam publicados.

Informações relacionadas

Solução de problemas do agente do CloudWatch

AWS OFICIAL
AWS OFICIALAtualizada há um ano