Bagaimana cara menonton log secara real time melalui Terminal?

16

Ini adalah pertanyaan mendasar - dalam film "Jejaring Sosial" ada beberapa adegan ketika staf muda Facebook menonton server PHP / Apache masuk dalam TERMINAL mereka secara real time.

Saya akrab dengan cara melakukan ini di lingkungan RUBY / RoR - tetapi dengan lingkungan LAMP Apache / PHP standar, bagaimana cara memantau secara aktif tindakan server Anda secara real time? Saya kira ada cara mudah untuk melakukan ini di Terminal.

Jamison
sumber
Saya belum melihat film ini. Adakah yang memiliki tangkapan layar atau klip yang menunjukkan rincian apa yang dilakukan staf Facebook di film?
Stefan Lasiewski
tail -f pada file log biasanya melakukannya.
Fiasco Labs

Jawaban:

47

mungkin mereka gunakan tail -fpada log akses?

Dror
sumber
2
Bukankah ini bisa dikelola dengan sangat cepat untuk situs besar seperti Facebook di mana ada ribuan permintaan setiap detik?
Vilx-
3
tail -f selalu dapat difilter melalui grep jika Anda mencari permintaan spesifik ... yang dapat mengurangi volume
Mark Baker
3
tail -fadalah no. 1 alasan untuk menempatkan Cygwin minimal di kotak windows!
Daniel Earwicker
1
@Daniel Saya pikir GnuWin32 juga memiliki perintah ekor
Jader Dias
1
untuk masalah kecepatan itu ... tail -f /log/any.log | while read line; do echo $line; sleep 3; donetapi ini tidak akan menjadi "realtime" lagi
theist
16

Atau bahkan sesuatu seperti logstalgia ;-)

berat
sumber
3
Wow, itu luar biasa. Dan mungkin lebih dari sekadar permen mata.
Stefan Lasiewski
8

atau instal dan gunakan multitail untuk menentukan filter dan pewarnaan :)

onik
sumber
6

Jika Anda mencari peninjau dan penganalisa log Apache waktu-nyata, saya pasti akan merekomendasikan GoAccess.

http://goaccess.prosoftcorp.com/

Anda cukup menjalankannya sebagai (tidak perlu conf):

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

sumber
3

Hal lain yang dapat Anda coba adalah perintah "watch" yang dapat menjalankan perintah grep secara berulang pada setiap file log yang Anda inginkan. Menggunakan switch perintah arloji yang tepat Anda bahkan dapat menyoroti perubahan pada file log secara real time.

Sebagai contoh:

lihat -d -n5 uptime

mk_gocs
sumber
2

GoAccess 0.6.1 harus menjadi setidaknya salah satu alat di tas Anda. Sumber Terbuka. Cepat dan stabil.

Untuk 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
sumber
geoip melakukan kesalahan pada CENTOS 6
Mike
1

Ini adalah pertanyaan mendasar - dalam film "Jejaring Sosial" ada beberapa adegan ketika staf muda Facebook menonton server PHP / Apache masuk dalam TERMINAL mereka secara real time.

Untuk sistem besar seperti Facebook, Anda harus bertanya-tanya berapa banyak lisensi artistik (alias omong kosong * t) yang diberikan dalam pembuatan film. Dalam lingkungan dengan ribuan sistem dan ribuan cluster, menonton log server yang bergulir di terminal belum tentu merupakan aktivitas pemantauan # 1.

Dalam lingkungan seperti itu (atau lingkungan produksi apa pun dengan beberapa lusin node), Anda akan memiliki NOSC yang menyortir dengan indikator, dan hanya ketika sesuatu ditandai sebagai keadaan crapping outdimana seseorang akan pergi dan secara aktif melihat log ( mungkin difilter untuk acara dan pesan penting.)

luis.espinal
sumber
Untuk situs yang cukup kecil, menonton log agak menyenangkan, dan dapat memberi Anda perasaan umum tentang seberapa baik harapan Anda terpenuhi. Bagaimanapun, pertanyaan itu hanya menggunakan film sebagai inspirasi, bertanya "Bagaimana saya bisa melakukan sesuatu seperti itu?" bukannya "Bagaimana mereka melakukan itu?"
eswald
Nah, satu hal adalah untuk menjaga terminal tetap terbuka dengan tail-f bergulir ke bawah. Itu bisa menjadi bandwidth yang sangat mahal sekalipun. Itu bisa menjadi sangat mahal CPU-bijaksana di klien jika Anda, katakanlah, menggulir log pada terminal jarak jauh yang ditampilkan melalui VNC atau Remote Desktop. Solusi lain melibatkan pengiriman log output ke syslog (dan yang mengirimkannya dari jarak jauh ke server syslog), atau bahkan mengirim batch jalur log (dikompresi dan melalui UDP) ke klien pemantauan. Kemudian mungkin melibatkan hilangnya beberapa baris karena itu UDP. Mungkin bisa diterima dalam beberapa kondisi.
luis.espinal
0

Sementara saya senang bahwa Jejaring Sosial sebagian besar menggunakan jargon dan terminologi yang akurat, beberapa hal yang mereka lakukan hanya untuk pertunjukan.

Saya bukan ahli server tetapi saya melihat Zuckerberg memiliki terminal terbuka dengan perintah ping berjalan dan saya tidak bisa memikirkan alasan apa pun ia akan melakukan itu secara acak. (Ini setelah waktu ketika mereka sudah memiliki server dan berjalan).

Saya menemukan adegan peretasan server Python sangat lucu.


sumber
0

Anda juga dapat menggunakan penampil log waktu-nyata dalam sesuatu seperti LogLogic dan memfilter apa yang tidak ingin Anda lihat. Dengan cara ini Anda bisa mengumpulkan lebih dari apache log, Anda bisa mendapatkan log router, ftp log, dll.

BillRoth
sumber
0

Anda bisa menulis skrip polling dengan mudah, hanya membandingkan timestamp atau filesize dan jika diubah, lakukan a tail -n1

jambox
sumber
0

Apachetail juga menyediakan tampilan / analisis log Apache secara real-time dengan menghubungkan langsung ke server Apache Anda dari aplikasi desktop windows. Tidak ada perangkat lunak yang perlu diinstal di server Apache.

Peter Jamsmenson
sumber