format_list_bulletedBu İçerikte Bahsedilen Konular
- arrow_rightNginx Üzerinde Gelişmiş Log Analizi ve Görselleştirme
- arrow_rightNginx Log Türleri ve Yapılandırması
- arrow_rightErişim Logu (Access Log)
- arrow_rightHata Logu (Error Log)
- arrow_rightLog Analizi için Araçlar ve Yöntemler
- arrow_right1. Command-Line Araçları
- arrow_right2. GoAccess ile Gerçek Zamanlı Analiz
- arrow_right3. ELK Stack ile Profesyonel Analiz
- arrow_rightLog Görselleştirme Çözümleri
- arrow_rightKibana Dashboard
- arrow_rightGrafana ile Metrik Görselleştirme
- arrow_rightNGINX Amplify ile Akıllı İzleme
- arrow_rightLog Analizinde Güvenlik
- arrow_rightSaldırı Tespit Örnekleri
- arrow_rightLog Rotasyonu ve Yönetimi
- arrow_rightPerformance Optimizasyonu için Log Analizi
- arrow_rightYavaş İsteklerin Tespiti
- arrow_rightReal-Time Monitoring Kurulumu
- arrow_right1. tail -f ile Temel İzleme
- arrow_right2. Custom Dashboard Oluşturma
- arrow_rightSonuç ve Öneriler
Nginx Üzerinde Gelişmiş Log Analizi ve Görselleştirme
Nginx, dünya genelinde en yaygın kullanılan web sunucularından biri olarak milyonlarca web sitesine hizmet vermektedir. Ancak bu sunucuların ürettiği log verileri, doğru analiz edilmediğinde değerli bilgilerin çöpe dönüşmesine neden olmaktadır. Gelişmiş log analizi, sunucu performansını optimize etmek, güvenlik açıklarını tespit etmek ve kullanıcı davranışlarını anlamak için kritik öneme sahiptir. Bu rehberde, Nginx loglarınızı nasıl analiz edeceğinizi ve görselleştireceğinizi detaylı olarak ele alacağız.
Nginx Log Türleri ve Yapılandırması
Nginx iki temel log türü üretmektedir: access log (erişim günlüğü) ve error log (hata günlüğü). Bu loglar, sunucunuzun sağlığı hakkında kritik bilgiler içermektedir.
Erişim Logu (Access Log)
Erişim logu, her HTTP isteğini detaylı olarak kaydeder. Aşağıdaki bilgileri içermektedir:
- İstemci IP adresi ve portu
- İstek zamanı ve tarihi
- HTTP metodu ve istenen URL
- Sunucu yanıt kodu (200, 404, 500 vb.)
- Transfer edilen byte miktarı
- Yönlendiren (referrer) URL
- Kullanıcı aracısı (User-Agent) bilgisi
Nginx yapılandırma dosyasında varsayılan erişim logu formatı şu şekildedir:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
Hata Logu (Error Log)
Hata logları, sunucu hatalarını, uyarıları ve debug bilgilerini içermektedir. Nginx hata sayfalarını özelleştirme rehberimiz, hata yönetimi konusunda daha fazla bilgi sunmaktadır.
Log Analizi için Araçlar ve Yöntemler
Nginx log analizi için birçok araç mevcuttur. İşte en yaygın kullanılan yöntemler:
1. Command-Line Araçları
Temel log analizi için Linux komut satırı araçları oldukça etkilidir:
- awk: Log satırlarını parse etmek için
- grep: Belirli kalıpları aramak için
- sort ve uniq: Tekrarlayan kalıpları tespit etmek için
- tail -f: Real-time log takibi için
Örnek komutlar:
# En çok ziyaret edilen sayfaları bulma
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
# 404 hatalarını listeleme
grep " 404 " /var/log/nginx/access.log
# IP bazlı istek sayısı
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
2. GoAccess ile Gerçek Zamanlı Analiz
GoAccess, Nginx loglarını analiz etmek için popüler bir açık kaynaklı araçtır. Terminal tabanlı görselleştirme sunar ve HTML raporları oluşturabilir.
# Debian/Ubuntu kurulum
apt-get install goaccess
# Kullanım
goaccess /var/log/nginx/access.log -o report.html --log-format=COMBINED
GoAccess'in sunduğu istatistikler:
- Ziyaretçi sayısı ve benzersiz IP'ler
- En çok ziyaret edilen sayfalar
- HTTP durum kodları dağılımı
- Kullanıcı aracıları
- Coğrafi konum bilgileri
3. ELK Stack ile Profesyonel Analiz
Elasticsearch, Logstash ve Kibana birleşimi olan ELK Stack, kurumsal düzeyde log analizi için en güçlü çözümdür. Sunucu kurulum rehberlerimiz üzerinde ELK Stack kurulumunu keşfedebilirsiniz.
Log Görselleştirme Çözümleri
Log verilerini görselleştirmek, karmaşık verilerin anlaşılmasını kolaylaştırır. İşte en popüler görselleştirme araçları:
Kibana Dashboard
Kibana, Elasticsearch üzerinde çalışan güçlü bir görselleştirme platformudur. Nginx logları için oluşturabileceğiniz dashboard'lar:
- Gerçek zamanlı istek grafiği
- HTTP durum kodu dağılımı
- En çok CPU tüketen istekler
- Coğrafi harita üzerinde ziyaretçi konumları
- Yanıt süreleri histogramı
Grafana ile Metrik Görselleştirme
Grafana, metrik görselleştirme ve izleme için lider bir platformdur. Nginx metriklerini toplamak için Prometheus veya InfluxDB kullanabilirsiniz.
| Araç | Avantajlar | Kullanım Senaryosu |
|---|---|---|
| Kibana | Derin log arama, esnek sorgular | Detaylı log analizi |
| Grafana | Zengin grafikler, uyarı sistemi | Real-time monitoring |
| GoAccess | Hızlı kurulum, hafif | Basit analiz ihtiyaçları |
NGINX Amplify ile Akıllı İzleme
NGINX Amplify, Nginx için özel olarak geliştirilmiş bir izleme çözümüdür. Bulut tabanlı yapısı sayesinde kolay kurulum ve kullanım sunar. Ücretsiz planı küçük projeler için yeterlidir.
Log Analizinde Güvenlik
Log analizi, güvenlik tehditlerini tespit etmek için de kritik öneme sahiptir. Sunucu güvenliği rehberlerimiz konu hakkında daha fazla bilgi sunmaktadır.
Saldırı Tespit Örnekleri
Loglarınızda aşağıdaki kalıpları arayarak potansiyel saldırıları tespit edebilirsiniz:
# SQL Injection denemeleri
grep -E "union.*select|concat\(|'" /var/log/nginx/access.log
# XSS denemeleri
grep -E "
Sosyal mühendislik ve phishing saldırılarına karşı log analizi nasıl kullanılır, inceleyebilirsiniz.
Log Rotasyonu ve Yönetimi
Log dosyalarının boyutu kontrolsüz büyüyebilir. Bu nedenle log rotasyonu kritik öneme sahiptir. Nginx için logrotate yapılandırması:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
Performance Optimizasyonu için Log Analizi
Log verilerini analiz ederek sunucu performansınızı optimize edebilirsiniz. Oyun sunucusu optimizasyon rehberimiz, benzer prensiplerin uygulanmasını göstermektedir.
Yavaş İsteklerin Tespiti
Yanıt sürelerini analiz ederek performans sorunlarını belirleyebilirsiniz:
# Ortalama yanıt süresi hesaplama
awk '{sum+=$NF; count++} END {print "Ortalama:", sum/count "ms"}' /var/log/nginx/access.log
# En yavaş 20 istek
awk '{print $NF, $4, $7}' /var/log/nginx/access.log | sort -rn | head -20
Real-Time Monitoring Kurulumu
Canlı log izleme için aşağıdaki yöntemleri kullanabilirsiniz:
1. tail -f ile Temel İzleme
# Sürekli takip
tail -f /var/log/nginx/access.log
# Filtreli takip
tail -f /var/log/nginx/access.log | grep "500 "
2. Custom Dashboard Oluşturma
Grafana veya Kibana kullanarak özelleştirilmiş dashboard'lar oluşturabilirsiniz. Önerilen panel türleri:
- Line chart: İstek sayısı zamanla
- Pie chart: HTTP durum kodları dağılımı
- World map: Coğrafi trafik dağılımı
- Heatmap: Yoğunluk haritası
- Stat panel: Anlık metrikler
Sonuç ve Öneriler
Nginx log analizi, sunucu yönetiminin temel bileşenlerinden biridir. Doğru araçlar ve yöntemlerle:
- Performans sorunlarını hızla tespit edebilirsiniz
- Güvenlik tehditlerini önleyebilirsiniz
- Kullanıcı davranışlarını anlayabilirsiniz
- Kaynak kullanımını optimize edebilirsiniz
Başlangıç için GoAccess veya NGINX Amplify gibi hafif araçlarla başlayıp, ihtiyacınız arttıkça ELK Stack'e geçiş yapabilirsiniz. Unutmayın: düzenli log analizi, sağlıklı bir altyapının anahtarıdır.