Actions
Actions Nedir?
Actions, TR7 Load Balancer üzerinden geçen HTTP ve L7 TCP trafiği üzerinde belirli işlemler gerçekleştiren, yeniden kullanılabilir trafik manipülasyon bileşenleridir.
Aksiyonlar, modern Load Balancer ve Application Delivery Controller (ADC) sistemlerinin temel yapı taşlarından biridir. Geleneksel sistemlerdeki script tabanlı trafik kurallarının TR7'deki GUI-tabanlı ve no-code/low-code karşılığıdır. İşlevsel olarak, "koşul sağlandığında ne yapılacağını" tanımlar ve trafiğin yaşam döngüsünde belirli noktalarda devreye girer.
Her Aksiyon, bir veya birden fazla vService üzerinde aktif hale getirilerek canlı trafiğe uygulanır. Aksiyonlar, Conditions ile birleştirilerek karmaşık trafik senaryolarına özel çözümler oluşturulmasını sağlar.
Neler Yapılabilir?
- Güvenlik Kontrolü: Şüpheli trafiği engelleme, CAPTCHA doğrulaması, kullanıcı kimlik doğrulama
- Trafik Yönlendirme: Coğrafi konum bazlı yönlendirme, hata kodlarına göre yönlendirme
- İçerik Manipülasyonu: HTTP başlık ekleme/çıkarma/düzenleme, cookie şifreleme, içerik değiştirme, path/query manipülasyonu
- Performans Optimizasyonu: Bant genişliği limitleme, TCP multiplexing, bağlantı yönetimi
- İzleme ve Loglama: Detaylı trafik takibi, IPFIX entegrasyonu, koşullu log durdurma
- Protokol Dönüşümü: HTTP'den HTTPS'e yönlendirme, CORS politikaları, HTTP/1.0 uyumluluğu
Aksiyonların Çalışma Prensibi
TR7 Aksiyonları, vService üzerinden geçen trafiğin yaşam döngüsünde belirli noktalarda devreye girer ve işlem yapar. Bu işlem noktası, aksiyonun Execution Level (Çalışma Anı) ile belirlenir.
On Request (İstek Üzerinde)
- Aksiyonlar, istemciden gelen HTTP/TCP isteği Kurum Servisine ulaşmadan önce işlenir.
- Bu seviyede yapılabilecek işlemler: Block, yönlendirme (Redirect), başlık ekleme/düzenleme, CAPTCHA doğrulaması, kullanıcı kimlik doğrulama, path değiştirme, bant genişliği limitleme.
- Kullanım senaryosu: Güvenlik filtreleme, bot koruması, coğrafi kısıtlama, A/B testing.
On Response (Yanıt Üzerinde)
- Aksiyonlar, Kurum Servisinden dönen HTTP/TCP yanıtı istemciye ulaşmadan önce işlenir.
- Bu seviyede yapılabilecek işlemler: Yanıt başlık ekleme/düzenleme, içerik manipülasyonu, güvenlik başlıkları ekleme, sıkıştırma, cache header yönetimi.
- Kullanım senaryosu: Güvenlik header'ları enjekte etme (CSP, HSTS), reklam ekleme, veri maskeleme, response rewriting.
Aksiyonların Koşullarla İlişkisi
Aksiyonlar, isteğe bağlı olarak bir veya birden fazla Conditions ile ilişkilendirilebilir. Koşullar, aksiyonun hangi durumlarda çalışacağını belirler:
- Koşulsuz Aksiyon: Tüm trafik üzerinde her zaman çalışır. (Örnek: Tüm yanıtlara
X-Frame-Optionsheader ekle) - Koşullu Aksiyon: Sadece belirtilen koşullar sağlandığında çalışır. (Örnek: Sadece
/adminpath'ine gelen isteklerde IP kontrolü yap)
Birden fazla koşul, AND (tümü sağlanmalı) veya OR (en az biri sağlanmalı) operatörleri ile birleştirilebilir.
Aksiyon Sıralaması ve Öncelik
Bir vService üzerinde birden fazla Aksiyon tanımlanmışsa, aksiyonlar ekleme sırasına göre yukarıdan aşağıya işlenir. İlk aksiyon trafiği engellerse veya yönlendirirse, sonraki aksiyonlar ilgili istek için geçersiz olur.
Aksiyon Tipleri ve Kategorileri
TR7, farklı kullanım senaryolarına yönelik 36'dan fazla aksiyon tipi sunar. Bu aksiyonlar, işlevlerine göre aşağıdaki kategorilere ayrılabilir.
1. Güvenlik ve Erişim Kontrolü
- Block: Belirli koşullara uyan trafiği engelleyerek HTTP status code (403, 404, vb.) ile yanıt verir. Kötü amaçlı IP engelleme, path bazlı kısıtlamalar için kullanılır.
- Advanced Captcha: Bot/insan ayrımı için CAPTCHA doğrulaması gerektirir.
- User Authentication (On HTTP Request): Basic Auth ile kimlik doğrulama yapar. Korunan kaynaklara erişimden önce kullanıcı adı/şifre ister.
- Quarantine: Şüpheli kullanıcıları tanımlanan süre boyunca karantinaya alır.
2. HTTP Başlık Yönetimi
- Add HTTP Header: İstek veya yanıta özel HTTP header ekler. X-Forwarded-For, X-Real-IP, özel tracking header'ları için kullanılır.
- Delete HTTP Header: İstek veya yanıttan belirli HTTP header'ları kaldırır. Server header gizleme, güvenlik header temizleme için kullanılır.
- Replace HTTP Header Content: Mevcut header değerlerinde regex ile eşleştirme yapıp değiştirir. Host header rewrite, URL normalizasyonu için kullanılır.
- Set HTTP Header: Header'ı yeniden oluşturur veya değerini tamamen değiştirir. Conditional header setting için kullanılır.
- Manage HTTP Security Headers: HSTS, CSP, X-Frame-Options, X-Content-Type-Options gibi güvenlik header'larını otomatik ekler. SSL Labs skorunu artırır.
- Keep Header Names: Header isimlerinde case-sensitivity'yi korur. Legacy sistemlerle uyumluluk için kullanılır.
3. Trafik Yönlendirme
- Location Redirection: HTTP 301/302/307/308 yönlendirmesi yapar. Domain değiştirme, path normalizasyonu, query parametresi ile yönlendirme için kullanılır.
- Redirect to HTTPS: HTTP trafiğini HTTPS'e zorunlu yönlendirir. Güvenli bağlantı politikası için kullanılır.
- Redirect for Backend Service Errors: Kurum Servisinden dönen hata kodlarına (500, 502, 503, vb.) göre kullanıcıyı başka bir URL'e yönlendirir.
- Redirect for Traffic Manager Errors: TR7 Load Balancer seviyesindeki hatalarda (tüm kurum servisleri down, timeout, vb.) yönlendirme yapar.
4. İçerik Manipülasyonu
- Show Content: Özel HTML/metin içerik gösterir. Bakım sayfası, uyarı mesajı, bilgilendirme sayfaları için kullanılır.
- Show Content for Backend Service Errors: Kurum Servisi hata kodlarında özel sayfa gösterir. Kullanıcı dostu hata mesajları için kullanılır.
- Show Content for Traffic Manager Errors: TR7 Load Balancer hata kodlarında özel sayfa gösterir.
- Modify Response Content: HTML/JSON/XML yanıt içeriğinde regex ile değişiklik yapar. Dinamik içerik rewriting, veri maskeleme için kullanılır.
- Set Path: HTTP request path'ini değiştirir. Kurum Servisi path normalizasyonu, versioning için kullanılır.
- Set Path + Query: Path ve query string'i birlikte değiştirir. Karmaşık URL manipülasyonu için kullanılır.
- URL Normalization: URL encoding/decoding ve normalizasyon yapar. Legacy sistem uyumluluğu için kullanılır.
5. Cookie (Çerez) Yönetimi
- Cookie Encryption: Cookie değerlerini şifreler. Session hijacking koruması için kullanılır.
- HTTP Cookie Security: Cookie'lere Secure, HttpOnly, SameSite gibi flag'leri ekler. XSS ve CSRF koruması için kullanılır.
- Cookie Based Connection Persistency: Session persistence için cookie kullanır.
6. Performans ve Bağlantı Yönetimi
- Bandwidth Limitation: İstemci başına veya toplam bant genişliği sınırlar. DDoS koruması, adil kullanım politikası için kullanılır.
- HTTP TCP Multiplexing: Client-side ve server-side connection pooling yapar.
- TCP Connection Management: TCP connection parametrelerini yönetir.
7. Loglama ve İzleme
- Advanced Traffic Inspection: Detaylı trafik analizi yapar. İstemci IP, path, header, query gibi bilgileri loglar.
- IPFIX Log Sending: IPFIX formatında log gönderir. SIEM, NetFlow collector entegrasyonu için kullanılır.
- Conditional Silent Log: Belirli koşullarda loglama'yı durdurur. Log storage optimizasyonu, hassas veri filtreleme için kullanılır.
- IP Log Masking: Log'larda IP adreslerini maskeler.
- Provide Prometheus Service: Prometheus metrics endpoint sunar. vService istatistiklerini Prometheus/Grafana ile izleme için kullanılır.
- Traffic Mirroring: Eşleşen isteklerin bir kopyasını, canlı trafiği geciktirmeden ikinci bir Kurum Servisine (ayna hedefi) gönderir. Yeni sürüm testi (shadow testing), güvenlik analizi ve kapasite ölçümü için kullanılır.
8. Protokol ve Uyumluluk
- CORS: Cross-Origin Resource Sharing header'larını yönetir. Modern web uygulamaları için CORS politikası uygular.
- HTTP Header 1.0 Compatibility: HTTP/1.0 protokolü ile uyumluluk sağlar. Legacy sistemler için kullanılır.
9. Diğer
- Create Traffic Variable: İşlenen trafiğe ait adlandırılmış değişkenler tanımlar; değişkenlere sabit metin ya da akıllı değişkenlerle üretilen dinamik değer atanır.
- Manual Action
Aksiyonların Avantajları
TR7 Aksiyonları, geleneksel script tabanlı trafik yönetim yöntemlerine göre birçok operasyonel ve teknik avantaj sunar.
Kod Yazmaya Gerek Yok (No-Code/Low-Code)
- Aksiyonlar tamamen GUI tabanlı bir arayüz üzerinden oluşturulur.
- Herhangi bir programlama dili veya script yazma bilgisine gerek yoktur.
- Ağ ve güvenlik ekiplerindeki geliştirici olmayan personel tarafından kolayca yönetilebilir.
- Syntax hataları, derleme hataları veya runtime crash riski ortadan kalkar.
Merkezi ve Tek Noktadan Yönetim
- Bir kez oluşturulan aksiyon, birden fazla vService üzerinde yeniden kullanılabilir.
- Aksiyonda yapılan bir değişiklik, o aksiyonu kullanan tüm vService'lere otomatik olarak yansır.
- Aksiyonun hangi vService'lerde kullanıldığı "Used in" özelliği ile kolayca izlenir.
- Merkezi yönetim, configuration drift (yapılandırma tutarsızlığı) riskini minimize eder.
Yüksek Güvenilirlik ve Production-Safe
- TR7 engine seviyesinde doğrulanan aksiyonlar, beklenmeyen davranış veya sistem çökmesi riskini ortadan kaldırır.
- Aksiyonlar, production ortamına uygulanmadan önce test edilebilir ve gözden geçirilebilir.
- Form validasyonu ile yanlış konfigürasyon önlenir (invalid IP, hatalı regex, uyumsuz değerler).
- Aksiyonlar audit log'lara kaydedilir, kim ne zaman hangi değişikliği yaptı takip edilir.
Hızlı Deployment ve Değişiklik Yönetimi
- Yeni bir güvenlik kuralı veya trafik politikası dakikalar içinde hayata geçirilebilir.
- Scripting'de olduğu gibi kod review, test, deployment pipeline bekleme süresi yoktur.
- Acil durumlarda (DDoS saldırısı, zero-day exploit) anında aksiyon alınabilir.
Koşullar ile Esnek ve Güçlü Kombinasyonlar
- Aksiyonlar, Conditions ile birleştirildiğinde sınırsız senaryoya uygulanabilir.
- "Eğer kaynak IP X ise ve path /admin ise ve saat 18:00-09:00 arasındaysa → Engelle" gibi karmaşık kurallar basit GUI ile oluşturulur.
- AND/OR mantığı ile çok katmanlı koşul zincirleri kurulabilir.
Smart Variables ile Dinamik İçerik
- Aksiyonlar içinde Variables kullanılarak dinamik değerler üretilebilir.
- Örnek:
X-Client-IP: [İstemci IP adresi]header'ı otomatik olarak her istemci için farklı değer alır. - Smart Variables, istemci IP'si, host, path, query parametreleri, cookie, header değerleri gibi 50+ veri noktasına erişim sağlar.
Yüksek Performans ve Ölçeklenebilirlik
- Aksiyonlar, yüksek throughput ve düşük latency için optimize edilmiştir.
- Büyük ölçekli deploymentlarda (yüksek trafikli web siteleri, enterprise uygulamalar) verimli çalışır.
- Minimal sistem kaynağı tüketimi ile maksimum işlem kapasitesi sağlar.
- Production ortamlarında stabil ve tutarlı performans sunar.
Operasyonel En İyi Uygulamalar
TR7 Aksiyonlarının production ortamlarında verimli ve güvenli kullanılması için aşağıdaki uygulamalar önerilir.
- Açıklayıcı isimler kullanılır. Aksiyonun ne yaptığı adında net belirtilir;
Action1,Testgibi anlamsız isimlerden kaçınılır. - İsimlendirme standardı oluşturulur. Tutarlılık için
[Kategori]_[Amaç]_[Hedef]gibi bir format belirlenir ve ekip genelinde uygulanır. - Koşulsuz aksiyonlar dikkatli kullanılır. Tüm trafiği etkilediğinden performans maliyeti yüksek olabilir; yalnızca global işlemler için tercih edilir.
- Aksiyonlar spesifik koşullarla daraltılır. Aksiyon yalnızca gerekli trafiğe uygulanır; tüm trafik yerine ilgili path/IP ile sınırlanır.
- Regex kullanımı en aza indirilir. Regex CPU maliyeti yüksektir; mümkün olduğunda Exact Match, Start, End tercih edilir.
- Aksiyon sayısı ve log hacmi iyileştirilir. Kullanılmayan aksiyonlar silinir, benzerleri birleştirilir; gereksiz loglar "Conditional Silent Log" ile filtrelenir.
- Block aksiyonlarında anlamlı status code kullanılır. Senaryoya uygun 403/404/429/503 seçilerek bilgi sızdırılması önlenir ve doğru sinyal verilir.
- Hassas bilgiler loglanmaz. IP adresleri için "IP Log Masking" kullanılır; password, token, API key gibi veriler log'lara yazdırılmaz.
- Önce test ortamında denenir ve "Used in" kontrolü yapılır. Değişiklik öncesinde aksiyonun hangi vService'lerde kullanıldığı kontrol edilerek beklenmedik kesintiler önlenir.
- Rollback planı ve monitoring kurulur. Önceki yapılandırma not alınır; aksiyon sonrasında hata oranı ve response time izlenir.
İsimlendirme Kuralları (örneklerle)
Açıklayıcı isimler kullanılır: Aksiyonun ne yaptığı adında net bir şekilde belirtilir.
- ✅ İyi örnekler:
Security_Block_MaliciousIPs,Redirect_HTTP_to_HTTPS,AddHeader_XForwardedFor - ❌ Kötü örnekler:
Action1,Test,New_Action
İsimlendirme standardı oluşturulur: Tutarlılık için bir format belirlenir.
- Format:
[Kategori]_[Amaç]_[Hedef] - Örnek:
Security_Block_AdminPath,Performance_Bandwidth_LimitAPI,Redirect_HTTPtoHTTPS_AllTraffic
Büyük/küçük harf kullanımına dikkat edilir: CamelCase ya da snake_case seçilir ve tutarlı biçimde sürdürülür.
Gerekiyorsa tarih veya sürüm eklenir: Geçici ya da test aksiyonları için.
- Örnek:
Test_CAPTCHA_2024Q1,Temporary_Block_MaintenanceMode_v2
Koşul Kullanımı Stratejileri
Koşulsuz aksiyonlar dikkatli kullanılır: Tüm trafiği etkiler, performans maliyeti yüksek olabilir.
- Kullanım alanı: Güvenlik başlıkları ekleme, tüm trafiğe HTTPS yönlendirme gibi global işlemler.
Aksiyonlar spesifik koşullarla daraltılır: Yalnızca gerekli trafiğe uygulanır.
- Örnek: IP kontrolü tüm trafiğe değil, yalnızca
/adminpath'ine uygulanır.
AND/OR kombinasyonları dikkatli kurulur:
AND (◆): Tüm koşullar sağlanmalı → Daha katı, daha az trafik eşleşir.OR (◇): En az bir koşul sağlanmalı → Daha esnek, daha fazla trafik eşleşir.
Koşul sıralamasına dikkat edilir: Sık eşleşen koşullar öne alınır (early exit optimizasyonu).
Performance İpuçları
Regex kullanımı en aza indirilir: Regex işlemlerinin CPU maliyeti yüksektir.
- Mümkün olduğunda Exact Match, Start, End tercih edilir.
- Karmaşık regex yerine birden fazla basit koşul tercih edilir.
Aksiyon sayısı iyileştirilir: Her aksiyon ek işlem yükü getirir.
- Gereksiz ya da kullanılmayan aksiyonlar silinir.
- Benzer aksiyonlar tek aksiyonda birleştirilir.
Log hacmi denetlenir: Her istek için log yazılması disk I/O yükü getirir.
- Gereksiz loglar "Conditional Silent Log" aksiyonu ile filtrelenir.
- Yalnızca gerekli bilgiler loglanır.
Bandwidth limitleme ayarları doğru yapılandırılır: Çok agresif limitler kullanıcı deneyimini bozar.
Güvenlik Önerileri
Block aksiyonlarında anlamlı status code kullanılır:
403 Forbidden: Yetki yok (IP engelleme, authentication gerekli)404 Not Found: Kaynak yokmuş gibi gösterilir (bilgi sızdırılması önlenir)429 Too Many Requests: Rate limiting503 Service Unavailable: Maintenance modu
Hassas bilgiler loglanmaz:
- IP adresleri için "IP Log Masking" kullanılır.
- Password, token, API key gibi bilgiler log'lara yazdırılmaz.
CAPTCHA ve Rate Limiting birlikte kullanılır: Katmanlı güvenlik için.
Production Deployment
- Önce test ortamında denenir: Production'a geçilmeden önce aksiyon staging ortamında test edilir.
- "Used in" kontrolü yapılır: Aksiyon değiştirilmeden önce hangi vService'lerde kullanıldığı kontrol edilir; bu, beklenmedik servis kesintilerini önler.
- Değişiklik pencereleri kullanılır: Yoğun saatlerde aksiyon değişikliği yapılmaz.
- Rollback planı hazır tutulur:
- Önceki yapılandırma not alınır.
- Monitoring ve alerting kurulur: Aksiyon sonrasında trafik izlenir.
- Hata oranları arttı mı?
- Response time değişti mi?
Yaygın Kullanım Senaryoları
Aşağıda, TR7 Aksiyonlarının canlı ortamlarda en sık kullanıldığı senaryolar yer almaktadır.
Güvenlik Senaryoları
WordPress Admin Paneli Koruma
/wp-admin ve /wp-login.php yollarına sadece ofis IP'lerinden erişim sağla.
DDoS Koruması (Katmanlı)
Yüksek trafiği sınırla, şüpheli IP'leri engelle, abuse yapan kullanıcıları karantinaya al.
- Aksiyon 1: Bandwidth Limitation → İstemci başına 10 Mbps
- Aksiyon 2: Block → IP Intelligence = "Malicious"
- Aksiyon 3: Quarantine → 1 dakikada 100+ istek yapan IP'ler
- Sonuç: Sistemin yük altında bile stabil kalması sağlanır.
Bot Koruması
Kötü amaçlı botları tespit edip CAPTCHA ile doğrulama yap.
- Aksiyon: Advanced Captcha
- Koşullar: Bot Type =
Malicious BotOR Source IP INBlacklist - Sonuç: Şüpheli trafik CAPTCHA doğrulaması yapana kadar engellenir.
Trafik Yönlendirme ve A/B Testing
Beta Kullanıcı Testi
Beta kullanıcılarına özel versiyon sun.
- Aksiyon: Set Path →
/beta/app - Koşul: User Cookie Name =
beta_user - Sonuç: Beta cookie'si olan kullanıcılar farklı Kurum Servisine yönlendirilir.
SSL/TLS ve Güvenlik Başlıkları
SSL Labs A+ Skoru: Güvenlik Başlıkları
HSTS, CSP, X-Frame-Options gibi güvenlik başlıklarını ekleyerek SSL Labs skorunu artır.
- Aksiyon: Manage HTTP Security Headers
- Başlıklar: HSTS + CSP + X-Frame-Options + X-Content-Type-Options
- Sonuç: SSL Labs skoru A+ olur, XSS/Clickjacking koruması sağlanır.
Bakım ve Hata Yönetimi
Planlı Bakım Modu
Planlı bakım sırasında tüm kullanıcılara bilgilendirme sayfası göster.
- Aksiyon: Show Content → Bakım sayfası HTML
- Koşul: Tüm trafik (koşulsuz) veya belirli saat aralığı
- Sonuç: Kullanıcılar bakım hakkında bilgilendirilir, servis kesintisi nazikçe duyurulur.
Sadece Ekip Erişimi (Bakım Sırasında)
Bakım sırasında sadece ofis IP'lerinden erişime izin ver.
- Aksiyon: Show Content → Bakım sayfası
- Koşul: Source IP NOT IN
192.168.10.0/24 - Sonuç: ✅ Ekip → Normal erişim | ❌ Diğer → Bakım sayfası
Kurum Servisi Hataları için Kullanıcı Dostu Sayfa
500/502/503 hatalarında kullanıcıya özel hata sayfası göster.
- Aksiyon: Show Content for Backend Service Errors
- Status Codes: 500, 502, 503
- İçerik: "Şu anda bir teknik sorun yaşıyoruz. Lütfen birkaç dakika sonra tekrar deneyin."
- Sonuç: Teknik hata mesajları yerine kullanıcı dostu mesaj gösterilir.
Otomatik Yönlendirme
Ana Kurum Servisi down olduğunda trafiği farklı bir noktaya yönlendir.
- Aksiyon: Redirect for Backend Service Errors
- Status Codes: 502, 503
- Yönlendirme:
https://backup.example.com - Sonuç: High availability sağlanır, servis kesintisi minimize edilir.
Performans ve İzleme
API Rate Limiting
API endpoint'lerine bant genişliği limiti koy, abuse'i önle.
- Aksiyon: Bandwidth Limitation → istemci başına 8 Mbps
- Koşul: Path STARTS_WITH
/api/ - Sonuç: API'ye aşırı yük yapan kullanıcılar sınırlanır, fair usage sağlanır.
Prometheus ile vService İzleme
vService metriklerini Prometheus/Grafana ile izle.
- Aksiyon: Provide Prometheus Service →
/metricsendpoint - Koşul: Source IP = Prometheus server IP
- Sonuç: Real-time metrikler toplanır, dashboard'larda görselleştirilir.
Nasıl Eklenir?
Yeni bir Aksiyon, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:
- Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
- Load Balancer → Actions → Add adımları takip edilir.
- Aksiyon için benzersiz ve açıklayıcı bir isim girilir.
- Aksiyon tipi seçilir.
- Seçilen Aksiyon tipine göre ilgili değerler yapılandırılır.
Addbutonuna tıklanarak Aksiyon eklenir.
TIP
Hızlı arama ile sayfaya ulaşma
Menüde adım adım gezmek yerine, ekranın sol alt köşesindeki arama çubuğu kullanılarak ilgili sayfaya doğrudan ulaşılır. Arama çubuğu Windows'ta Alt + T, macOS'ta Opt + T kısayolu ile açılır; ardından aranan özelliğin adının yazılması yeterlidir.
Oluşturulan Aksiyon, bir veya birden fazla vService üzerinde kullanılabilir.
Aksiyonları Listeleme Ekranı
Load Balancer → Actions yolu izlenerek TR7 cihazı üzerinde ekli olan tüm Aksiyonların listesine ulaşılır. Bu ekran üzerinde Aksiyon ekleme, düzenleme ve silme gibi işlemler yapılır.
Aksiyon Listeleme Formu
Tablo varsayılan olarak şu kolonlarla açılır:
| Kolon | Açıklama |
|---|---|
| Action Name | Aksiyona verilen ad. |
| Action Type | Aksiyonun tipi (ör. Show Content, Advanced CAPTCHA, Location Redirection). |
| Conditions | Aksiyonun bağlı olduğu koşulların kısa özeti (ör. ↓IP = 10.10.10.0/24 & ↓Path = /api); koşul almayan aksiyon tiplerinde -, koşul alabilen ama koşulu tanımlanmamış aksiyonlarda hücre boş kalır. |
Varsayılan olarak gizlenen kolon bulunmaz; kolon seçicisinde bu üç kolon yer alır. Tablo açılışta sıralanmamıştır; bir kolon başlığına tıklandığında önce azalan, sonra artan sıralama uygulanır, üçüncü tıklamada sıralama kalkar.
Araç çubuğundaki öğeler soldan sağa aşağıdaki sırayla yer alır; son iki öğe (Page Information ve Page Size) tablonun altındaki bilgi şeridinde bulunur.
Columns
Tabloda hangi kolonların gösterileceği seçilir; üç kolon da varsayılan olarak açıktır. Aynı panelde kolonlar sürüklenerek yeniden sıralanır ve kolon başına hizalama seçilir; Fit rows to the page butonuyla satır yüksekliği sayfaya sığdırılır, Reset butonuyla kolon düzeni varsayılana alınır. Düzen kullanıcı bazında saklanır.
Filter
Filter butonu, listede gösterilen Aksiyonları belirli kriterlere göre süzmek için kullanılır; buton etkin filtre sayısını rozetle gösterir. Şeritte üç kart bulunur: Action Type, Condition Criteria ve Used in. Kart başlığında filtre adı ile değer sayısı yer alır; karta tıklandığında değerler satır sayılarıyla altında listelenir. Condition Criteria kartı Aksiyonları koşullarında kullanılan kriterlere göre gruplar: bir Aksiyon koşullarındaki her kriterin altında yer alır, koşulu olmayanlar No Condition, hazır koşullar Predefined Conditions altında toplanır. Used in kartı Aksiyonun kullanıldığı vService adlarını listeler; hiçbir vService'te kullanılmayan Aksiyonlar için Unused Entries seçeneği bulunur. Seçimler kart şeridinin altında, tablonun hemen üstünde kapatılabilir etiketler olarak görüntülenir.
Export
Export butonuna tıklanarak tablo Excel, CSV veya PDF olarak dışa aktarılır. Açılan pencerede Filename, Format ve Data Source ile dışa aktarılacak Columns belirlenir; kalan alanlar biçime göre görüntülenir: CSV'de CSV Separator, Excel'de Excel Sheet Name, PDF'te Page Orientation ve Page Size.
Add
Add butonuna tıklanarak yeni bir Aksiyon oluşturma formu Add sekmesinde açılır.
Delete
Bir veya birden fazla Aksiyon seçilip Delete butonuna tıklandığında ilgili Aksiyonlar silinir. Silmeden önce "Are you sure that you want to delete action object?" onayı istenir; birden fazla Aksiyon seçiliyse metin "Are you sure you want to delete N action objects?" olur.
WARNING
Onay penceresi Aksiyonun kullanım yerlerini göstermez. Silmeden önce önizleme panelindeki Used in sekmesiyle Aksiyonun hangi vService'lerde kullanıldığı kontrol edilmelidir.
Kullanımdaki bir Aksiyonun silinmesi engellenmez; Aksiyon, bağlı olduğu bütün vService'lerin aksiyon listesinden uyarı verilmeden çıkarılır.
Edit
Edit butonuna tıklanarak seçili Aksiyonun düzenleme formu Edit Action sekmesinde açılır. Buton yalnızca tek bir Aksiyon seçildiğinde etkinleşir.
Search
Tablodaki tüm bilgilerde arama yapmak için kullanılır.
RegExp Search
Tabloda bulunan tüm bilgilerde düzenli ifade (RegExp) ile arama yapmak için kullanılır. Sütun bazlı arama ya da kullanım filtresi etkinken bu buton gizlenir.
Column Based Search
Tabloda bulunan bilgilerde sütun bazlı arama yapmak için kullanılır.
Usage Filter
Aksiyonların hangi vService'lere bağlı olduğunu filtrelemek için kullanılır; seçilen vService'te kullanılan Aksiyonlar listelenir, hiçbir vService'te kullanılmayanlar için Unused Entries seçeneği bulunur. Filtre etkinken arama kutusunun yerini seçici alır; simgeye yeniden tıklandığında arama kutusu geri döner.
Page Information
Tanımlı toplam Aksiyon sayısı ile listede görüntülenen Aksiyon sayısına ait bilgiler yer alır: Showing N-M of T records ve seçili Aksiyon sayısı (N selected, seçim yokken Nothing selected). Filtre şeridinde seçim yapılmışsa aynı satıra uygulanan filtre sayısı ile gösterilen/toplam satır bilgisi eklenir.
Page Size
Sayfada görüntülenecek maksimum Aksiyon sayısı seçilir. Varsayılan 100; seçenekler 5, 10, 20, 50, 100, 200, 500 ve All.
Sağ Tık Menüsü
Bir satıra sağ tıklandığında, başlığında Aksiyonun adı bulunan bir menü açılır. Menü açık kaldığı sürece sağ tıklanan satır vurgulu görüntülenir; sağ tıklama listedeki seçimi değiştirmez ve önizleme panelini açmaz. Menüdeki iki işlem de yalnızca sağ tıklanan Aksiyona uygulanır ve her satırda etkindir.
| İşlem | Ne yapar |
|---|---|
| Edit | Aksiyonun düzenleme formunu Edit Action sekmesinde açar; araç çubuğundaki Edit butonunun açtığı formun aynısıdır. Aksiyonun düzenleme sekmesi zaten açıksa yeni sekme açılmaz, açık sekmeye geçilir. |
| Delete | Sağ tıklanan Aksiyonu siler; silmeden önce "Are you sure that you want to delete action object?" onayı istenir. Listede başka Aksiyonlar seçili olsa da yalnızca bu Aksiyon silinir. Kullanımdaki bir Aksiyonun silinmesi engellenmez; araç çubuğundaki Delete maddesinin uyarısı burada da geçerlidir. |
Seçilen Aksiyonun Önizlemesi
Listede bir satıra tıklandığında ekranın sağında Aksiyonun önizlemesi açılır; seçili satıra yeniden tıklandığında panel kapanır. Başlıkta aksiyon simgesi, Aksiyonun adı ve Action alt başlığı, sağ üstte ise tek bir işlem bulunur.
Seçilen Aksiyonun Önizlemesi
| İşlem | Ne yapar |
|---|---|
| Edit | Aksiyonun düzenleme formunu Edit Action sekmesinde açar. |
Panelde dört sekme bulunur; Conditions yalnızca Aksiyonun koşulu varsa, Used in yalnızca Aksiyonu kullanan bir vService varsa görüntülenir:
Aksiyonun ayarlarını satır satır listeler (aşağıdaki tablo).
Aksiyonun bağlı olduğu koşulları ve AND/OR birleşim mantığını gösterir. Sekme adının yanındaki rozet koşul sayısını (karantina koşulu dahil) gösterir; koşul alabilen bir aksiyon tipinde en az bir koşul yoksa sekme hiç görüntülenmez.
Aksiyon üzerindeki kullanıcı işlemlerini (ekleme, düzenleme, silme) zaman çizelgesi olarak listeler.
Aksiyonun kullanıldığı vService'leri listeler. Sekme adının yanındaki rozet kullanım sayısını gösterir; Aksiyonu kullanan bir vService yoksa sekme hiç görüntülenmez.
Details sekmesindeki satırlar sırasıyla aşağıdaki gibidir:
| Satır | Açıklama | Görünme koşulu |
|---|---|---|
| Description | Aksiyonun tek cümlelik özeti; koşulu varsa koşulla başlar (ör. if … = 0: The Maintenance page is served with status 200). | Her zaman |
| Action Name | Aksiyona verilen ad. | Her zaman |
| Action Type | Aksiyonun tipi. | Her zaman |
| Execution Level | On Request ya da On Response. | Çalışma seviyesi seçilebilen aksiyon tiplerinde |
| Tipe özel satırlar | Aksiyon tipinin alanları (ör. Show Content için içerik önizlemesi, Status Code ve Content Type). | Aksiyon tipine göre |
"Used in" sekmesi mutlaka kontrol edilmelidir
Used in alanı, ilgili Aksiyonun hangi vService'ler üzerinde aktif olarak kullanıldığını gösterir. Bu bilgi, Aksiyon üzerinde yapılacak bir değişikliğin hangi servisleri etkileyeceğinin hızlı ve doğru şekilde analiz edilmesini sağlar. Özellikle canlı ortamlarda, Aksiyon ayarlarında yapılacak güncellemeler öncesinde olası servis etkilerinin değerlendirilmesi açısından kritik öneme sahiptir.
Sık Karşılaşılan Sorunlar ve Çözümleri
Aksiyonlar ile çalışırken karşılaşılan bazı yaygın sorunlar ve çözüm önerileri aşağıda yer almaktadır.
WARNING
Problem 1: Aksiyon Çalışmıyor
Belirti:
- Aksiyon oluşturuldu ama trafikte hiçbir etki görülmüyor.
- Beklenen davranış gerçekleşmiyor. (redirect, block, header eklenmiyor, vb.)
Kontrol Listesi:
✅ Aksiyon vService'e eklenmiş mi?
- Aksiyonlar oluşturulduktan sonra mutlaka bir vService'e atanmalıdır.
- Çözüm: vService → Details > Actions → Aksiyonu Seç/Ekle | "Used In" alanını kontrol et.
✅ Koşullar sağlanıyor mu?
- Çözüm: Debug Mode aktif et → HTTP/TCP loglarını incele → Koşul kriterlerini gevşet ve tekrar test et.
✅ Execution Level doğru mu?
- On Request: İstek Kurum Servisine gitmeden önce | On Response: Yanıt üzerinde
- Çözüm: Response header eklemek için "On Response" seçilmeli.
✅ Aksiyon sıralaması doğru mu?
- Aksiyonlar yukarıdan aşağıya işlenir, üstteki engellerse alttakiler çalışmaz.
- Çözüm: Block/Redirect en altta | Header ekleme üstte.
✅ vService durumu aktif mi?
- Çözüm: vService → Status = "Enabled" olmalı.
WARNING
Problem 2: Performance Düştü
Belirti:
- Aksiyon eklendikten sonra response time arttı.
- CPU/Memory kullanımı yükseldi.
- Kurum Servisi timeout'lar başladı.
Kontrol Listesi:
✅ Regex kullanımı aşırı mı?
- Çözüm: Exact match/starts_with kullan | Karmaşık regex'i sadece gerekli path'lerde uygula.
✅ Çok fazla aksiyon var mı?
- Çözüm: Kullanılmayan aksiyonları sil | Benzer aksiyonları birleştir | Koşullarla daralt.
✅ Log volume çok yüksek mi?
- Çözüm: "Conditional Silent Log" kullan | Debug mode sadece gerektiğinde | Log rotation ayarla.
✅ Bandwidth limiting agresif mi?
- Çözüm: Limit değerlerini gözden geçir | Test client ile doğrula.
WARNING
Problem 3: Koşul Eşleşmiyor
Belirti:
- Koşul doğru gibi görünüyor ama aksiyon tetiklenmiyor.
- Bazı isteklerde çalışıyor, bazılarında çalışmıyor.
Kontrol Listesi:
✅ Case-sensitivity
- Koşullar default case-sensitive →
/Admin≠/admin - Çözüm: Case-insensitive seçeneğini aktif et.
✅ Smart Variable değeri beklenenden farklı
- Çözüm: Debug log'larda değeri kontrol et |
[Host]port içerebilir:example.com:443
✅ AND/OR operatörleri yanlış
- AND: Tümü sağlanmalı | OR: En az biri sağlanmalı.
- Çözüm: Mantığı doğrula, test case'leri yap.
WARNING
Problem 4: Beklenmeyen Davranış
Belirti:
- Aksiyon farklı şekilde çalışıyor.
- İstenen sonuç elde edilemiyor.
Kontrol Listesi:
✅ Aksiyon tipi doğru seçilmiş mi?
- "Set Header" ≠ "Add Header" | "Redirect" ≠ "Rewrite Path"
- Çözüm: Aksiyon dökümanını oku.
✅ Smart Variable formatı doğru mu?
- Çözüm: Köşeli parantez kullan:
[İstemci IP adresi]| Büyük/küçük harf eşleşmeli.
✅ Multiple aksiyonlar çakışıyor mu?
- Çözüm: Aksiyon sıralamasını ve mantığını gözden geçir.
TIP
Debug İpuçları: Adım Adım Troubleshooting
1. Debug Mode Aktif Et
- vService → Details → Debug Mode = Enabled
- Debug Mode loglarında detaylı bilgi görünür.
2. Logları İncele
- Monitor Mode → İlgili vService → Logs & Tracking → HTTP/TCP Logs
3. Traffic Inspection Kullan
- "Advanced Traffic Inspection" aksiyonu ekle → Problemi reproduce et → Logları incele.
4. Test Client ile Kontrollü Test
- curl/Postman ile spesifik istek gönder → Header/cookie manuel ekle → Expected vs Actual karşılaştır.
5. Incremental Testing
- Tüm koşulları kaldır, sadece aksiyonu test et → Koşulları tek tek ekle → Hangisinde problem var bul.
6. "Used in" Kontrolü
- Aksiyonun hangi vService'lerde kullanıldığını kontrol et → Yanlış vService'e eklenmiş olabilir.
