Arquivamento de logs do AWS Elastic Beanstalk S3 e terminação / recriação de instâncias

1

Eu recentemente movi um aplicativo para o Elastic Beanstalk. Atualmente, estou no processo de configurar arquivos de log para serem arquivados. Um dos requisitos de negócios é x dias de retenção de log, o que é bastante sensato, é claro. Como os arquivos de log são armazenados na instância e os dados da instância não persistem ao finalizar / recriar a instância, os registros precisam ser armazenados em outro lugar.

O Elastic Beanstalk oferece a opção "S3 log storage", que parece carregar arquivos de log rotacionados para o S3, o que cobriria a maioria das minhas necessidades. A única exceção seria quando uma instância é terminada / recriada: como posso garantir facilmente que, antes da rescisão, os arquivos de log ainda não girados são carregados no S3?

    
por Michel 23.11.2018 / 09:09

1 resposta

2
O backup de logs do Elastic Beanstalk para o S3 é feito de tempos em tempos como upload em lote por logrotate , o que significa, como você apontou corretamente, que os logs mais recentes pode não estar no S3 quando a instância terminar.

Você pode criar um script de desligamento (por exemplo, aqui ) que fará o upload de todos os arquivos de log para o S3 quando a instância estiver sendo desligada normalmente . Pode não ser executado se a instância falhar ou falhar de alguma forma abrupta, mas esse é um evento bastante raro.

No entanto, Elastic Beanstalk suporta CloudWatch Log Streaming que alimenta os logs para os registros do CloudWatch em tempo real, assim que são gerados. Isso significa que, mesmo em caso de desligamento, você ainda terá os logs mais recentes do CloudWatch Logs até o ponto em que o agente awslogs será encerrado.

Dê uma olhada aqui como para configurá-lo.

Também é mais fácil pesquisar registros do CloudWatch do que do S3, observar uma determinada palavra-chave (por exemplo, "Erro") e ação (por exemplo, enviar e-mail ou executar a função Lambda) etc.

Você provavelmente pode ter registros do S3 e do CloudWatch ativados em seu aplicativo Elastic Beanstalk ao mesmo tempo.

Espero que ajude:)

    
por 24.11.2018 / 23:21