Hosting & Altyapı

Sunucu Logları Nasıl Okunur: 404, Bot ve Yavaş İstekler

Bir sunucu log satırının her parçası ne anlatır, 404 hataları ve yavaş istekler nasıl ayıklanır, gerçek kullanıcı ile bot trafiği nasıl ayırt edilir.

rabbitclip ekibiYayın: 4 dk okuma

Kısa cevap

Bir sunucu log satırı; isteği yapan adres, tarih, istenen sayfa, sunucunun döndürdüğü durum kodu ve tarayıcı bilgisini tek satırda taşır. Bu satırları düzenli okumak üç soruya cevap verir: hangi sayfalar 404 hatası veriyor, trafiğin ne kadarı gerçek ziyaretçi ne kadarı bot, hangi istekler normalden yavaş yanıtlanıyor. Üçü de site sağlığını raporlamadan önce görebileceğiniz somut sinyallerdir.

Bir tesis yönetim şirketinin sitesi ayda birkaç yüz ziyaretçi alırken sunucu günde on binlerce istek kaydediyorsa, bu fark neredeyse her zaman bot trafiğinden kaynaklanır. Loglara bakmadan bu farkın nedenini anlamak mümkün değildir.

Bir log satırı nasıl okunur?

Sunucu logu, sunucuya gelen her isteğin sunucu tarafından tutulan kaydıdır; Nginx ve Apache'nin varsayılan «combined» biçimi isteği yapan IP adresi, tarih, istenen adres, HTTP metodu, durum kodu, gönderilen bayt sayısı, yönlendiren sayfa ve tarayıcı bilgisini sırayla listeler.

Örneğin bir satırda önce ziyaretçinin IP adresi, ardından köşeli parantez içinde tarih ve saat, tırnak içinde GET ya da POST ile başlayan istenen adres, hemen ardından üç haneli durum kodu, 200 başarılı, 404 bulunamadı, 500 sunucu hatası, gönderilen veri miktarı ve en sonda tırnak içinde tarayıcı kimliği yer alır. Bu sırayı bir kez öğrenmek, herhangi bir log dosyasını okumayı yeterli kılar.

404 hataları neyi gösterir?

404, istenen sayfanın sunucuda bulunmadığı anlamına gelir. Bu ya kırık bir bağlantıdan, başka bir sayfanın artık var olmayan bir adrese link vermesinden, ya bir site yenilemesinde eski adreslerin yönlendirilmemesinden ya da bir botun rastgele adres denemesinden kaynaklanır.

Loglardaki 404'leri düzenli aralıklarla gözden geçirmek, hangi kırık bağlantının gerçek ziyaretçiyi etkilediğini gösterir; sık tekrar eden ve gerçek bir tarayıcıdan gelen 404'ler öncelikli olarak düzeltilmeli, tek seferlik bot denemeleri göz ardı edilebilir.

Gerçek kullanıcı ile bot trafiği nasıl ayırt edilir?

Bir isteğin bot mu gerçek ziyaretçi mi olduğunu anlamanın ilk yolu user-agent alanına bakmaktır; bilinen arama motoru botları kendini açıkça tanıtır. Ama kötü niyetli botlar genelde gerçek bir tarayıcı gibi görünen bir user-agent kullanır; bu durumda tek bir alan yeterli olmaz.

  • Aynı IP'den saniyede birden fazla istek gelmesi, insan davranışına uymaz
  • Yalnızca belirli sayfalara, giriş formu, arama kutusu, yoğunlaşan tekrarlayan istekler
  • robots.txt dosyasını hiç çekmeden doğrudan derin sayfalara giden istekler
  • Gerçekçi bir user-agent ama tarayıcının normalde göndereceği diğer başlıkların, dil, çerez, eksik olması

Yavaş istekler loglardan nasıl bulunur?

Yanıt süresi, çoğu sunucu yapılandırmasında varsayılan log biçiminde yer almaz ama Nginx ve Apache bu alanı eklemek için ayrı bir değişken sunar; eklendiğinde her isteğin ne kadar sürede yanıtlandığı milisaniye cinsinden görülebilir.

Bu alan bir kez eklendiğinde, yanıt süresi bir eşiği, örneğin bir saniyeyi, aşan istekler filtrelenerek hangi sayfanın, hangi sorgunun ya da hangi entegrasyonun yavaşlığa yol açtığı bulunabilir. Bu, kullanıcıdan «site yavaş» şikayeti gelmeden önce fark edilebilecek bir sinyaldir.

