Log hacmini nasıl azaltırım (health check ve statik dosya loglarını susturmak)?
Kısa cevap
Belirli istekleri log sunucusuna giden satırların dışında bırakmak için Conditional Silent Log aksiyonu kullanılır; /health ve /status gibi izleme yolları ya da .css, .js, .png gibi statik dosyalar için Path koşulları tanımlanır ve aksiyon bu koşullarla HTTP vService'e eklenir. Toplam hacmi azaltmak için Logs profilindeki log adreslerinde Sampling açılır; bu durumda o adrese her 10 logdan yalnızca biri gönderilir. Daha sade satır üreten Standard Log Format ya da yalnızca WAF engellerini gönderen TR7 WAF Log da hacmi düşürür. Bu yöntemler log sunucusuna giden satırları hedefler; cihazdaki HTTP logs kayıtları etkilenmez. TR7'nin Kurum Servislerine yaptığı health check'ler vService loglarına düşmez; onların kaydı Kurum Servisindeki Enable HC Logs ile yönetilir.
Sorun: Log Sunucusu Gereksiz Kayıtlarla Doluyor
İzleme sistemlerinin sürekli gönderdiği /health istekleri ve sayfa başına onlarca statik dosya isteği log sunucusunun kapasitesini ve lisans hacmini tüketir; anlamlı kayıtlar gürültü içinde kaybolur.
Çözüm: Üç Yöntem
Yöntemler birbirinin alternatifi değildir; birlikte kullanılabilir.
| Durumunuz | Uygun yöntem |
|---|---|
| Belirli yolları ya da istemcileri susturmak | Yöntem 1: Conditional Silent Log |
| Bir log sunucusuna giden toplam hacmi oransal azaltmak | Yöntem 2: Sampling |
| Daha küçük satır ya da yalnızca WAF engelleri | Yöntem 3: Format seçimi |
Yöntem 1: Conditional Silent Log Önerilen
- Nasıl çalışır Koşula uyan isteklerin satırı log sunucusuna gönderilmez; diğer istekler normal gönderilir. Cihazdaki HTTP logs kayıtları etkilenmez.
- Nerede açılırLoad Balancer → Actions → Action Type = Conditional Silent Log
- Gereksinim vService'te LOG açık ve log sunucusu adresi olan bir Logs profili seçili
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Conditions ekranında Add butonuna tıklanır (nasıl eklenir).
Condition Name girilir, Criteria = Path seçilir. Criteria'nın altındaki eşleştirme listesinde izleme yolu için Exact Match (varsayılan) seçilip Query = /health, statik dosyalar için End seçilip Query = .css girilir. Her değer ayrı bir koşuldur; birden çok uzantı tek koşulda Regex ile \.(css|js|png|jpg)$ olarak da yazılabilir; .CSS gibi büyük harfli uzantılar da yakalanacaksa Case Insensitive işaretlenir. Yalnızca izleme sistemlerinin isteklerini susturmak için ayrıca bir Source IP koşulu oluşturulur.
Add butonuna tıklanır; birden çok koşul gerekiyorsa Add & Repeat ile form açık kalır.
Load Balancer → Actions ekranında Add butonuna tıklanır.
Action Name girilir, Action Type = Conditional Silent Log ve Execution Level = On request seçilir. Conditions alanında koşullar or ile bağlanır; Source IP koşulu da kullanılacaksa yol koşullarıyla and ile bağlanır. Conditions boş bırakılırsa vService'in bütün satırları susar. Susturulan istekleri saymak için Hit counter açılabilir.
Add butonuna tıklanır.
Load Balancer → Load Balancer vService List ekranında HTTP vService'e sağ tıklanıp Edit seçilir.
Details panelindeki Actions alanında aksiyon seçilir. Aksiyon vService'e eklenmedikçe çalışmaz.
Save butonuna tıklanır. Değişikliğin uygulanması ekranın sağ altındaki senkron göstergesinden izlenir. Cluster kurulumunda varsayılan auto-sync ile değişiklik eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile elle gönderilir.
Doğrulama
/health isteklerinin satırları aranır.
Satır gelmezHit counter açıksa vService panosunun Action Hits sekmesinde susturulan istek sayısı görülür (Bir action'ın kaç kez tetiklendiğini görebilir miyim (hit counter, Action Hits)?).
Artan sayaçYöntem 2: Sampling
- Nasıl çalışır Sampling açık log adresine her 10 logdan yalnızca biri gönderilir; girilen değer onluk dilimdeki kaçıncı satırın gönderileceğini belirler. Her log adresi için ayrı ayarlanır.
- Nerede açılırLoad Balancer → Profiles → Logs → Log Addresses → Sampling
- Gereksinim vService'e atanmış bir Logs profili
- vService tipi HTTP · L7 TCP
Adım adım yapılandırma
Load Balancer → Profiles → Logs ekranında vService'in kullandığı profil için Edit butonuna tıklanır. Henüz profil yoksa önce Logları SIEM'e (Syslog) nasıl gönderirim? sayfasındaki adımlarla oluşturulup vService'e atanır.
Log Addresses satırındaki Sampling anahtarı açılır (varsayılan kapalı; açıkken de etiketi Sampling disabled olarak kalır) ve 1–10 arası bir değer girilir; 10'dan büyük değer geçerli örnekleme üretmez. Aynı profilde bir adrese tam, diğerine örneklenmiş gönderim yapılabilir (yüksek trafik ortamları).
Edit butonuna tıklanır. Değişiklik profili kullanan bütün vService'lere hemen uygulanır.
Doğrulama
Gelen satır sayısı Sampling öncesiyle karşılaştırılır.
Yaklaşık onda biriLogs profili listesinde Log Addresses kolonuna bakılır.
192.0.2.50:514 (Sampling: 1)Yöntem 3: Format Seçimi
- Nasıl çalışır Satır boyutu formata göre değişir; Standard Log Format en az alanı taşır, TR7 WAF Log yalnızca WAF'ın engellediği istekleri yazar.
- Nerede açılırLoad Balancer → Profiles → Logs → Line Format
- Gereksinim vService'e atanmış bir Logs profili; TR7 WAF Log için WAF'ı etkin HTTP vService
- vService tipi HTTP · L7 TCP (TR7 WAF Log yalnızca HTTP)
Adım adım yapılandırma
Load Balancer → Profiles → Logs ekranında profil için Edit butonuna tıklanır.
Line Format = Standard Log Format ya da yalnızca güvenlik olayları için TR7 WAF Log seçilir. TR7 WAF Log, WAF'ı etkin olmayan vService'te hiç satır üretmez (Hangi HTTP ve TCP log formatları destekleniyor (Standard, Apache Combined, Apache VHost, CEF, TR7 JSON, TR7 WAF, Manual JSON, Manual CEF, Manual log line)?).
Edit butonuna tıklanır.
Doğrulama
vService'ten gelen satırlara bakılır.
Satırlar yeni formatta gelirSık Yapılan Hatalar
Conditional Silent Log'u koşulsuz bırakmak
Conditions alanı boşsa aksiyon her istekte çalışır ve vService'in log sunucusuna giden bütün satırları susar.
- Aksiyonu L7 TCP vService'te aramak. Conditional Silent Log yalnızca HTTP vService'te çalışır.
- Geç oluşan bir koşula bağlamak. Bot skoru ya da WAF sonucu gibi sonradan oluşan bilgilere bağlı koşullarda, daha önce sonlandırılan istekler yine log sunucusuna gidebilir; path, kaynak IP ve başlık gibi istek başında değerlendirilen koşullar tercih edilir.
- Sampling'e 100 gibi bir değer yazmak. Oran sabit olarak 10'da birdir; değer 1–10 arasında olmalıdır.
- Cihazdaki HTTP logs ekranının da susacağını beklemek. Yöntemler log sunucusuna giden satırları hedefler; cihazdaki kayıtlar zaten 256 MB'lık vService bütçesiyle sınırlıdır (Loglar cihazda ne kadar süre tutulur?).
- Kurum Servisi health check'lerini vService logunda aramak. Bu denetimlerin kaydı Kurum Servisindeki Enable HC Logs ile tutulur.
Dokümantasyonda nasıl yapılır
