Uygulama

Linux’ta Günlükleri Gerçek Zamanlı İzlemenin 3 Yolu

Linux’ta dosyaları nasıl görüntüleyeceğinizi biliyorsunuz. Bu amaç için cat komutunu veya muhtemelen less komutu kullanırsınız.

Bu, statik içeriğe sahip dosyalar için iyidir. Ancak günlük dosyaları dinamiktir ve içerikleri zamanla değişir. Günlükleri izlemek için, içeriği değiştikçe günlük dosyasını izlemeniz gerekir.

Tail bu amaç için kullanılan en popüler komuttur ancak başka araçlar da vardır. Onları bu yazıda okuyacaksınız.

Yöntem 1: tail komutuyla günlük dosyalarını izleyin

tail komutu , günlük dosyalarını gerçek zamanlı görüntülemek için o kadar popülerdir ki, sistem yöneticileri ‘tail the log file’ terimini kullanır.

tail komutu esas olarak bir dosyanın satırlarını sondan göstermek için kullanılır.

Bir dosyanın kuyruğunu takip etmek için -f seçeneğini kullanabilirsiniz, bu da dosyaya eklenen yeni satırları sürekli olarak göstermeye devam edeceği anlamına gelir.

tail -f location_of_log_file

Tail ve grep

Tail komutu, dosya değişikliklerini gerçek hayatta göstererek bir sorunu çözer. Ancak gerçek zamanlı olarak bu kadar çok hızlı değişiklik olduğunda günlük dosyasını sürekli olarak izlemek çok yardımcı olmuyor.

Günlük dosyasını izlerken genellikle belirli bir terim arıyor olacaksınız. Gelen yeni satırların akışında bunu bulmak imkansıza yakın olabilir.

İşleri kolaylaştırmak için tail ve grep komutunu şu şekilde birleştirin:

tail -f log_file | grep search_term

Bu komut yardımı ile yalnızca aranan terimleri içeren satırların gerekli ayrıntıları göstermediğini fark edeceksiniz. Bu yüzden -C seçeneği ile aranan terimden önce ve sonra birkaç satır göstermek için grep komutunu kullanabilirsiniz.

tail -f log_file | grep -C 3 search_term

Şimdi, arama terimiyle eşleşen satırları ve ondan önce ve sonra 3 satır göreceksiniz. Bu, neler olduğuna dair daha iyi bir bakış açısı sağlayacaktır.

Daha da iyi hale getirmek ister misiniz? Birden çok arama terimini grep yapabilir ve hatta bunu büyük/küçük harfe duyarlı olmayan bir arama yapabilirsiniz:

tail -f log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

Rotasyonlu günlüklerde kayıt arama

Kurumsal sunucuda çalışıyorsanız, günlüklerin rotasyona girmesi ihtimali vardır. Bu durum, mevcut günlük dosyası belirli bir boyuta ulaştıktan sonra yeniden adlandırılıp sıkıştırılacağı anlamına gelir.

Bir günlük dosyasını gerçek zamanlı olarak takip ediyorsanız bu konu bir sorun yaratır. Çünkü günlük dosyasını takip edemeyecektir.

Çözüm ise günlük takibini dosya adına göre yapmak olacaktır. Bu şekilde, günlük rotasyonu gerçekleştiğinde bile, kuyruk mevcut günlük dosyasını işaret eder (çünkü adı asla değişmez). Bunun için aşağıdaki komutu kullanabilirsiniz.

tail --follow=name log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

Tail ile birden fazla günlük dosyasını izleme

Tail komutu ile aynı anda birden fazla log dosyasını izleyebilirsiniz. Sadece dosyanın yolunu şu şekilde sağlayın:

tail -f log_file_1 -f log_file_2

Farklı günlük kaynakları arasında ayrım yapabilmeniz için önündeki dosya adıyla birlikte gerçek zamanlı değişiklikleri göstermeye başladığını göreceksiniz.

Yöntem 2: multitail ile aynı anda birden çok günlük dosyasını izleyin

Multitail , adından da anlaşılacağı gibi, aynı anda birden fazla dosyayı görüntülemek için kullanılır.

Ancak Multitail’in geleneksel tail komutuna göre bazı avantajları vardır. Dosyaları bölünmüş görünümlerde gösterir ve hatta farklı dosyaları farklı satır ve sütunlarda gösterebilirsiniz.

Unutmayın, tail her şeyi aynı görünümde gösterir ve bunu takip etmek zorlaşır. Multitail, screen komutu gibi bölünmüş görünüm sağlayarak bu zorluğun üstesinden gelir .

Multitail, tail gibi önemli bir komut değildir ve kullanmadan önce yüklemeniz gerekebilir.

Buna birkaç dosya sağlayabilirsiniz, ancak bir seferde 3’ten fazla dosyanın takip edilmesinin zor olacağını düşünüyorum.

multitail log_file_1 log_file_2

Varsayılan olarak multitail, tail -f ile aynı şekilde çalışır. Son 100 satırı gösterir ve ardından gerçek zamanlı görünüme geçer. Varsayılan olarak, görünümü satırlara böler.

Bir seçici pencere açmak için b tuşuna basabilir ve görüntülemek için istediğiniz günlük dosyasını seçebilir ve daha fazla ve daha derin analiz için arasında gezinebilirsiniz.

Çoklu kuyrukta her türlü görünümden çıkmak için q tuşuna basın.

Görünümleri aşağıdaki gibi sütunlara bölebilirsiniz:

multitail -s 2 log_file_1 log_file_2

-s ile sütun sayısı arasında zorunlu bir boşluk vardır.

Multitail başka şeyler de yapabilir, ancak bu eğitimde bu ayrıntılara girmeyeceğim.

Şimdiye kadar günlük dosyalarını izlemenin iki yolunu gördünüz. Dosya değişikliklerini gerçek hayatta görmenin başka ancak daha az geleneksel bir yolu daha vardır ve bu daha az komutu kullanmaktır.

Yöntem 3: Günlük dosyası değişikliklerini daha az komutla gerçek zamanlı olarak görüntüleyin

Less komutu, ekranı karıştırmadan metin dosyalarını okumak için kullanılabilir. Ayrıca gerçek zamanlı değişiklikleri takip etmek için de kullanabilirsiniz.

+F seçeneği, less komutunun bir metin dosyasında yapılan değişiklikleri takip etmesine izin verir.

less +F log_file

Gerçek zamanlı olarak görüntülenen, üzerine yazılan değişikliklerle birlikte günlük dosyalarını açar.

Araya girmek için Ctrl+c ve görünümden çıkmak için q tuşlarına basın.

Bu yöntem, tail komutunun aksine, ekranı karıştırmadan günlük değişikliklerini hızlı bir şekilde görmenizi sağlar.

Yazının orijinalini buradan okuyabilirsiniz.