İçeriğe geç
Yeni yazı çıkınca e-posta · 4.812 abone 242 rehber · 78 ipucu · 58 komut RSS GitHub LinkedIn İletişim
Ara Ctrl K Bültene katıl
Tüm arşiv · 242 rehber →
Tüm araçlar · 75 üreteç →
Web Sunucu

Erişim günlüğü okumak: hatanın kaynağını bulmak

Erişim ile hata günlüğü farkı, hangi alanların eklenmesi gerektiği, yanıt süresi alanının değeri, tarayıcı gürültüsünü ayıklamak ve ilişkilendirme kimliği.

Mustafa Çelik 27 Ağustos 2026 · 6 dk okuma

Web sunucusunun günlükleri, bir sorunun ne zaman başladığını ve kimi etkilediğini söyleyen en doğrudan kaynaktır. Çoğu ortamda toplanır ama okunmaz — genelde de öntanımlı biçimde bırakıldığı için okunacak bilgiyi içermezler.

İki ayrı günlük

Karıştırılmamaları gerekir.

Erişim günlüğü, gelen her isteği kaydeder: kim, ne zaman, hangi yolu istedi, hangi durum kodu döndü. Sorun olmasa da yazılır.

Hata günlüğü, sunucunun kendi sorunlarını kaydeder: yapılandırma hataları, arka uca bağlanamama, izin sorunları.

Teşhis genelde ikisinin birlikte okunmasıyla ilerler. Erişim günlüğü ne zaman ve kime olduğunu, hata günlüğü neden olduğunu söyler.

Öntanımlı biçim yetersizdir

Standart günlük satırı birkaç alan içerir ve arıza ararken en çok ihtiyaç duyulan iki şey içinde yoktur.

Yanıt süresi. Eklenmesi tek satırlık bir yapılandırmadır ve günlüğün değerini kat kat artırır. Onsuz, “sistem yavaşladı” iddiasını doğrulayacak hiçbir veri yoktur.

Gerçek istemci adresi. Önde bir vekil ya da CDN varsa, günlükteki adres onlara aittir. Doğru başlığın kaydedilmesi gerekir; nedeni ters vekil nedir yazısında.

Yanına iki alan daha eklenmelidir: arka uca harcanan süre — toplam süreden ayrı olarak — ve isteği ilişkilendiren bir kimlik.

İlişkilendirme kimliği

Modern bir istek birden çok bileşenden geçer: vekil, uygulama, veritabanı, dış servis. Her biri kendi günlüğünü tutar.

Bir kullanıcı “saat 14:32’de hata aldım” dediğinde, o isteği tüm bu günlüklerde bulmak bir arama işine dönüşür.

Çözüm basittir: öndeki katman her isteğe benzersiz bir kimlik atar, bunu arka uca iletir ve günlüğe yazar. Uygulama da aynı kimliği kendi günlüklerine yazar.

Bundan sonra tek bir aramayla isteğin tüm yolculuğu görülür. Aynı fikrin gözlemlenebilirlikteki genel karşılığı metrik, günlük ve iz yazısında.

Bir adım daha ileri gitmek, hata sayfasında bu kimliği kullanıcıya göstermektir. Kullanıcı destek çağrısında kodu söyler ve arama saniyeler sürer.

Gürültüyü ayıklamak

İnternete açık bir sunucunun erişim günlüğünün büyük bölümü, gerçek kullanıcılardan gelmez.

Üç kaynak vardır: arama motoru tarayıcıları, güvenlik tarayıcıları ve bilinen açıkları deneyen otomatik istekler. Sonuncusu, olmayan yolları ısrarla ister ve günlüğü 404’lerle doldurur.

Bu gürültü iki şekilde zarar verir. Gerçek sorunları görünmez kılar ve trafik istatistiklerini şişirir.

Ayıklamanın pratik yolu, tarayıcı isteklerini ayrı bir günlüğe yönlendirmek ya da analiz sırasında süzmektir. Süzme ölçütü, bilinen tarayıcı imzaları ve olmayan yolları ısrarla isteyen adreslerdir.

Neyin saklanıp neyin atılacağı kararının genel çerçevesi günlük toplama: her şeyi saklamak da bir hata yazısında.

Teşhis sırası

Bir olay geldiğinde günlükten hızlı sonuç almanın sırası şudur.

Önce zaman aralığını daraltın. Sorunun başladığı dakikayı bulun; hata oranındaki sıçrama bunu gösterir.

Sonra durum kodu dağılımına bakın. 5xx mi arttı, 4xx mi? Ayrımı HTTP durum kodları yazısında; 502 ile 504 farkı burada doğrudan yön verir.

Ardından yola göre gruplayın. Tek bir uç nokta mı etkilenmiş, yoksa her şey mi? Tek uç noktaysa sorun uygulamada belirli bir işlevde; her şeyse altyapıdadır.

Son olarak yanıt süresi dağılımına bakın. Ortalamaya değil yüzdelik dilimlere bakın; birkaç çok yavaş istek ortalamada kaybolur. Nedeni SLA, SLO ve SLI farkı yazısında.

Günlükte aranan sessiz sinyaller

Hata üretmeyen ama sorun anlatan üç kalıp vardır.

Aynı adresten çok sayıda 404. Bir bağlantı bozulmuş olabilir; ya da bir tarama sürüyordur.

Aynı kullanıcının aynı isteği tekrar tekrar göndermesi. Kullanıcı yanıt alamıyor ve yeniliyordur. Hata kodu görünmese de deneyim bozuktur.

İstemcinin bağlantıyı kapatması. Sunucu yanıtı hazırlarken istemci beklemeyi bırakmıştır. Hiçbir hata sayacına yansımayan, en gerçek yavaşlık kanıtıdır.

Saklama ve kişisel veri

Erişim günlükleri IP adresi içerir ve bu, kişisel veri sayılabilecek bir alandır.

İki sonuç doğar: saklama süresi belirlenmeli ve süresi dolan kayıtlar gerçekten silinmelidir. Ayrıca günlüklere erişimin kimlerde olduğu tanımlı olmalıdır.

Süresiz saklanan günlük, bir gün bir ihlalde sızacak veri yığınının parçasıdır.

Kısaca

Öntanımlı günlük biçimi arıza aramaya yetmez; yanıt süresi, gerçek istemci adresi ve bir ilişkilendirme kimliği eklenmelidir.

Okurken önce zamanı daraltın, sonra durum kodu dağılımına bakın. Ve tarayıcı gürültüsünü ayıklamadan yapılan her analiz, gerçek kullanıcıların yaşadığını değil botların ürettiğini ölçer.

Mustafa Çelik

Altyapı ve Operasyon Müdürü, İstanbul. 25 yıldır BT altyapısı, sistem yönetimi ve ağ altyapısıyla uğraşıyor; öğrendiklerini bu blogda üretim ortamında denenmiş rehberlere çeviriyor.

Hakkımda

Bu rehber işinize yaradıysa, sonrakini kaçırmayın.

Yeni yazı yayınlandığında tek e-posta. Takvim yok, dilediğiniz an çıkabilirsiniz.

Bülten sağlayıcısı henüz bağlanmadı. Bağlanana kadar e-posta ile yazabilirsiniz ya da RSS akışını takip edebilirsiniz.