18 Eylül 2014 Perşembe

Linux Sistemlerde Log Analizi için Pratik Bilgiler

Bu makalede linux işletim sistemlerinde sistem log dosyalarını ve log dosyalarını okumak için pratik linux komutlarını anlatmaya çalışacağım.

Linux sistemlerde varsayılan olarak log dosyaları /var/log/ dizini altında tutulur. Bazı uygulama geliştiriciler, keyfi olarak farklı dizinlerde kayıt tutabilir (combat, apache, clamav vb.) aşağıdaki komutu kullanarak log dosyalarının bulunduğu dizine girebilirsiniz.
 # cd /var/log  













Linux sistem log dosyası /var/log/syslog dosyasında tutulur. Aşağıdaki komutu kullanarak sisteminizin log dosyasını görebilirsiniz, enter tuşuna basarak log dosyasında ilerleyebilirsiniz.
 # cat /var/log/syslog | less 












Sistem syslog dosyası ile ilgili bir örnek yapalım, sistem günlüğüne bir mesaj yazalım ardından yazdığımız mesajı syslog dosyasından görelim. Bu işi yapan logger programı hızlı bir şekilde basit bir komutla sistem günlüğüne mesaj yazmanızı sağlar. Aşağıdaki komutu kullanarak sistem günlüğüne "Hello" yazalım, hemen ardından tail komutunu kullanarak yazdığımız mesajı görelim.
 # logger "Hello"   
 # tail -f /var/log/syslog 












Linux işletim sistemlerinde başarısız ssh girişleri ve sistem login 'lerini /var/log/auth.log dosyasının içerisinde bulabilirsiniz. Örnek olması amacıyla herhangi bir kullanıcı sizin sisteminize başarısız ssh girişimlerinde bulunsun daha sonra sizde aşağıdaki komutu kullanarak o kullanıcının yaptığı başarısız ssh denemelerini görebilirsiniz.
 # cat /var/log/auth.log | egrep sshd   











Linux işletim sistemi boot edilirken oluşan kayıtlar /var/log/dmesg dosyasında tutulur. Kayıtları iki farklı şekilde görüntüleyebilirsiniz birincisi dmesg komutunu kullanarak görebilirsiniz ikinci seçeneğiniz ise aşağıdaki komutu kullanarak görebilirsiniz.
 # cat /var/log/dmesg | less 












Sisteminizde kurduğunuz paket günlüklerini /var/log/apt/term.log dosyasının içerisinde bulabilirsiniz. Aşağıdaki komutu kullanarak log dosyasını görüntüleyebilirsiniz.
 # strings /var/log/apt/term.log | less    











Linux işletim sisteminizde kullandığınız geçmiş komutları /var/log/apt/history.log dosyasında bulabilirsiniz. Bir başka seçeneğiniz ise history komutunu kullanarak 'da geçmişte kullandığınız komutları görebilirsiniz.
 # cat /var/log/apt/history.log | less   












Sisteminize en son giriş ve çıkış yapmış olan kullanıcıların, terminal ismi, tarih, saat vb. bilgileri /var/log/wtmp dosyasının içerisinde bulabilirsiniz. Bir başka seçenek ise last ve lastlog bu iki komutu 'da kullanarak görebilirsiniz. Aşağıdaki komutu kullanarak wtmp dosyasını görüntüleyebilirsiniz.
 # last -f /var/log/wtmp | less   











Linux işletim sistemlerinde başarısız oturum açma girişimleri /var/log/btmp dosyasında tutulur. Bu günlükleri belirli bir eylem aldığınız zaman sadece ip adreslerini görebilirsiniz. Bir başka seçeneğiniz ise lastb komutu 'da aynı çıktıyı vermektedir. Dosyanın içerisindeki silmek isterseniz echo > /var/log/btmp komutunu kullanabilirsiniz.
 # last -f /var/log/btmp  








Linux işletim sistemlerinde log okumak için kullanılabilecek pratik linux komutları. Tail komutunun -f (follow) parametresi diye güzel bir komut satırı seçeneği vardır, herhangi bir log dosyasını eş zamanlı olarak takip etmenizi sağlar. Aşağıdaki komutu kullanarak bir log dosyasını eş zamanlı olarak izleyebilirsiniz.
 # tail -f dosya_ismi  











Cat komutu linux sistemlerde düz metin dosyalarını görüntülemek için kullanılan güzel bir komuttur. Aşağıdaki komutu pratik olarak kullanabilirsiniz, aşağıdaki komut herhangi bir dosyanın baştan sona kadar olan satır sayılarını gösterir.
 # cat -n dosya_ismi    












Bazı durumlarda büyük boyuttaki dosyaların ilk baştan 10-20 satırını yada sondan 10-20 satırını okumamız gerekebiliyor. Bu durumlarda head ve tail komutlarını kullanarak baştan veya sondan istediğiniz kadar satırın gözükmesini sağlayabilirsiniz. Tail komutu parametresiz kullanıldığı zaman bir dosyanın son satırlarını ekrana basar, ama siz son satırlarını değilde son 15 satırını ekrana basmak isterseniz aşağıdaki komutu kullanabilirsiniz.
 # tail -n 15 dosya_ismi  











Head komutu normalde parametresiz girildiği zaman bir dosyanın ilk satırlarını ekrana basar. Aşağıdaki komutu kullanarak bir dosyanın ilk 20 satırını ekrana basabilirsiniz.
 # head -20 dosya_ismi    










Herhangi bir dosyanın içindeki yazıları terminal ekranında sayfa sayfa görüntülemek isterseniz less komutunu kullanabilirsiniz. Dosyayı görüntülerken enter tuşuna basarak dosya içerisinde ilerleyebilirsiniz dosyadan çıkmak isterseniz q tuşuna basmanız yeterli olacaktır.
 # less dosya_ismi  












Bir dosyanın içerisinde belirli bir bir kelimeyi aramak isterseniz grep komutu pek çok parametresi olan güçlü bir komuttur. Örnek olarak aşağıdaki komutu kullanarak bir dosyanın içerisinde status kelimesini aratabilirsiniz.
 # grep status dosya_ismi  












Bir başka seçenek ise bir dosyanın içerisinde belirli bir kelime dışında kalanları listeleyebilirsiniz. Örnek olarak dosya.log dosyasının içerisinde status geçmeyen kelimeleri listelemesini istiyoruz.
 # grep -v status dosya_ismi    












Bir dosyanın içerisinde aradığınız kelimenin kaç kez kullanıldığını görmek isterseniz grep komutunun -c parametresini kullanabilirsiniz. Bir dosyanın içerisinde herhangi bir kelime aratırken küçük/büyük harf duyarsızlığını kullanmak isterseniz -i parametresini ek olarak kullanabilirsiniz.
 # grep -c status dosya_ismi  
 # grep -c -i STATUS dosya_ismi 











Not > Ek olarak log okumak için geliştirilmiş bir program olan " multitail " aracı pratik olarak kullanılabilir.

1 yorum:

Online pfSense Firewall & Router Eğitimi

Merhabalar Online pfSense Firewall & Router eğitimi hazırladım ve Udemy üzerinde yar aldı. Eğitim içeriği toplam 40 ders ve yaklaşık o...