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.


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?


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



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

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


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]

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).


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.



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.


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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.