Bir sunucuda bir şeyler ters gittiğinde, cevap neredeyse her zaman loglardadır. Loglar; sistemin, servislerin ve uygulamaların ne yaptığını anlatan kayıtlardır. Logları okumayı bilmek, bir sorunu tahmin etmekle teşhis etmek arasındaki farktır. Bu rehberde Linux loglarının nerede tutulduğunu ve nasıl okunacağını açıklıyoruz.

İlgili içerikler: Linux sunucu komutları · systemd servis yönetimi · Sunucu izlemenin temelleri

Linux'ta Loglar Nerede Tutulur?

Geleneksel olarak loglar /var/log/ dizininde düz metin dosyaları halinde tutulur. Modern systemd tabanlı sistemlerde ise loglar ayrıca journal adı verilen yapılandırılmış bir kayıt sisteminde toplanır ve journalctl ile okunur.

Konumİçeriği
/var/log/syslogGenel sistem olayları (Debian/Ubuntu)
/var/log/auth.logKimlik doğrulama, SSH girişleri, sudo
/var/log/nginx/Nginx erişim ve hata logları
/var/log/apache2/Apache erişim ve hata logları
journalctlsystemd servislerinin merkezi logları

journalctl ile Log Okuma

systemd'nin journalctl komutu, log okumanın en güçlü aracıdır. Belirli bir servisi, zaman aralığını veya öncelik düzeyini filtreleyebilirsiniz:

# Belirli bir servisin loglarını gör
journalctl -u nginx

# Logları canlı izle
journalctl -u nginx -f

# Yalnızca son 1 saat
journalctl --since "1 hour ago"

# Yalnızca hata ve üzeri öncelik
journalctl -p err

Düz Metin Loglarını Okuma

/var/log/ altındaki metin dosyalarını okumak için temel komutlar yeterlidir: tail -f dosyayı canlı izler, less sayfa sayfa gösterir, grep ise belirli bir metni veya hatayı arar.

# Nginx hata logunu canlı izle
tail -f /var/log/nginx/error.log

# Erişim logunda 404 hatalarını ara
grep " 404 " /var/log/nginx/access.log

# auth.log'da başarısız SSH girişlerini bul
grep "Failed password" /var/log/auth.log

Loglarla Sorun Tespiti

Bir sorunu loglardan teşhis ederken yöntemli olun: önce ne zaman başladığını belirleyin, sonra o zaman aralığındaki logları inceleyin. Bir servis çöktüyse, çökmeden hemen önceki satırlar genelde nedeni gösterir. Hata mesajını bilmiyorsanız, mesajı olduğu gibi aratmak çoğu zaman doğru yöne götürür.

İpucu
Web sunucusunun erişim logu (access log) ve hata logu (error log) farklı şeyler söyler: erişim logu kimin ne istediğini, hata logu ise neyin yanlış gittiğini gösterir. Sorun teşhisinde önce hata loguna bakın.

Log Rotasyonu (logrotate)

Loglar sürekli büyür ve denetlenmezse diski doldurur. logrotate aracı bu yüzden vardır: log dosyalarını düzenli aralıklarla arşivler, sıkıştırır ve eskileri siler. Çoğu dağıtımda logrotate hazır yapılandırılmış gelir; kendi uygulama loglarınız için de bir kural ekleyebilirsiniz.

Sıkça Sorulan Sorular

journalctl logları diski doldurur mu?

journal'ın bir boyut sınırı vardır ve eski kayıtları otomatik temizler. Sınırı /etc/systemd/journald.conf dosyasındaki SystemMaxUse ile ayarlayabilirsiniz.

Log dosyası çok büyük, nasıl açarım?

Büyük dosyaları cat ile açmayın — sistemi yorar. less dosyayı parça parça yükler; tail sonunu, grep ise yalnızca aradığınız satırları getirir.

Uygulama logum nerede?

Uygulamanız systemd servisi olarak çalışıyorsa logları journalctl -u servis-adı ile görünür. Uygulama kendi dosyasına yazıyorsa, bu yol genelde uygulamanın yapılandırmasında tanımlıdır.

Şeffaf ve İzlenebilir Sunucu

KEYDAL hosting çözümleriyle log erişimi ve izleme araçlarıyla sunucunuzda olan biteni her an görün. KEYDAL hosting çözümleri

WhatsApp