Wie kann ich Protokolle in Echtzeit über das Terminal ansehen?


16

Dies ist eine grundlegende Frage - im Film "The Social Network" gibt es mehrere Szenen, in denen die jungen Facebook-Mitarbeiter beobachten, wie sich der PHP / Apache-Server in Echtzeit in ihrem TERMINAL anmeldet.

Ich bin mit der Vorgehensweise in einer RUBY / RoR-Umgebung vertraut. In einer Standard-LAMP-Apache / PHP-Umgebung können Sie die Aktionen Ihres Servers jedoch aktiv in Echtzeit überwachen. Ich vermute, es gibt eine einfache Möglichkeit, dies im Terminal zu tun.


Ich habe diesen Film nicht gesehen. Hat jemand einen Screenshot oder einen Clip, der die Details darüber zeigt, was die Facebook-Mitarbeiter im Film machen?
Stefan Lasiewski

Tail -f in der Protokolldatei erledigt dies normalerweise.
Fiasko Labs

Antworten:


47

Vielleicht benutzen sie tail -fdas Zugriffsprotokoll?


2
Wäre dies für große Websites wie Facebook, bei denen jede Sekunde Tausende von Anfragen eingehen, nicht sehr schnell zu bewältigen?
Vilx

3
tail -f kann immer durch grep gefiltert werden, wenn Sie nach bestimmten Anforderungen suchen ... die das Volumen reduzieren können
Mark Baker

3
tail -fist die Nr. 1 Grund, mindestens ein Minimum an Cygwin in eine Windows-Box zu stecken!
Daniel Earwicker

1
@ Daniel Ich denke, GnuWin32 hat auch einen Schwanzbefehl
Jader Dias

1
für das geschwindigkeitsproblem ... tail -f /log/any.log | while read line; do echo $line; sleep 3; doneaber das wäre nicht mehr "echtzeit"
theist



6

Wenn Sie nach einem Echtzeit-Apache-Protokoll-Viewer und -Analysator suchen, würde ich GoAccess auf jeden Fall empfehlen.

http://goaccess.prosoftcorp.com/

Sie führen es einfach wie folgt aus (kein conf erforderlich):

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

3

Sie können auch den Befehl "watch" verwenden, mit dem Sie wiederholt einen grep-Befehl für jede gewünschte Protokolldatei ausführen können. Mit entsprechenden Überwachungsbefehlsschaltern können Sie sogar Änderungen in Protokolldateien in Echtzeit hervorheben.

Beispielsweise:

watch -d -n5 Uptime


2

GoAccess 0.6.1 sollte mindestens eines der Werkzeuge in Ihrer Tasche sein. Open Source. Schnell und stabil.

Für 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 machen Fehler auf CENTOS 6
Mike

1

Dies ist eine grundlegende Frage - im Film "The Social Network" gibt es mehrere Szenen, in denen die jungen Facebook-Mitarbeiter beobachten, wie sich der PHP / Apache-Server in Echtzeit in ihrem TERMINAL anmeldet.

Bei einem großen System wie Facebook muss man sich fragen, wie viel künstlerische Lizenz es gibt (auch bekannt als Bullsh * t) für die Erstellung des Films verwendet wurde. In einer Umgebung mit Tausenden von Systemen und Tausenden von Clustern ist das Überwachen des Bildlaufs von Serverprotokollen auf einem Terminal nicht unbedingt die Hauptüberwachungsaktivität.

In einer solchen Umgebung (oder einer Produktionsumgebung mit mehreren Dutzend Knoten) hätten Sie eine Art NOSC mit Indikatoren, und nur wenn etwas als in diesem Zustand befindlich gekennzeichnet ist crapping out, würden Sie die Protokolle aktiv durchsehen ( wahrscheinlich nach wichtigen Ereignissen und Nachrichten gefiltert.)


Bei einer ausreichend kleinen Website macht das Ansehen der Protokolle Spaß und gibt Ihnen einen allgemeinen Eindruck davon, wie gut Ihre Erwartungen erfüllt werden. In jedem Fall verwendet die Frage den Film nur als Inspiration und fragt: "Wie kann ich so etwas tun?" statt "Wie haben sie das gemacht?"
Eswald

Nun, eine Sache ist, ein Terminal offen zu halten, während der Schwanz nach unten rollt. Es könnte jedoch sehr teuer werden. Es kann sehr teuer CPU-weise erhalten auf dem Client , wenn Sie, sagen wir, die Protokolle auf einem entfernten Terminal, die angezeigt durch VNC oder Remote Desktop scrollen. Andere Lösungen umfassen das Senden von Protokollausgaben an syslog (und das Senden von Protokollausgaben per Fernzugriff an einen Syslog-Server) oder sogar das Senden mehrerer Protokollzeilen (komprimiert und über UDP) an einen Überwachungsclient. Letzteres kann zum Verlust einiger Leitungen führen, da es sich um UDP handelt. Es kann jedoch unter bestimmten Bedingungen akzeptabel sein.
Luis.espinal

0

Während ich begeistert bin, dass The Social Network hauptsächlich akkurate Fachsprache und Terminologie verwendete, einige der Dinge, die sie nur für die Show getan haben.

Ich bin kein Serverexperte, aber ich habe gesehen, dass Zuckerberg ein offenes Terminal mit einem laufenden Ping-Befehl hat, und ich kann mir keinen Grund vorstellen, warum er das zufällig tun würde. (Dies war nach der Zeit, als der Server bereits in Betrieb war).

Ich fand die Python-Server-Hacking-Szene allerdings sehr amüsant.



0

Sie können auch den Echtzeit-Protokoll-Viewer in so etwas wie LogLogic verwenden und das filtern, was Sie nicht sehen wollten. Auf diese Weise könnten Sie mehr als Apache-Protokolle sammeln, Router-Protokolle, FTP-Protokolle usw. abrufen.


0

Sie könnten ziemlich einfach ein Abfrageskript schreiben, aber den Zeitstempel oder die Dateigröße vergleichen und, falls geändert, a tail -n1


0

Apachetail bietet auch eine Echtzeitansicht / -analyse von Apache-Protokollen, indem von einer Windows-Desktop-App aus eine direkte Verbindung zu Ihrem Apache-Server hergestellt wird. Auf dem Apache-Server muss keine Software installiert sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.