Günlükleri Terminal üzerinden gerçek zamanlı olarak nasıl izleyebilirim?


17

Bu temel bir sorudur - "Sosyal Ağ" filminde, genç Facebook personeli TERMINAL'de gerçek zamanlı olarak PHP / Apache sunucusu oturumlarını izlerken çeşitli sahneler vardır.

Bunu bir RUBY / RoR ortamında nasıl yapacağımı biliyorum - ama standart bir LAMP Apache / PHP ortamında, sunucunuzun eylemlerini gerçek zamanlı olarak aktif olarak nasıl izleyebilirim? Sanırım bunu Terminal'de yapmanın kolay bir yolu var.


Bu filmi görmedim. Facebook çalışanlarının filmde neler yaptığını gösteren bir ekran görüntüsü veya klibi var mı?
Stefan Lasiewski

kuyruk günlük dosyasında -f genellikle yapar.
Fiasco Labs

Yanıtlar:


47

tail -ferişim günlüğünde kullanıyor olabilirler .


2
Bu, saniyede binlerce isteğin olduğu Facebook gibi büyük siteler için gerçekten hızlı bir şekilde yönetilemez mi?
Vilx-

3
kuyruk - f, hacimleri azaltabilecek özel talepler arıyorsanız her zaman grep ile filtrelenebilir
Mark Baker

3
tail -fhayır. Bir pencere kutusuna en az Cygwin koymak için 1 neden!
Daniel Earwicker

1
@Daniel Sanırım GnuWin32'nin de bir kuyruk emri var
Jader Dias

1
bu hız sorunu için ... tail -f /log/any.log | while read line; do echo $line; sleep 3; doneama bu artık "gerçek zamanlı" olmaz
theist


8

veya filtreleri ve renklendirmeyi belirtmek için multitail yükleyin ve kullanın :)


6

Gerçek zamanlı bir Apache günlük görüntüleyicisi ve analizörü arıyorsanız, GoAccess'i kesinlikle tavsiye ederim.

http://goaccess.prosoftcorp.com/

Sadece çalıştırın (conf gerekli değil):

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

3

Deneyebileceğiniz başka bir şey de, istediğiniz herhangi bir günlük dosyasında grep komutunu tekrar tekrar çalıştırabilen "watch" komutudur. Onaylı izleme komut anahtarlarını kullanarak günlük dosyalarındaki değişiklikleri gerçek zamanlı olarak vurgulayabilirsiniz.

Örneğin:

watch -d -n5 çalışma süresi


2

GoAccess 0.6.1 çantanızdaki araçlardan en az biri olmalıdır. Açık kaynak. Hızlı ve KARARLI.

Rhel / Centos 6.4 için

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 CENTOS 6'da hata yapıyor
Mike Castro Demaria

1

Bu temel bir sorudur - "Sosyal Ağ" filminde, genç Facebook personeli TERMINAL'de gerçek zamanlı olarak PHP / Apache sunucusu oturumlarını izlerken çeşitli sahneler vardır.

Facebook gibi büyük bir sistem için sanatsal lisansın ne kadar olduğunu merak etmelisiniz. , filmin yapımında (aka bullsh * t) verildiğini etmelisiniz. Binlerce sistem ve binlerce kümenin bulunduğu bir ortamda, sunucu günlüklerinin bir terminalde kaydırılmasını izlemek mutlaka # 1 izleme etkinliği değildir.

Böyle bir ortamda (veya birkaç düzine düğümü olan herhangi bir üretim ortamında), göstergeleri olan bir NOSC türüne sahip olursunuz ve yalnızca bir şeyin o durumda olduğu işaretlenirse crapping outve günlüklere aktif olarak bakarsanız ( büyük olasılıkla önemli etkinlikler ve iletiler için filtrelenmiştir.)


Yeterince küçük bir site için, günlükleri izlemek biraz eğlencelidir ve beklentilerinizin ne kadar iyi karşılandığına dair genel bir fikir verebilir. Her durumda, soru sadece filmi ilham olarak kullanıyor ve "Nasıl böyle bir şey yapabilirim?" "Bunu nasıl yaptılar?"
eswald

Şey, bir şey kuyruk -f aşağı kaydırma ile bir terminal açık tutmaktır. Ancak bant genişliği çok pahalı olabilir. Örneğin, VNC veya Uzak Masaüstü üzerinden görüntülenen uzak bir terminaldeki günlükleri kaydırırsanız, istemcide çok pahalı CPU açısından akıllıca olabilir . Diğer çözümler arasında syslog'a günlük çıktısı gönderilmesi (ve bir syslog sunucusuna uzaktan gönderilmesi) veya hatta bir izleme istemcisine günlük satırları (sıkıştırılmış ve UDP aracılığıyla) gönderilmesi yer alır. Sonrasında UDP olduğu için bazı hatların kaybı olabilir . Yine de bazı koşullarda kabul edilebilir.
luis.espinal

0

Sosyal Ağ'ın çoğunlukla doğru jargon ve terminoloji kullandığı için heyecanlı olmama rağmen, sadece gösteri için yaptıkları şeyler.

Ben sunucu uzmanı değilim ama Zuckerberg'in ping komutuyla çalışan bir terminali olduğunu gördüm ve bunu rastgele yapmasının herhangi bir nedeni olduğunu düşünemiyorum. (Bu, sunucuyu zaten çalıştırıp çalıştırdıktan sonraydı).

Python sunucusu kesmek sahne olsa da çok eğlenceli buldum.



0

Ayrıca, gerçek zamanlı günlük görüntüleyicisini LogLogic gibi bir şeyde kullanabilir ve görmek istemediklerimize filtre uygulayabilirsiniz. Bu şekilde apache günlüklerinden daha fazlasını toplayabilir, yönlendirici günlükleri, ftp günlükleri vb. Alabilirsiniz.


0

kolayca bir sorgulama komut dosyası yazabilirsiniz, jsut zaman damgası veya dosya boyutunu karşılaştırın ve değiştirilirse, tail -n1


0

Apachetail ayrıca bir Windows masaüstü uygulamasından doğrudan Apache sunucunuza bağlanarak Apache günlüklerinin gerçek zamanlı bir görünümünü / analizini sağlar. Apache sunucusuna herhangi bir yazılım kurulmasına gerek yoktur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.