Como assistir logs em tempo real via Terminal?

16

Esta é uma pergunta básica - no filme "A Rede Social", existem várias cenas em que a jovem equipe do Facebook está assistindo o servidor PHP / Apache efetuar logon no TERMINAL em tempo real.

Eu estou familiarizado com como fazer isso em um ambiente RUBY / RoR - mas com um ambiente LAMP Apache / PHP padrão, como monitorar ativamente as ações do seu servidor em tempo real? Suponho que exista uma maneira fácil de fazer isso no Terminal.

Jamison
fonte
Eu não vi esse filme. Alguém tem uma captura de tela ou um clipe que mostra os detalhes do que a equipe do Facebook está fazendo no filme?
Stefan Lasiewski 19/10/10
tail -f no arquivo de log geralmente faz isso.
Fiasco Labs

Respostas:

47

talvez eles usem tail -fno log de acesso?

Dror
fonte
2
Isso não seria administrável muito rápido para sites grandes como o Facebook, onde existem milhares de solicitações a cada segundo?
Vilx-
3
tail -f sempre pode ser filtrada através de grep, se você está procurando pedidos específicos ... que pode reduzir os volumes
Mark Baker
3
tail -fé o não. 1 razão para colocar pelo menos Cygwin mínimo em uma caixa de janelas!
precisa
11
@ Daniel Acho GnuWin32 também tem um comando tail
Jader Dias
11
para esse problema de velocidade ... tail -f /log/any.log | while read line; do echo $line; sleep 3; donemas isso não seria "realtime" anymore
teísta
16

Ou mesmo algo como logstalgia ;-)

pesado
fonte
3
Uau, isso é incrível. E pode ser mais do que apenas colírio para os olhos.
Stefan Lasiewski 19/10/10
8

ou instale e use multitail para especificar filtros e cores :)

onik
fonte
6

Se você estiver procurando um visualizador e analisador de registros Apache em tempo real, eu recomendaria definitivamente o GoAccess.

http://goaccess.prosoftcorp.com/

Você apenas o executa como (não é necessário conf):

goaccess -f /var/log/apache2/access.log -s -b

fonte
3

Outra coisa que você pode tentar é o comando "watch", que pode executar repetidamente um comando grep em qualquer arquivo de log desejado. Usando opções de comando de monitoração apropriada, você pode destacar as alterações nos arquivos de log em tempo real.

Por exemplo:

tempo de atividade do relógio -d -n5

mk_gocs
fonte
2

O GoAccess 0.6.1 deve ser pelo menos uma das ferramentas na sua bolsa. Código aberto. Rápido e estável.

Para Rhel / Centos 6.4

yum install glib2 glib2-devel glibc make geoip
yum install ncurses-devel
Download GoAccess - http://goaccess.prosoftcorp.com/download
Untar it and cd into it
./configure
make
make install

Finally: goaccess -f /var/log/httpd/access.log (or wherever your access logs are [maybe even /etc/httpd/logs/access_log]
Chris
fonte
geoip cometeu erro no CENTOS 6
Mike
1

Esta é uma pergunta básica - no filme "A Rede Social", existem várias cenas em que a jovem equipe do Facebook está assistindo o servidor PHP / Apache efetuar logon no TERMINAL em tempo real.

Para um sistema grande como o Facebook, você se perguntava quanta licença artística (também conhecida como besteira *) era dada na produção do filme. Em um ambiente com milhares de sistemas e milhares de clusters, assistir os logs do servidor rolando em um terminal não é necessariamente a principal atividade de monitoramento.

Em um ambiente como esse (ou em qualquer ambiente de produção com várias dezenas de nós), você teria um NOSC de classificação com indicadores, e somente quando algo é sinalizado como estando em um estado crapping outdesse tipo, ele analisa ativamente os logs ( provavelmente filtrada para eventos e mensagens significativos.)

luis.espinal
fonte
Para um site pequeno o suficiente, assistir os logs é meio divertido e pode dar uma ideia geral de quão bem suas expectativas estão sendo atendidas. De qualquer forma, a pergunta apenas usa o filme como inspiração, perguntando "Como posso fazer algo assim?" em vez de "Como eles fizeram isso?"
eswald
Bem, uma coisa é manter um terminal aberto com a cauda -f rolando para baixo. Poderia ficar muito caro largura de banda embora. Pode custar muito caro a CPU no cliente se, por exemplo, você estiver rolando os logs em um terminal remoto que está sendo exibido por meio do VNC ou da Área de Trabalho Remota. Outras soluções envolvem o envio de saída de log para o syslog (e de enviá-lo remotamente para um servidor syslog) ou mesmo o envio de lotes de linhas de log (compactadas e via UDP) para um cliente de monitoramento. O posterior pode envolver a perda de algumas linhas, pois é UDP. Pode ser aceitável em algumas condições, no entanto.
Luis.espinal 19/10/10
0

Enquanto estou empolgado com o fato de a The Social Network ter usado na maioria das vezes jargões e terminologias precisas, algumas das coisas que eles fizeram apenas para mostrar.

Não sou especialista em servidores, mas vi Zuckerberg ter um terminal aberto com um comando ping em execução e não consigo pensar em nenhum motivo para ele fazer isso aleatoriamente. (Isso ocorreu depois do tempo em que eles já tinham o servidor em funcionamento).

Eu achei a cena de hackers do servidor Python muito divertida.


fonte
0

Você também pode usar o visualizador de logs em tempo real em algo como o LogLogic e filtrar o que você não deseja ver. Dessa forma, você pode coletar mais do que logs do apache, obter logs do roteador, logs ftp, etc.

BillRoth
fonte
0

você pode escrever um script de pesquisa com muita facilidade, basta comparar o carimbo de data e hora ou o tamanho do arquivo e, se alterado, faça um tail -n1

jambox
fonte
0

O Apachetail também fornece uma visualização / análise em tempo real dos logs do Apache, conectando-se diretamente ao servidor Apache a partir de um aplicativo de desktop do Windows. Nenhum software precisa ser instalado no servidor Apache.

Peter Jamsmenson
fonte