Jak oglądać dzienniki w czasie rzeczywistym za pośrednictwem terminala?

16

To podstawowe pytanie - w filmie „The Social Network” jest kilka scen, w których młody personel Facebooka ogląda, jak serwer PHP / Apache loguje się w swoim TERMINALU w czasie rzeczywistym.

Wiem, jak to zrobić w środowisku RUBY / RoR - ale w standardowym środowisku LAMP Apache / PHP, jak aktywnie monitorować działania serwera w czasie rzeczywistym? Domyślam się, że istnieje prosty sposób, aby to zrobić w Terminalu.

Jamison
źródło
Nie widziałem tego filmu. Czy ktoś ma zrzut ekranu lub klip, który pokazuje szczegóły tego, co robią pracownicy Facebooka w filmie?
Stefan Lasiewski
tail -f w pliku dziennika zwykle to robi.
Fiasco Labs

Odpowiedzi:

47

może używają tail -fw dzienniku dostępu?

Dror
źródło
2
Czy nie da się tak szybko zarządzać w przypadku dużych witryn, takich jak Facebook, gdzie na sekundę pojawiają się tysiące próśb?
Vilx-
3
tail -f zawsze można przefiltrować przez grep, jeśli szukasz konkretnych żądań ... które mogą zmniejszyć głośność
Mark Baker
3
tail -fjest nie. 1 powód, dla którego umieścisz przynajmniej minimalny Cygwin w oknie systemu Windows!
Daniel Earwicker,
1
@Daniel Myślę, że GnuWin32 ma również polecenie ogona
Jader Dias
1
z powodu tego problemu z prędkością ... tail -f /log/any.log | while read line; do echo $line; sleep 3; doneale to nie byłoby już "w czasie rzeczywistym"
teist
16

Lub nawet coś takiego jak logstalgia ;-)

weeheavy
źródło
3
To jest niesamowite. I może to być coś więcej niż tylko cukierki do oczu.
Stefan Lasiewski
6

Jeśli szukasz przeglądarki i analizatora dziennika Apache w czasie rzeczywistym, zdecydowanie polecam GoAccess.

http://goaccess.prosoftcorp.com/

Po prostu uruchom go jako (nie potrzeba conf):

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

źródło
3

Inną rzeczą, którą możesz wypróbować, jest komenda „watch”, która może wielokrotnie uruchamiać komendę grep dla dowolnego pliku dziennika. Za pomocą odpowiednich przełączników poleceń obserwowania można nawet wyróżniać zmiany w plikach dziennika w czasie rzeczywistym.

Na przykład:

oglądać -d -n5 czas działania

mk_gocs
źródło
2

GoAccess 0.6.1 powinien być co najmniej jednym z narzędzi w torbie. Otwarte źródło. Szybki i STABILNY.

Dla 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
źródło
geoip popełni błąd na CENTOS 6
Mike Castro Demaria
1

To podstawowe pytanie - w filmie „The Social Network” jest kilka scen, w których młody personel Facebooka ogląda, jak serwer PHP / Apache loguje się w swoim TERMINALU w czasie rzeczywistym.

W przypadku dużego systemu, takiego jak Facebook, trzeba się zastanawiać, ile licencji artystycznej (aka bullsh * t) zostało wydane przy tworzeniu filmu. W środowisku z tysiącami systemów i tysiącami klastrów oglądanie dzienników serwera przewijanych na terminalu niekoniecznie jest pierwszym działaniem monitorującym.

W takim środowisku (lub w dowolnym środowisku produkcyjnym z kilkudziesięcioma węzłami) masz NOSC w rodzaju wskaźników i tylko wtedy, gdy coś jest oznaczone jako będące w stanie tego crapping out, przejdzie i aktywnie zajrzy do dzienników ( prawdopodobnie filtrowane pod kątem znaczących zdarzeń i wiadomości).

luis.espinal
źródło
W przypadku wystarczająco małej witryny oglądanie dzienników jest zabawą i może dać ogólny obraz tego, jak dobrze spełniane są Twoje oczekiwania. W każdym razie pytanie wykorzystuje film jako inspirację, pytając: „Jak mogę coś takiego zrobić?” zamiast „Jak to zrobili?”
eswald
Cóż, jedną rzeczą jest pozostawienie otwartego terminalu z przewijaniem ogona w dół. Może to być bardzo kosztowne dla całego pasma. Może być bardzo kosztowne pod względem procesora u klienta, jeśli, powiedzmy, przewijasz dzienniki na zdalnym terminalu wyświetlanym przez VNC lub Pulpit zdalny. Inne rozwiązania obejmują wysyłanie danych wyjściowych dziennika do syslog (i przesyłanie ich zdalnie do serwera syslog), a nawet wysyłanie partii wierszy dziennika (skompresowanych i za pośrednictwem UDP) do klienta monitorującego. Później może wiązać się z utratą niektórych linii, ponieważ jest to UDP. Jednak może być do przyjęcia w niektórych warunkach.
luis.espinal
0

Choć jestem podekscytowany, że portal społecznościowy używał głównie dokładnego żargonu i terminologii, niektóre z rzeczy, które zrobili tylko na pokaz.

Nie jestem ekspertem od serwerów, ale widziałem, że Zuckerberg ma otwarty terminal z uruchomioną komendą ping i nie mogę wymyślić żadnego powodu, dla którego mógłby to robić losowo. (Było to po czasie, gdy serwer był już uruchomiony).

Uważam jednak, że scena hakowania serwera Python jest bardzo zabawna.


źródło
0

Możesz także użyć przeglądarki dziennika w czasie rzeczywistym w czymś takim jak LogLogic i filtrować nasze to, czego nie chciałeś widzieć. W ten sposób możesz zebrać więcej niż dzienniki Apache, możesz uzyskać dzienniki routera, dzienniki ftp itp.

BillRoth
źródło
0

możesz dość łatwo napisać skrypt odpytywania, po prostu porównaj znacznik czasu lub rozmiar pliku, a jeśli zostanie zmieniony, zrób tail -n1

jambox
źródło
0

Apachetail zapewnia także podgląd / analizę dzienników Apache w czasie rzeczywistym, łącząc się bezpośrednio z serwerem Apache z aplikacji komputerowej Windows. Żadne oprogramowanie nie musi być instalowane na serwerze Apache.

Peter Jamsmenson
źródło