Bir Linux sunucuda sorun çıktığında çoğu zaman cevap terminalde değil, log dosyalarının içindedir. Linux Log Dosyaları, sistemin ne yaptığını, hangi servisin hata verdiğini, kimlerin oturum açtığını ve güvenlik tarafında nelerin yaşandığını anlamak için en güvenilir izlerden biridir.
Firewall, bulut altyapısı ve yazılım geliştirme ile uğraşırken log okuma alışkanlığı ciddi zaman kazandırır. Çünkü doğru log dosyasına doğru komutla bakmak, saatler sürecek tahmin sürecini birkaç dakikaya indirebilir.
Linux Log Dosyaları Nedir?
Linux Log Dosyaları, işletim sistemi, servisler, kullanıcı oturumları, güvenlik olayları ve uygulamalar tarafından üretilen kayıt dosyalarıdır. Bu dosyalar sayesinde sistemde ne zaman, neyin, hangi kullanıcı veya servis tarafından yapıldığı geriye dönük olarak incelenebilir.
Linux’ta log mantığı sadece “hata kaydı” tutmak değildir. Başarılı işlemler, uyarılar, servis başlangıçları, erişim denemeleri ve kernel seviyesindeki olaylar da loglanabilir.
Pratikte loglar şu soruların cevabını verir:
- Sunucu neden yeniden başladı?
- SSH ile kimler giriş yaptı?
- Bir servis neden çalışmıyor?
- Disk, bellek veya ağ tarafında sorun var mı?
- Firewall bir bağlantıyı engelledi mi?
- Uygulama hangi hatayı üretti?
İpucu: Log okumaya başlarken önce zaman aralığını daraltmak gerekir. “Son 10 dakikada ne oldu?” sorusu, “Sunucuda ne var?” sorusundan çok daha verimlidir.
linux log dosyaları nerede
Linux sistemlerde log dosyalarının büyük bölümü /var/log/ dizini altında tutulur. Dağıtıma, kullanılan init sistemine, servis yapısına ve uygulama kurulum şekline göre bazı loglar farklı dizinlerde de bulunabilir.
En sık kullanılan log dizini şudur:
/var/log/
Bu dizinde sistem, güvenlik, servis, paket yöneticisi ve uygulama logları yer alabilir. Örneğin Debian/Ubuntu tabanlı sistemlerde auth.log önemliyken, RHEL/CentOS tabanlı sistemlerde benzer kayıtlar çoğunlukla secure dosyasında tutulur.
| Dizin / Dosya | Açıklama | Sık Kullanım Amacı |
|---|---|---|
/var/log/syslog |
Genel sistem olayları | Servis ve sistem hatalarını izleme |
/var/log/auth.log |
Kimlik doğrulama kayıtları | SSH, sudo, login denemeleri |
/var/log/secure |
Güvenlik kayıtları | RHEL/CentOS güvenlik takibi |
/var/log/kern.log |
Kernel mesajları | Donanım, sürücü, kernel hataları |
/var/log/nginx/ |
Nginx logları | Web erişim ve hata analizi |
/var/log/apache2/ |
Apache logları | Web sunucusu inceleme |
/var/log/mysql/ |
MySQL/MariaDB logları | Veritabanı hata takibi |
Dağıtıma göre log farkları
Her Linux dağıtımı aynı dosya adlarını kullanmayabilir. Ubuntu üzerinde gördüğünüz bir log dosyası, AlmaLinux veya Rocky Linux üzerinde farklı isimle karşınıza çıkabilir.
| İşletim Sistemi Ailesi | Güvenlik Logu | Genel Sistem Logu |
|---|---|---|
| Debian / Ubuntu | /var/log/auth.log |
/var/log/syslog |
| RHEL / CentOS / Rocky / AlmaLinux | /var/log/secure |
/var/log/messages |
| systemd tabanlı sistemler | journalctl |
journalctl |
Uyarı: Log dosyası yoksa bu her zaman sorun olduğu anlamına gelmez. Bazı modern sistemlerde kayıtlar düz dosya yerine
systemd-journaldüzerinden tutulur.
linux log dosyası açma
Linux log dosyası açmak için cat, less, tail, head, grep ve journalctl gibi komutlar kullanılır. Küçük dosyalarda cat yeterli olabilir; büyük loglarda ise less veya tail -f daha sağlıklı çalışır.
En basit kullanım:
cat /var/log/syslog
Ancak büyük loglarda bu yöntem terminali gereksiz yere doldurabilir. Daha kontrollü görüntüleme için:
less /var/log/syslog
Canlı log takibi yapmak için:
tail -f /var/log/syslog
Son 100 satırı görmek için:
tail -n 100 /var/log/syslog
| Komut | Ne İşe Yarar? | Ne Zaman Kullanılır? |
|---|---|---|
cat |
Dosyanın tamamını gösterir | Küçük log dosyalarında |
less |
Sayfa sayfa inceleme sağlar | Büyük loglarda |
tail |
Son satırları gösterir | Yeni olayları görmek için |
tail -f |
Logu canlı takip eder | Servis testi sırasında |
grep |
Belirli kelimeyi arar | Hata veya IP ararken |
journalctl |
systemd loglarını gösterir | Servis ve boot analizi için |
Yetki sorunu yaşarsanız
Bazı log dosyaları normal kullanıcıyla açılamaz. Bu durumda sudo kullanmanız gerekir:
sudo less /var/log/auth.log
Eğer “Permission denied” hatası alıyorsanız, dosya okuma izniniz yoktur. Sunucu yönetiminde güvenlik loglarının herkese açık olmaması normaldir.
Loglar Nasıl İncelenir?
Log incelemede amaç tüm dosyayı okumak değil, doğru zaman aralığını, doğru servis adını ve doğru hata ifadesini yakalamaktır. Bu yüzden filtreleme, canlı takip ve tarih bazlı analiz log okumanın temelidir.
Örneğin SSH giriş denemelerini görmek için:
sudo grep "sshd" /var/log/auth.log
Hata içeren satırları yakalamak için:
grep -i "error" /var/log/syslog
Belirli bir IP adresini aramak için:
grep "192.168.1.10" /var/log/auth.log
journalctl ile servis logu inceleme
Systemd kullanan sistemlerde servis loglarını incelemek için journalctl oldukça güçlüdür.
sudo journalctl -u nginx
Son 50 satır:
sudo journalctl -u nginx -n 50
Canlı takip:
sudo journalctl -u nginx -f
Bugüne ait kayıtlar:
sudo journalctl --since today
Belirli tarih aralığı:
sudo journalctl --since "2026-08-09 10:00" --until "2026-08-09 11:00"
| Senaryo | Kullanılacak Komut | Beklenen Sonuç |
|---|---|---|
| Servis neden başlamıyor? | journalctl -u servis-adı |
Servis hata detayları |
| Son olayları görmek | tail -n 100 dosya |
En yeni kayıtlar |
| Canlı takip | tail -f dosya |
Anlık log akışı |
| IP aramak | grep "IP" dosya |
İlgili erişim kayıtları |
| Hata ayıklama | grep -i "error" dosya |
Hata satırları |
İpucu: Log incelerken önce olay zamanını belirleyin. Ardından aynı dakikalarda sistem, uygulama ve güvenlik loglarını çapraz kontrol edin.
Önemli Log Dosyaları
Linux sistemlerde bazı log dosyaları günlük operasyon için diğerlerinden daha kritiktir. Sistem yönetimi, güvenlik analizi, web servis takibi ve performans sorunlarında bu dosyalar ilk bakılması gereken kaynaklardır.
En sık kullanılan log dosyaları şunlardır:
| Log Dosyası | İçerik | Pratik Kullanım |
|---|---|---|
/var/log/syslog |
Genel sistem olayları | Servis ve sistem hata takibi |
/var/log/messages |
Genel sistem mesajları | RHEL tabanlı sistemlerde analiz |
/var/log/auth.log |
Kimlik doğrulama | SSH ve sudo kayıtları |
/var/log/secure |
Güvenlik olayları | Login ve yetki denemeleri |
/var/log/dmesg |
Boot ve kernel mesajları | Donanım algılama sorunları |
/var/log/kern.log |
Kernel olayları | Kernel ve sürücü problemleri |
/var/log/boot.log |
Açılış süreci | Boot problemleri |
/var/log/apt/history.log |
Paket geçmişi | Ubuntu/Debian paket takibi |
/var/log/yum.log |
Paket işlemleri | CentOS/RHEL paket takibi |
Web sunucusu logları
Web projelerinde logların değeri daha da artar. Nginx veya Apache logları; hatalı istekleri, 404 sayfalarını, bot trafiğini, performans sorunlarını ve uygulama problemlerini tespit etmek için kullanılır.
Nginx için tipik dosyalar:
/var/log/nginx/access.log
/var/log/nginx/error.log
Apache için:
/var/log/apache2/access.log
/var/log/apache2/error.log
| Log Türü | Ne Gösterir? | Örnek Kullanım |
|---|---|---|
| Access log | Gelen HTTP istekleri | IP, URL, durum kodu analizi |
| Error log | Sunucu hataları | 500 hatası, PHP-FPM sorunu |
| Firewall log | Engellenen/geçen trafik | Güvenlik olayı inceleme |
| Uygulama logu | Yazılım içi olaylar | Exception, API hatası |
Firewall tarafında çalışırken özellikle kaynak IP, hedef port, protokol ve aksiyon alanlarına dikkat etmek gerekir. Bir paketin düşmesi her zaman saldırı anlamına gelmez; bazen yanlış route, eksik security group veya hatalı NAT kuralı da aynı sonucu üretir.
Log dosyaları ne işe yarar
Log dosyaları sistem davranışını görünür hâle getirir. Sunucunun, servisin veya uygulamanın ne yaptığını kayıt altına aldığı için hata çözme, güvenlik inceleme, performans analizi ve denetim süreçlerinde kullanılır.
Logların temel kullanım alanları:
- Hata ayıklama
- Güvenlik denetimi
- Kullanıcı hareketlerini izleme
- Servis çalışma durumunu kontrol etme
- Performans darboğazlarını bulma
- Sistem değişikliklerini geriye dönük takip etme
- Saldırı veya yetkisiz erişim girişimlerini inceleme
Operasyonel fayda tablosu
| Kullanım Alanı | Logun Sağladığı Fayda | Örnek |
|---|---|---|
| Güvenlik | Yetkisiz giriş denemelerini gösterir | SSH brute-force tespiti |
| Yazılım geliştirme | Hataların kaynağını gösterir | API 500 hatası |
| Bulut altyapısı | Servis davranışını takip eder | Instance restart analizi |
| Firewall yönetimi | Trafik kararlarını gösterir | Drop edilen paket kontrolü |
| Denetim | Geçmiş olayları belgeleyebilir | Kullanıcı login kayıtları |
Bilgi kutusu: İyi log, sadece “hata oluştu” demez. Zaman, işlem, kullanıcı, servis, kaynak IP ve hata kodu gibi bağlam bilgileri de içerir.
linux log ayarları
Linux log ayarları genellikle rsyslog, systemd-journald, uygulama konfigürasyonları ve logrotate üzerinden yönetilir. Hangi olayın nereye yazılacağı, logların ne kadar saklanacağı ve ne zaman döndürüleceği bu yapılandırmalarla belirlenir.
Rsyslog yapılandırma dosyaları genellikle şuralardadır:
/etc/rsyslog.conf
/etc/rsyslog.d/
Systemd journal ayarları:
/etc/systemd/journald.conf
Logrotate ayarları:
/etc/logrotate.conf
/etc/logrotate.d/
logrotate neden önemlidir?
Log dosyaları kontrolsüz büyürse disk alanını tüketebilir. logrotate, logları belirli aralıklarla döndürür, sıkıştırır, eski kayıtları siler ve yeni dosya oluşturur.
Basit bir logrotate örneği:
/var/log/myapp/*.log {
daily
rotate 14
compress
missingok
notifempty
}
Bu yapılandırma, ilgili logları günlük döndürür, 14 kopya saklar ve eski dosyaları sıkıştırır.
| Ayar | Anlamı | Kullanım Notu |
|---|---|---|
daily |
Günlük döndürme | Yoğun log üreten servislerde |
weekly |
Haftalık döndürme | Orta yoğunlukta sistemlerde |
rotate 14 |
14 eski kopya saklar | Saklama politikası için |
compress |
Eski logları sıkıştırır | Disk tasarrufu sağlar |
notifempty |
Boş logu döndürmez | Gereksiz dosya oluşmaz |
missingok |
Dosya yoksa hata vermez | Esnek yapılandırma sağlar |
Uyarı: Log seviyesini gereksiz yere
debugseviyesinde bırakmak disk kullanımını artırabilir ve hassas verilerin kayda girmesine neden olabilir.
linux log silme
Linux log silme işlemi dikkatli yapılmalıdır. Log dosyasını doğrudan silmek yerine çoğu durumda içeriği boşaltmak, logrotate kullanmak veya saklama politikasını düzenlemek daha güvenli bir yaklaşımdır.
Bir log dosyasını boşaltmak için:
sudo truncate -s 0 /var/log/syslog
Alternatif yöntem:
sudo sh -c '> /var/log/syslog'
Ancak çalışan servis hâlâ dosyayı açık tutuyorsa, dosyayı silmek disk alanını hemen boşaltmayabilir. Bu yüzden silme yerine truncate daha kontrollüdür.
Güvenli log temizleme yaklaşımı
- Hangi logun büyüdüğünü bulun:
sudo du -sh /var/log/*
- En büyük dosyaları listeleyin:
sudo find /var/log -type f -size +100M -exec ls -lh {} \;
- Gerekirse dosyayı boşaltın:
sudo truncate -s 0 /var/log/dosya.log
- Logrotate ayarlarını kontrol edin:
sudo logrotate -d /etc/logrotate.conf
| Yöntem | Avantaj | Risk |
|---|---|---|
truncate |
Dosya kalır, içerik boşalır | Geçmiş kayıt kaybolur |
rm ile silme |
Hızlıdır | Servis dosyayı açık tutabilir |
| logrotate | Düzenli ve güvenlidir | Doğru yapılandırma gerekir |
| Arşivleme | Kayıtlar korunur | Ek disk alanı ister |
İpucu: Güvenlik veya denetim ihtimali olan sistemlerde logları silmeden önce sıkıştırıp ayrı bir alana almak daha sağlıklıdır.
Sıkça Sorulan Sorular
Linux log dosyaları hangi klasörde bulunur?
Linux log dosyalarının büyük bölümü /var/log/ klasöründe bulunur. Sistem logları, güvenlik kayıtları, web sunucusu logları, paket yöneticisi geçmişi ve uygulama logları genellikle bu dizin altında tutulur. Ancak modern systemd tabanlı sistemlerde bazı kayıtlar doğrudan dosya olarak değil, journalctl üzerinden görüntülenir. Bu yüzden log ararken hem /var/log/ dizinini hem de journalctl çıktısını kontrol etmek gerekir.
Linux’ta log dosyası nasıl açılır?
Linux’ta log dosyası açmak için cat, less, tail veya journalctl komutları kullanılabilir. Küçük dosyalarda cat yeterli olurken, büyük dosyalarda less daha kullanışlıdır. Canlı takip için tail -f tercih edilir. Örneğin sudo tail -f /var/log/auth.log komutu, kimlik doğrulama kayıtlarını anlık takip etmenizi sağlar. Yetki hatası alırsanız komutu sudo ile çalıştırmanız gerekir.
SSH giriş logları nerede tutulur?
Debian ve Ubuntu tabanlı sistemlerde SSH girişleri genellikle /var/log/auth.log dosyasında tutulur. RHEL, CentOS, Rocky Linux ve AlmaLinux gibi sistemlerde ise bu kayıtlar çoğunlukla /var/log/secure dosyasındadır. Ayrıca systemd kullanılan sistemlerde journalctl -u ssh veya journalctl -u sshd komutlarıyla SSH servis logları incelenebilir. Başarılı ve başarısız girişleri görmek için grep sshd filtresi oldukça işe yarar.
journalctl ile normal log dosyaları arasındaki fark nedir?
Normal log dosyaları genellikle /var/log/ altında düz metin olarak tutulur. journalctl ise systemd-journald tarafından yönetilen merkezi log kayıtlarını gösterir. Journal yapısı servis, boot zamanı, öncelik seviyesi ve tarih aralığına göre güçlü filtreleme sağlar. Düz dosyalar basit ve taşınabilirdir; journal ise servis bazlı analizde daha pratiktir. Birçok sistemde iki yapı birlikte kullanılabilir.
Linux log dosyaları silinir mi?
Linux log dosyaları teknik olarak silinebilir, ancak bu her zaman doğru yöntem değildir. Çalışan servisler silinen dosyayı açık tutabilir ve disk alanı hemen boşalmayabilir. Daha güvenli yöntem truncate ile dosya içeriğini boşaltmak veya logrotate ile düzenli temizlik yapmaktır. Özellikle güvenlik, denetim veya olay analizi gerektiren sistemlerde logları silmeden önce arşivlemek daha doğru olur.
Log dosyaları neden çok büyür?
Log dosyaları yoğun trafik, hata döngüsü, debug seviyesinde kayıt, saldırı denemeleri veya yanlış yapılandırılmış servisler nedeniyle hızla büyüyebilir. Örneğin hatalı çalışan bir uygulama aynı hatayı saniyede yüzlerce kez yazıyorsa disk kısa sürede dolabilir. Bu durumda sadece logu silmek yeterli değildir; hatanın kaynağı bulunmalı, log seviyesi kontrol edilmeli ve logrotate politikası düzenlenmelidir.
Linux’ta canlı log takibi nasıl yapılır?
Canlı log takibi için en sık kullanılan komut tail -f komutudur. Örneğin sudo tail -f /var/log/nginx/error.log komutu Nginx hata loglarını anlık gösterir. Systemd servisleri için journalctl -u servis-adı -f komutu kullanılabilir. Canlı takip özellikle servis restart, deploy, firewall kural testi ve hata ayıklama sırasında oldukça faydalıdır.
Hangi log dosyası güvenlik için önemlidir?
Güvenlik açısından en önemli loglar kimlik doğrulama ve erişim kayıtlarıdır. Ubuntu/Debian sistemlerde /var/log/auth.log, RHEL tabanlı sistemlerde /var/log/secure öncelikli incelenir. Web sunucularında access ve error logları da önemlidir. Firewall kullanılan yapılarda paket izin/engelleme logları ayrıca takip edilmelidir. Güvenlik analizi yaparken tek dosyaya bakmak yerine zaman bazlı çapraz kontrol yapmak daha sağlıklıdır.
Logrotate ne işe yarar?
Logrotate, Linux sistemlerde log dosyalarının kontrolsüz büyümesini önleyen araçtır. Belirlenen kurallara göre logları günlük, haftalık veya aylık döndürebilir; eski kayıtları sıkıştırabilir ve belirli sayıda arşiv saklayabilir. Bu yapı disk doluluğunu önler ve log yönetimini düzenli hâle getirir. Özellikle web sunucuları, veritabanları ve yoğun uygulama logları için logrotate yapılandırması mutlaka kontrol edilmelidir.
Loglarda hata aramak için hangi komut kullanılır?
Loglarda hata aramak için en pratik komut grep komutudur. Büyük/küçük harf duyarsız arama yapmak için grep -i "error" dosya.log kullanılabilir. Belirli bir servis, IP adresi, kullanıcı adı veya hata kodu da aynı şekilde aranabilir. Daha karmaşık analizlerde awk, sed, journalctl filtreleri ve merkezi log yönetim sistemleri tercih edilebilir.
İlgili içerikler
- Linux’ta SSH Güvenliği Nasıl Sağlanır?
- Nginx Log Analizi ve 404 Hatalarını İnceleme
- Linux Sunucularda Disk Doluluğu Nasıl Temizlenir?
- Firewall Logları Nasıl Okunur?
- systemd ve journalctl Kullanım Rehberi
Log okumayı düzenli bir alışkanlık hâline getirmek, Linux sistem yönetiminde ciddi fark yaratır. Ben de dogus.net.tr üzerinde firewall, bulut altyapısı ve yazılım geliştirme deneyimlerimden çıkan pratik notları paylaşmaya devam edeceğim; benzer teknik içerikler için siteyi takip edebilirsiniz.
Yorumlar (0)