Merhabalar,
Bu makalede, linux sunucularda log yönetimiyle ilgili bilgiler aktaracağım. Bildiğiniz gibi sistemlere ait log kayıtları, bugünün sistem yöneticileri ve uygulama geliştiricileri için olmazsa olmaz konulardan biridir. Ayrıca yasalar tarafından, toplanması-saklanması ve imha edilmesi gibi prosedürleri zorunlu kılınan konuların da başında gelmektedir.
Windows sunucularda, sistemlere ait logları grafik pencerelerden kolayca takip edebiliyoruz. Peki ya simsiyah linux ekranlarına geçtiğinizde nereye bakacağınızı, hangi durumlarda, sistem üzerinde nelerin olup bittiğini, başarılı veya başarısız olan tüm işlerin kayıtları için nereye bakmanız gerektiğini biliyor musunuz? İşte bu makalede, bu tip konulara yer vereceğiz.
Linux Logları Tanımı
Linux sistem logları, işletim sistemi, uygulamaları ve sistem için bir olay zaman çizelgesi sağlar ve sorunlarla karşılaştığınızda da en değerli sorun giderme aracımız olmaktadır. Esasen, bir sorun tespit edildiğinde, bir yöneticinin yapması gereken ilk şey, log dosyalarını analiz etmektir.
Log dosyaları, düz metin olarak depolanır ve /var/log dizini ve alt dizinlerinde bulunur. Sistem üzerindeki her aktivite için Linux logları tutulur: sistem, kernel, paket yöneticileri, önyükleme işlemleri, Xorg, Apache, MySQL. Bu makalede, özellikle Linux sistem loglarına odaklanacağız.
cd komutunu kullanarak /var/log dizinine geçebilirsiniz. Linux veya Unix benzeri işletim sistemlerinde günlük dosyalarını görüntülemek veya bunlara erişmek için root kullanıcı olmanız gerekir.
Linux Logları Nasıl Görüntülenir
Linux loglarını, /var/log dizinine geçiş yaparak inceleyebiliriz. Listeleme komutuyla bu dizin altındaki log dosyalarının neler olduğunu görebiliriz. Debian ve RHEL tabanlı sistemlerde, bazı loglar farklı isimlerde olabilir.
cd /var/log
ls -l
Görüntülenecek en önemli loglardan biri, kimlik doğrulamayla ilgili mesajlar dışında her şeyi günlüğe kaydeden syslog‘dur. Log dosyalarını görüntülemek için, genel olarak birkaç komut kullanılır: more, less, dmesg ve tail.
Log görüntüleme araçları tabi ki sadece bunlardan ibaret değildir. Başka araçlarla da görüntüleme yapmak mümkün, hepsini saymaya gerek olmadığını düşünüyorum.
Sistemdeki tüm aktivitelerin kayıtlarını, syslog altında görüntülemek için Debian-Ubuntu sistemler için /var/log/syslog, RHEL-CentOS-Oracle sistemler için ise /var/log/messages dosyasına bakıyoruz, ancak bu dosya uzun olma eğiliminde olduğu için belirli bir sorunu bulmak, bu uzun dosyada biraz zaman alacaktır. Dolayısıyla, filtreleme seçeneklerini de kullanabiliriz.
Logları, kernel ring buffer (çekirdek halka arabelleğini) yazdıran dmesg aracılığıyla da görüntüleyebilirsiniz. Her şeyi yazdırır ve sizi dosyanın sonuna gönderir. Oradan çıktıyı kaydırmak için dmesg | less komutunu kullanabilirsiniz.
dmesg
dmesg | less
ilk ekranı gösterir, sonrasında alt kısımda : işaretinden sonra hangi değeri girerseniz, o kadar satır alt alta olacak şekilde size gösterir. Örnek olarak, bir satırı komple işaretliyorum ve alt kısma da 10 değerini giriyorum. İşaretlediğim satırdan itibaren 10 satır alta log içeriğini basacaktır.
İsterseniz sayı belirtmeden enter tuşuyla da devam edebilirsiniz.
Son olarak, günlük dosyalarını görüntülemek için tail komutunu kullanabilirsiniz. Günlüklerin yalnızca sorunun genellikle yattığı son bölümünü gösterdiği için, kullanabileceğiniz en kullanışlı araçlardan biridir. tail, log dosyasını anlık olarak izlemeye devam edecek ve dosyaya yazılan sonraki satırı yazdırarak syslog’a yazılanları olduğu gibi izlemenize izin verecektir.
Debian-Ubuntu için
tail /var/log/syslog
tail -f /var/log/syslog
RHEL-CentOS-Oracle için
tail /var/log/messages
tail -f /var/log/messages
Belirli sayıda satır göstermek için (örneğin, son 5 satır) en son 5 satırı yazdıran aşağıdaki komutu kullanabilirsiniz. tail komutundan çıkmak için Ctrl+C tuşlarına basın.
tail -f -n 5 /var/log/messages
tail -f -n 5 /var/log/syslog
En Önemli Linux logları
Linux sistem logları, 4 kategoriden oluşur.
- Application Log
- Event Log
- Service Log
- System Log
İzlediğiniz loglar, hedeflerinize veya diğer değişkenlere bağlı olabilir. En kritik olan, izlenmesi gereken loglardan bazılarının örneklerini inceleyelim şimdi…
/var/log/syslog ya da /var/log/messages:
Sistemle ilgili bilgiler ve genel mesajlar barındırılır. Esasen bu loglar, sistem genelindeki tüm etkinlik verilerini depolar. CentOS veya Rhel gibi Redhat tabanlı sistemler için faaliyetlerin messages’da, Ubuntu ve diğer Debian tabanlı sistemlerin Syslog‘da depolandığını unutmayın.
/var/log/messages : CentOS-RHEL tabanlı sistemler
/var/log/syslog : Debian-Ubuntu tabanlı sistemler
/var/log/auth.log ya da /var/log/secure:
Hem succes hem de failed oturum açma ve kimlik doğrulama yöntemleri dahil olmak üzere, kimlik doğrulama logları depolanır. Yine, sistem türü kimlik doğrulama loglarınıın nerede saklanacağını belirler.
/var/log/secure : CentOS-RHEL tabanlı sistemler
/var/log/auth.log : Debian-Ubuntu tabanlı sistemler
/var/log/boot.log:
Önyükleme ile ilgili tüm bilgilerin ve başlatma sırasında kaydedilen tüm mesajların kaydedildiği log dosyasıdır. Cat ile görüntülerseniz, tüm tarihlerde olan etkinlikleri görürsünüz. Dosya sayfaları çok olacaktır. More ya da less komutlarını da kullanabilirsiniz.
/var/log/maillog ya da var/log/mail.log:
E-posta sunucularıyla ilgili tüm logları depolar. Postfix, smtpd veya sunucunuzda çalışan e-posta ile ilgili hizmetler hakkında bilgiye ihtiyaç duyduğunuzda oldukça kullanışlıdır.
/var/log/kern:
Kernel (çekirdek) günlüklerini ve uyarı verilerini depolar. Bu log dosyası, customize edilmiş kernel’larda sorun giderme için de önemlidir.
/var/log/dmesg:
Aygıt sürücüleriyle ilgili mesajlar bulunur. Dmesg, komutu bu dosyadaki mesajları görüntülemek için kullanılabilir.
/var/log/faillog:
Debian-Ubuntu linux sistemlerinde, tüm başarısız oturum açma girişimleri hakkında bilgiler içerir. Ayrıca, brute force saldırıları ile oturum açma kimlik bilgilerini ele geçirmeye çalışanlar gibi, teşebbüs edilen güvenlik ihlalleri hakkında veri elde etmek için yararlıdır.
/var/log/cron:
cron arka plan programının bir işi ne zaman başlattığı, ilgili hata mesajları vb. gibi Crond ile ilgili tüm mesajları (cron işleri) depolar.
/var/log/yum.log:
yum komutunu kullanarak paketleri kurarsanız, bu günlük ilgili tüm bilgileri depolar. Bir paketin ve tüm bileşenlerin doğru şekilde kurulup kurulmadığını belirlemede yararlı olabilir.
/var/log/httpd/:
Apache httpd arka plan programının, error_log ve access_log dosyalarını içeren bir dizin. Error_log, httpd tarafından karşılaşılan tüm hataları içerir. Bu hatalar, bellek sorunlarını ve sistemle ilgili diğer hataları içerir. access_log, HTTP üzerinden alınan tüm isteklerin kaydını içerir.
/var/log/mysqld.log ya da /var/log/mysql.log :
Eğer database uygulaması kuruluysa sisteminizde, tüm hata ayıklama (debug), failure ve success mesajlarını kaydeden MySQL log dosyası olacaktır. MySQL daemon mysqld’nin başlatılması, durdurulması ve yeniden başlatılması hakkında bilgi içerir.
/var/log/mysqld.log : CentOS-RHEL tabanlı sistemler
/var/log/mysql.log : Debian-Ubuntu tabanlı sistemler
Buraya kadar olan tüm bilgilendirmeleri, kısaca şöyle bir tablo halinde de gösterebiliriz.
Diğer önemli log dosyaları:
/var/log/daemon.log: Arka planda çalışan ve önemli görevleri gerçekleştiren hizmetleri izler, ancak grafik çıktıları yoktur.
/var/log/btmp: Başarısız oturum açma girişimlerinin kayıtları
/var/log/utmp: Mevcut giriş durumu (kullanıcıya göre)
/var/log/wtmp: login/logout geçmişi
/var/log/lastlog: Tüm kullanıcılar için, son girişler hakkında bilgiler. Bu binary dosya, lastlog komutu ile okunabilir.
/var/log/pureftp.log: FTP bağlantılarını dinleyen, pureftp işlemini çalıştırır. Tüm bağlantılar, FTP girişleri ve kimlik doğrulama hataları burada log olarak kaydedilir.
/var/log/spooler: Nadiren kullanılır ve genellikle boştur. Kullanıldığında, USENET’ten gelen mesajları içerir.
/var/log/xferlog: Dosya adı ve FTP aktarımlarını başlatan kullanıcı hakkındaki bilgiler dahil olmak üzere, tüm FTP dosya aktarım oturumlarını içerir.
Genel olarak, linux sistemlerde bakmanız gereken loglar bu şekildedir. Elbette ki uygulamalara özel farklı log dizinleri de olabilir. Bunu da göz önünde bulundurmakta fayda vardır.
Linux sistemlerinde çalışıyorsanız ya da yeni öğrenmeye başlamışsanız, bol bol log okumanız gerektiğini de özellikle belirtmek istiyorum 🙂
İlerleyen dönemde, daha detaylı log yönetim bilgilendirmelerini de paylaşacağım sizlerle.
Yararlı olması dileğiyle.
Yusuf İşleyen