AWS Cloudwatch Agent não está recebendo alterações

3

Estou perplexo. Eu tenho dois arquivos de log sendo assistidos pelo agente do AWS CloudWatch. O primeiro, /var/log/nginx/access.log , funciona perfeitamente bem. O segundo, /var/log/otherserver/access.log , não está recebendo nenhuma alteração. Não, eventualmente, nem sempre A MENOS QUE eu reinicie o agente, após o que ele pega as alterações e as envia para o CloudWatch como esperado.

/var/log/otherserver/access.log é um arquivo de log rsync'ed periodicamente de outro servidor que não pode ter o agente instalado nele. Comando parece:

rsync -av user@host:/var/log/access.log /var/log/otherserver/access.log

O agente definitivamente pode lê-lo, porque ele lê as mudanças depois de ser reiniciado.

A posição da entrada no arquivo de configuração não parece ser importante.

As datas nas entradas de log para o arquivo de log rsync'ed são as mesmas do servidor (tudo é UTC).

Se eu mover o arquivo de log, o agente começará a reclamar com:

2015-12-14 16:02:26,158 - cwlogs.push.stream - WARNING - 3344 - Thread-1 - No file is found with given path '/var/log/otherserver/access.log'.

A configuração deste segundo arquivo de log é quase idêntica à primeira (abaixo).

[website.access.log]
#datetime_format = 09/Dec/2015:14:15:02 +0000
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/otherserver/access.log
log_stream_name = master-platform.sh
initial_position = start_of_file
log_group_name = web-access

[app.access.log]
#datetime_format = 09/Dec/2015:14:15:02 +0000
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/nginx/lax.access.log
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = web-access

Alguém tem qualquer pistas sobre o que está acontecendo aqui? Ou pode sugerir um agente alternativo que seja menos ... maluco?

    
por lsh 14.12.2015 / 17:13

1 resposta

0

É possível que o arquivo de estado de seu agente esteja corrompido porque você continuou fazendo alterações na configuração. Existem duas maneiras de corrigir isso:

  • Opção 1: Use um novo nome para o cabeçalho do bloco de configuração.
    • Ou seja, altere [website.access.log] para [something.else] .
  • Opção 2: Exclua o arquivo de estado do agente depois de parar o serviço.

    sudo service awslogs stop
    sudo rm /var/lib/awslogs/agent-state
    sudo service awslogs start
    

Por favor, note que a opção 2 pode inicialmente fazer com que os logs duplicados sejam enviados ao CloudWatch à medida que um novo arquivo de estado é criado.

    
por 29.01.2018 / 21:18