Come guardare i registri in tempo reale tramite il terminale?


16

Questa è una domanda di base: nel film "The Social Network" ci sono diverse scene in cui il giovane staff di Facebook sta guardando il server PHP / Apache accedendo al proprio TERMINAL in tempo reale.

Conosco come eseguire questa operazione in un ambiente RUBY / RoR - ma con un ambiente LAMP Apache / PHP standard, come monitorare attivamente le azioni del server in tempo reale? Immagino che ci sia un modo semplice per farlo in Terminal.


Non ho visto questo film. Qualcuno ha uno screenshot o una clip che mostra i dettagli di ciò che lo staff di Facebook sta facendo nel film?
Stefan Lasiewski,

tail -f sul file di registro di solito lo fa.
Fiasco Labs,

Risposte:


47

forse usano tail -fnel registro degli accessi?


2
Questo non sarebbe ingestibile molto velocemente per siti di grandi dimensioni come Facebook dove ci sono migliaia di richieste ogni secondo?
Vilx

3
tail -f può sempre essere filtrato attraverso grep se stai cercando richieste specifiche ... che possono ridurre i volumi
Mark Baker

3
tail -fè il no. 1 motivo per mettere almeno un minimo di Cygwin su una finestra di Windows!
Daniel Earwicker,

1
@Daniel Penso che anche GnuWin32 abbia un comando di coda
Jader Dias,

1
per quel problema di velocità ... tail -f /log/any.log | while read line; do echo $line; sleep 3; donema questo non sarebbe più "in tempo reale"
teista il



6

Se stai cercando un visualizzatore e un analizzatore di log Apache in tempo reale, consiglierei sicuramente GoAccess.

http://goaccess.prosoftcorp.com/

Lo esegui semplicemente come (non è necessaria la configurazione):

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

3

Un'altra cosa che puoi provare è il comando "watch" che può eseguire ripetutamente un comando grep su qualsiasi file di registro che desideri. Utilizzando gli interruttori di comando watch approriate è anche possibile evidenziare le modifiche nei file di registro in tempo reale.

Per esempio:

guarda -d -n5 uptime


2

GoAccess 0.6.1 dovrebbe essere almeno uno degli strumenti nella tua borsa. Open Source. Veloce e STABILE.

Per 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]

geoip commette errore su CENTOS 6
Mike,

1

Questa è una domanda di base: nel film "The Social Network" ci sono diverse scene in cui il giovane staff di Facebook sta guardando il server PHP / Apache accedendo al proprio TERMINAL in tempo reale.

Per un sistema di grandi dimensioni come Facebook, devi chiederti quanta licenza artistica (aka bullsh * t) è stata data nella realizzazione del film. In un ambiente con migliaia di sistemi e migliaia di cluster, guardare i registri dei server scorrere su un terminale non è necessariamente l'attività di monitoraggio n. 1.

In un ambiente del genere (o in qualsiasi ambiente di produzione con diverse decine di nodi), avresti un NOSC di tipo con indicatori e solo quando qualcosa viene contrassegnato come in uno stato di crapping outquello andresti e guarderebbe attivamente i registri ( probabilmente filtrato per eventi e messaggi significativi.)


Per un sito abbastanza piccolo, guardare i registri è abbastanza divertente e può darti un'idea generale di quanto bene vengono soddisfatte le tue aspettative. In ogni caso, la domanda usa solo il film come ispirazione, chiedendo "Come posso fare qualcosa del genere?" invece di "Come hanno fatto?"
eswald,

Bene, una cosa è tenere aperto un terminale con la coda che scorre verso il basso. Tuttavia, potrebbe ottenere una larghezza di banda molto costosa. Può diventare molto costoso dal punto di vista della CPU sul client se, ad esempio, si sta facendo scorrere i log su un terminale remoto che viene visualizzato tramite VNC o Desktop remoto. Altre soluzioni prevedono l'invio dell'output del registro a syslog (e il fatto che lo abbia inviato in remoto a un server syslog) o persino l'invio di batch di linee di registro (compresso e tramite UDP) a un client di monitoraggio. Il successivo potrebbe comportare la perdita di alcune linee poiché è UDP. Potrebbe essere accettabile in alcune condizioni, però.
luis.espinal,

0

Mentre sono entusiasta del fatto che The Social Network abbia usato per lo più gergo e terminologia accurati, alcune delle cose che hanno fatto solo per lo spettacolo.

Non sono un esperto di server ma ho visto Zuckerberg avere un terminale aperto con un comando ping in esecuzione e non riesco a pensare a nessuna ragione per cui lo farebbe in modo casuale. (Ciò accadde dopo che avevano già il server attivo e funzionante).

Ho trovato molto divertente la scena di hacking del server Python.



0

Puoi anche utilizzare il visualizzatore di log in tempo reale in qualcosa come LogLogic e filtrare ciò che non volevi vedere. In questo modo potresti raccogliere più dei log di Apache, ottenere log del router, log ftp, ecc.


0

potresti scrivere abbastanza facilmente uno script di polling, confrontare il timestamp o la dimensione del file e, se modificato, fare un tail -n1


0

Apachetail fornisce anche una vista / analisi in tempo reale dei log di Apache collegandosi direttamente al server Apache da un'app desktop di Windows. Non è necessario installare alcun software sul server Apache.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.