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-streams
para 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
aws
egrep
, talvez você queira escrever um pequeno downloader / analisador. empython
ou 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_log
registros, 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:)