Existem várias vantagens em executar a análise de log como um trabalho noturno se você não precisar de atualização de dados em tempo real:
-
Você tem controle da carga no servidor da Web e no servidor de banco de dados causada pelo
análise de log, ou seja. não é afetado por picos de tráfego. Você pode até mesmo mover seus arquivos de log
para um servidor diferente para análise depois de terem sido rotacionados, se você quiser. Isto é muito
útil se seu aplicativo estiver sendo executado em vários servidores da web.
-
Você pode realizar agregações nos dados antes de inseri-los no banco de dados, se precisar.
-
Vários mecanismos de banco de dados suportam algum tipo de inserção em massa que é muito mais rápida
do que inserir os mesmos dados, um registro por vez.
-
O tratamento de erros (erros no seu código de análise, banco de dados indisponível etc.) é mais simples - apenas
Execute novamente o mesmo script nos dados de registro relevantes após o problema ser corrigido.
Tenho certeza de que há outros, dependendo de suas necessidades e situação de hospedagem. Pessoalmente
Eu nem sequer considere piping do Apache a menos que as atualizações em tempo real sejam must absolutas,
e mesmo assim eu iria extrair apenas o que era necessário no script canalizado e lidar com tudo
mais com um trabalho noturno.
Se você precisar de uma solução próxima ao tempo real, considere o uso de uma fila de mensagens
sistema (como ActiveMQ , por exemplo), e postar mensagens na fila através do Apache
tubo de log.