# Nginx erişim günlüğünü okuma: en çok istek yapan IP'ler, hatalar ve botlar

https://kervanhosting.com/bilgi-bankasi/makale/nginx-erisim-gunlugunu-okuma-en-cok-istek-yapan-ip-ler

Sitenizin yavaşladığını ya da beklenmedik şekilde yoğunlaştığını fark ettiğinizde ilk bakılacak yer Nginx günlükleridir. İki dosya vardır: `/var/log/nginx/access.log` (her istek bir satır) ve `/var/log/nginx/error.log` (sunucu hataları). Aşağıdaki komutlar özel bir araç kurmadan size özet çıkarır.

## Satırın yapısı

Varsayılan biçimde bir satır şuna benzer:

```
203.0.113.7 - - [20/Oct/2026:11:57:06 +0300] "GET /urun?id=5 HTTP/1.1" 200 5123 "-" "Mozilla/5.0 ..."
```

Sırasıyla: ziyaretçi IP'si (1. sütun), zaman, istek (yöntem, yol, protokol), durum kodu (9. sütun), gönderilen bayt (10. sütun), yönlendiren sayfa ve tarayıcı bilgisi. Aşağıdaki komutlar sütun numaralarına dayanır; günlük biçimini değiştirdiyseniz numaraları ona göre ayarlayın.

## En çok istek yapan IP'ler

```
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
```

Çıktıda sol sütun istek sayısı, sağ sütun adrestir. Bir adres diğerlerinden çok fazla istek yapıyorsa bot ya da tarayıcı olabilir. Tek başına şüpheli saymayın: arama motoru botları (Googlebot) çok istek yapar; adresin kime ait olduğunu `whois` ya da ters DNS ile kontrol edin.

## Durum kodlarına göre dağılım

```
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
```

- **200** başarı, **301/302** yönlendirme.
- Çok sayıda **404** bot taraması ya da kırık bağlantı demektir: `awk '$9==404 {print $7}' ... | sort | uniq -c | sort -rn | head` hangi adreslerin bulunmadığını gösterir.
- **499** istemcinin yanıtı beklemeden bağlantıyı kapattığını, **5xx** sunucu hatalarını gösterir: [502](https://kervanhosting.com/bilgi-bankasi/makale/nginx-502-bad-gateway-hatasi-nedenleri-ve-cozumu).

## En çok istenen sayfalar

```
awk '{print $7}' /var/log/nginx/access.log | cut -d'?' -f1 | sort | uniq -c | sort -rn | head -10
```

WordPress sitelerinde `/wp-login.php` ve `/xmlrpc.php` en üstte çıkıyorsa giriş saldırısı vardır: [saldırıları engelleme](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-wp-login-ve-xmlrpc-saldirilarini-engelleme).

## Belirli bir saat ya da gün

```
grep "20/Oct/2026:11:" /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head
```

Yavaşlığın başladığı saati bulup o saate odaklanmak, sorunun nedenini hızla gösterir. Eski günlükler `access.log.1` ve `access.log.2.gz` gibi saklanır; sıkıştırılmışları `zcat access.log.2.gz | awk ...` ile okuyun.

## Canlı izleme

```
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
```

Siteyi tarayıcıdan açıp isteğin günlüğe düşüp düşmediğine bakmak, isteğin Nginx'e ulaşıp ulaşmadığını gösterir. Düşmüyorsa sorun daha önce (DNS, güvenlik duvarı, CDN) demektir.

## Botları kısıtlamak

Zararlı bir adresi engellemek için ayarınıza `deny 198.51.100.7;` ekleyebilir ya da tekrar eden başarısız girişleri otomatik engelleyen fail2ban kullanabilirsiniz: [brute force koruması](https://kervanhosting.com/bilgi-bankasi/makale/bilinmeyen-girisleri-brute-force-nasil-engellerim). İstek sınırlama için: [istek sınırlama](https://kervanhosting.com/bilgi-bankasi/makale/nginx-gzip-tarayici-onbellegi-ve-istek-sinirlama-ayarlari). Günlük dosyaları büyürse: [logrotate](https://kervanhosting.com/bilgi-bankasi/makale/linux-logrotate-ile-log-dosyalarini-yonetme). Yetkisiz erişim şüphesi varsa: [kontrol listesi](https://kervanhosting.com/bilgi-bankasi/makale/sunucuma-yetkisiz-erisim-oldu-mu-kontrol-listesi).

## Sık sorulanlar

### Günlükteki IP adresleri hep aynı (127.0.0.1), neden?

Nginx bir ters proxy ya da Cloudflare arkasındaysa görünen adres proxy'nin adresidir. Gerçek adres için `X-Forwarded-For` başlığını kullanın (`real_ip` modülü ya da günlük biçimine `$http_x_forwarded_for` eklemek).

### Günlükleri kapatabilir miyim?

Erişim günlüğünü yoğun bir sitede kapatmak (`access_log off;`) disk kullanımını azaltır ama sorun çıktığında gözünüz kör olur. Kapatmak yerine saklama süresini kısaltın.

### Günlük dosyası çok büyük, awk yavaş.

Önce son satırlarla sınırlayın: `tail -n 100000 access.log | awk ...`. Büyük analizler için GoAccess gibi bir araç kurabilirsiniz.

**İlgili makaleler**

- [WordPress giriş sayfası ve xmlrpc.php saldırılarını engelleme](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-wp-login-ve-xmlrpc-saldirilarini-engelleme)
- [Sunucuma saldırı yapılıyor mu? Nasıl anlarım?](https://kervanhosting.com/bilgi-bankasi/makale/sunucuma-saldiri-yapiliyor-mu-nasil-anlarim)
- [Sitem çok yavaş açılıyor, ne yapabilirim?](https://kervanhosting.com/bilgi-bankasi/makale/sitem-cok-yavas-aciliyor-ne-yapabilirim)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
