Para automatizar uma tarefa como essa, você tem algumas opções.
-
Processamento em lote - Baixe os registros do CloudWatch e, em seguida, analise-os , procurando por seus usuários.
Você pode usar
aws logs describe-log-streamspara localizar os nomes dos fluxos de logs, filtrá-los por timestamp para garantir que você processe apenas os mais recentes.Para cada chamada de fluxo de logs
aws logs get-log-events, que fornecerá as mensagens de registro reais e as analisará, por exemplo, usandogrep.Em vez de usar
awsegrep, talvez você queira escrever um pequeno downloader / analisador. empythonou em algum outro idioma de sua escolha e use um dos SDK da AWS bibliotecas para acessar os logs. -
Processamento on-line - capture e processe os registros de log correspondentes assim que forem gravados no CloudWatch Logs . Você pode configurar o padrão Filtro de registros do CloudWatch e alimentar o correspondência
access_logregistros, por exemplo para uma função Lambda que acompanhará os usuários que acessam seu site. Você pode manter os resultados, por exemplo, em um DynamoDB , um objeto para cada usuário. -
Vá peso pesado e use Serviço ElasticSearch ou Graylog ou Splunk ou algum serviço de processamento de log semelhante . Mas é muito provável que seja um exagero no seu caso de uso.
Espero que ajude:)