Smart Sampling nedir; learning log'u nasıl etkiler?
Kısa cevap
Smart Sampling (learning log), learning log'u istek şekli bazında seyrelten ayardır: aynı şeklin (metot, host, path, query parametre adları ve değer uzunluğu aralıkları, gövde alan adları, header adları, eşleşen imzalar, yanıt kodu) ilk N örneği tam yazılır, sonrası rastgele örneklenir. Varsayılan olarak açıktır; N, Sampling: Full Copies per Shape alanıdır, varsayılanı 50'dir ve 5 ile 10000 arasında değer alır. Kota dolunca varsayılanda yaklaşık her 20 istekten biri yazılır; N büyüdükçe örnekleme sıklaşır (en sık 5'te bir, en seyrek 100'de bir). İlk kez görülen şekil tam yazılır; ancak bir dakika içinde çok sayıda yeni şekil oluşursa (ör. parametre adı üreten bir tarama) o dakika boyunca yeni şekiller de yaklaşık 100'de bir yazılır. Şekil belleği her cihazda ayrı tutulur ve 21 gün görülmeyen şekil unutulur. Kapatılırsa öğrenme kapsamındaki her istek tam yazılır (yalnızca düşük trafikte önerilir) ve Dashboard'daki Learning sekmesi görünmez.
Nasıl Çalışır?
| Alan | Varsayılan | Etkisi |
|---|---|---|
| Smart Sampling (learning log) | İşaretli | İşaretsizken her istek yazılır; Learning sekmesi görünmez |
| Sampling: Full Copies per Shape | 50 (5–10000) | Şekil başına tam yazılan örnek sayısı; kota sonrası yaklaşık 1000/N istekte bir yazılır (en az 5'te, en çok 100'de bir) |
- Ayar vService geneldir ve yalnızca HTTP vService'te etkilidir. Yalnızca Learning modundaki host grupları ya da Conditional Learning kimliği taşıyan istekler learning log'a yazıldığından ayar ancak bu durumda iş görür.
- Şekil değerlerin kendisini değil uzunluk aralıklarını taşır: aynı sayfaya benzer uzunlukta farklı değerlerle gelen istekler aynı şekildir. Farklı bir saldırı imzası ya da farklı bir yanıt kodu yeni şekil oluşturur.
- Şekil sayımları yapılandırma yenilendiğinde ve örnekleme kapatılıp açıldığında sıfırlanmaz; her cihaz kendi sayımını tutar.
- Yazılan ve atlanan satırların oranı Learning sekmesindeki Learning Log Sampling panelinde (Written, Skipped) görülür.
- Disk ve işlemci açısından yönetimi: Learning log'un disk ve işlemci yükü nasıl kontrol altında tutulur (Smart Sampling)?
TR7'de Ayar
Left Monitor Panel → WAF-Protected vServices → vService → WAF Management sekmesi → Learning & Reporting bölümündeki Log Settings kartının kalem ikonu tıklanır; Log settings penceresinde Smart Sampling (learning log) işaretlenir, Sampling: Full Copies per Shape girilir ve Edit tıklanır. Ayrı bir dağıtım adımı yoktur. Örnekleme açıkken kart "The learning log is smart-sampled — the first 50 of each request shape are written in full" cümlesini gösterir.
WEB-CLI ile aynı ayar:
waf options update poolId <vService> --smartSampling true --smartSamplingCopies 50Sık Karıştırılan Noktalar
- "Örnekleme yeni sayfaları kaçırır." Yeni bir şekil ilk görüldüğünde tam yazılır; yalnızca bir dakikada çok sayıda yeni şekil oluştuğunda yeni şekiller de seyreltilir.
- "Örneklemeyi kapatmak daha iyi öğrenme sağlar." Her tekrar tam yazılır ve disk tüketimi artar; Learning sekmesi de görünmez.
- "Şekil belleği cluster'daki iki cihazda ortaktır." Her cihaz kendi şekil belleğini tutar.
Dokümantasyonda nasıl yapılır
