Por que não posso enviar dados de log para o CloudWatch Logs com o agente do awslogs?

4 minuto de leitura
0

Não consigo enviar dados de log ao Amazon CloudWatch Logs usando o agente do CloudWatch Logs (awslogs).

Resolução

Antes de começar, confirme se o agente awslogs pode se conectar ao endpoint de API do CloudWatch Logs.

Certifique-se de que sua configuração tenha os seguintes atributos:

  • Conectividade com a Internet
  • Configurações de grupo de segurança válidas
  • Listas válidas de controle de acesso à rede (ACLs de rede)

Importante: essa referência é para o agente anterior do CloudWatch Logs que não é mais compatível. Se você usar o Instance Metadata Service Version 2 (IMDSv2), deverá usar o novo agente unificado do CloudWatch. Mesmo que não esteja usando o IMDSv2, é uma prática recomendada usar o novo agente unificado do CloudWatch em vez do agente de log.

Problemas de impressão digital

Examine as linhas de cabeçalho do arquivo de log de origem. Você define o caminho desse arquivo ao configurar os dados a serem enviados ao CloudWatch.

  • Se as primeiras linhas estiverem em branco ou contiverem dados que não sejam de eventos que permaneçam inalterados, pode haver problemas com o hash de identificação do log.
  • Se as linhas do cabeçalho forem iguais, atualize a opção file_fingerprint_lines no arquivo de configuração do agente. Certifique-se de especificar as linhas em cada arquivo que são usadas para gerar o hash de identificação.

Verifique se há erros no arquivo de log awslogs

Examine o arquivo de log /var/log/awslogs.log. Certifique-se de anotar todas as mensagens de erro.

Os erros de permissões incluem:

  • NoCredentialsError: Unable to locate credentials: se você não adicionou um perfil do AWS Identity and Access Management (IAM) à instância, crie e anexe um perfil do IAM. Se você já adicionou um perfil do IAM à instância, atualize as credenciais do usuário do IAM no arquivo /etc/awslogs/awscli.conf.
  • ClientError: An error occurred (AccessDeniedException) when calling the PutLogEvents operation: User: arn:aws:iam::012345678910: / is not authorized to perform: logs:PutLogEvents[...]Configure o usuário ou perfil do IAM com as permissões necessárias para o CloudWatch Logs.

Erros de carimbo de data/hora incluem:

  • Fall back to previous event time: {'timestamp': 1492395793000, 'start_position': 17280L, 'end_position': 17389L}, previousEventTime: 1492395793000, reason: timestamp could not be parsed from message. – Confirme se os eventos de log começam com um carimbo de data/hora. Verifique se datetime_format especificado em /etc/awslogs/awslogs.conf corresponde ao formato de carimbo de data/hora dos eventos de log. Altere datetime_format para corresponder ao formato do carimbo de data/hora conforme necessário.
  • No file is found with given path ' ' – Atualize o caminho do arquivo de log no arquivo de configuração do agente para o caminho correto.

Outros problemas de awslogs

  • Se os logs pararam de ser enviados após uma alternância de log, verifique os métodos de alternância de log com suporte. Para obter mais informações, consulte Perguntas frequentes sobre o agente do CloudWatch Logs.
  • Se logs forem enviados brevemente somente após a reinicialização do agente awslogs, verifique se há duplicatas na seção [logstream] do arquivo de configuração do agente. Cada seção deve ter um nome exclusivo.
  • Se o arquivo de log awslogs.log ocupar muito espaço no disco, verifique se há erros no arquivo de log e corrija-os. Se o arquivo de log contiver somente mensagens informativas, especifique um nível de log mais baixo para a opção logging_config_file no arquivo de configuração do agente.

Solução de problemas adicionais

Para obter mais soluções de problemas, anote o instance-id (o ID da sua instância). Em seguida, colete e revise o seguinte com base na sua configuração.

Instalações do Yum:

  • Versão do yum
$ yum info awslogs
$ yum info aws-cli-plugin-cloudwatch-logs
  • arquivo /etc/awslogs/awslogs.conf
  • arquivo /etc/awslogs/awscli.conf
  • Outros arquivos relevantes em /etc/awslogs/
  • arquivo /var/log/awslogs.log

Instalações baseadas em scripts:

  • A versão de awslogs, obtida com o seguinte comando:
$ /var/awslogs/bin/awslogs-version.sh
  • arquivo /var/awslogs/etc/awslogs.conf
  • arquivo /var/awslogs/etc/awscli.conf
  • Outros arquivos relevantes em /var/awslogs/etc/
  • /var/log/awslogs.log
  • /var/log/awslogs-agent-setup.log

Para problemas relacionados a alternância, colete e revise:

  • Um trecho dos logs de origem
  • Uma lista do conteúdo do diretório de monitoramento de destino. Use o comando ls -la com o caminho de diretório para obter isto:
$ ls -la <Monitoring-Target-Directory-Path>

Informações relacionadas

Introdução ao CloudWatch Logs

AWS OFICIAL
AWS OFICIALAtualizada há um ano