Loglar ne kadar süre saklanmalı, kim bakmalı?

Log dosyaları sonsuza kadar tutulmaz; disk alanı sınırlıdır ve çoğu barındırma sağlayıcısı birkaç haftalık ile birkaç aylık bir varsayılan rotasyon uygular. Bir güvenlik olayı sonrası incelemede daha eski loglara ihtiyaç duyulabileceği için bu süreyi bilinçli olarak belirlemek gerekir.

Loglara düzenli bakmak tek bir kişinin haftalık on dakikalık bir alışkanlığı olabilir; amaç her satırı okumak değil, durum kodu dağılımına ve en sık tekrarlanan hatalara göz atmaktır.

Tek bir komutla hızlı bir özet çıkarmak

Teknik bir ekip olmadan da log dosyasından hızlı bir özet çıkarılabilir. Log satırlarını durum koduna göre saydırıp sıralayan basit bir komut, hangi hatanın kaç kez tekrarlandığını saniyeler içinde gösterir; en çok tekrarlanan 404 ya da 500 hataları listenin başında çıkar.

Aynı mantıkla, tek bir IP adresinin toplam istek sayısına göre sıralanması, olağan dışı yoğunluktaki bir bot kaynağını hemen ele verir. Bu iki basit süzme, log dosyasının tamamını satır satır okumaya göre çok daha hızlı sonuç verir.

Sık yapılan hatalar

Loglar genelde yalnızca bir sorun çıktığında açılan bir dosya olarak kalır; düzenli bakılmadığında erken uyarı fırsatı kaçırılır.

  • Loglara yalnızca site çöktükten sonra bakmak, önleyici sinyalleri kaçırmak
  • 404 hatalarını hiç gözden geçirmemek, kırık bağlantıları aylarca fark etmemek
  • Tüm trafiği insan ziyaretçi sanıp bot oranını hiç hesaba katmadan analitik yorumlamak
  • Yanıt süresi alanını loglara hiç eklememek, yavaşlığın nereden geldiğini asla bilememek

Sunucu logları, bir siteyi analitik panelinden daha çıplak biçimde gösterir; her istek, gerçek ya da bot, orada kayıtlıdır. Haftalık on dakikalık bir göz atma alışkanlığı, birçok sorunu müşteri şikayetine dönüşmeden yakalar. rabbitclip ile yapılan bir keşif görüşmesinde sunucu loglarınızı birlikte okuyabiliriz.

Sık sorulanlar

Log dosyalarını okumak için özel bir araç gerekir mi?

Küçük bir site için düz metin dosyasını komut satırıyla filtrelemek yeterlidir. Trafik arttıkça bir log analiz aracı işi kolaylaştırır.

404 hatası her zaman bir sorun mudur?

Hayır. Var olmayan rastgele bir adrese giden bot denemesi normaldir; sorun, gerçek bir ziyaretçinin sık karşılaştığı kırık bir bağlantıdır.

Bot trafiğini tamamen engellemek mümkün mü?

Tamamen değil ama bilinen kötü niyetli davranış kalıpları sunucu ya da CDN seviyesinde büyük ölçüde engellenebilir.

Yavaş isteklerin nedeni her zaman sunucu mudur?

Hayır. Yavaşlık veritabanı sorgusundan, üçüncü taraf bir entegrasyondan ya da büyük bir görselden de kaynaklanabilir; log yalnızca nerede yavaşladığını gösterir, nedeni ayrıca araştırılır.

Log dosyasını tek tek okumak yerine hızlı bir özet çıkarılabilir mi?

Evet. Durum koduna ya da IP adresine göre saydırıp sıralayan basit bir komut, en sık tekrarlanan hatayı ya da olağan dışı bir bot kaynağını satır satır okumadan gösterir.

Paylaş

İlgili hizmetBulut & AltyapıSistem büyüdükçe zorlanan, yoğun anda çöken bir altyapı gördük; onun için baştan sağlam kurarız. Güvenliği ve sürekliliği en başta tasarlar, teknik yükü üstümüze alırız.

İlgili yazılar

Nereden başlayacağınızı bilmiyorsanız, sorun değil; doğru yerdesiniz.

Aklınızdaki proje netleşmiş de olabilir, henüz bir fikir hâlinde de. İkisi de olur. Kısa bir görüşmeyle nerede olduğunuzu, nereye gidebileceğinizi birlikte konuşuruz.

Görüşme ayarlayalım
Projeyi konuşalım