Sunucu çalışıyor ama TR7 onu down gösteriyor; neden?
Kısa cevap
Neden, profil ayarlarının sunucunun gerçek davranışıyla uyuşmaması ya da denetimin sunucuya ulaşamamasıdır: yanlış port ya da yol, Expected Status Codes listesinde olmayan bir kod (yönlendirme dahil), tutmayan içerik kontrolü, eksik Virtual Domain (Host/SNI), doğrulanamayan sertifika, yanıt süresinden kısa Timeout; ağ tarafında sunucu firewall'u, yanlış Route Table, Use Different IP for Health Check'teki eski bir adres ya da PROXY protokolü bekleyen bir port. Hangisi olduğu Kurum Servisi önizlemesindeki Health Check kartında ve Health Checks sekmesindeki hata metninde yazar.
Nasıl Çalışır?
TR7 bir denetimi, profildeki her koşul sağlanırsa başarılı sayar; koşullardan biri tutmazsa denetim hata metniyle başarısız olur ve art arda Required Failures kadar başarısızlıkta Kurum Servisi Error (kırmızı) olur. Aşağıdaki tablo hata metinlerini ve çözümlerini eşleştirir.
| Neden | Belirti / hata metni | Çözüm |
|---|---|---|
| Durum kodu listede yok | Unexpected status code; sağlık adresi 301/302 dönüyor | Kodu Expected Status Codes listesine eklemek ya da doğru yolu yazmak (HTTP health check'te belirli bir status code'u (ör. 200, 302) nasıl beklerim?) |
| İçerik kontrolü tutmuyor | HTTP(s) content check failed ya da JSONata check returned false | Aranan metni (büyük/küçük harf) ya da JSONata ifadesini düzeltmek (Yanıt içeriğinde belirli bir metni (ör. "OK") nasıl doğrularım?) |
| Host/SNI eksik | Sunucu IP ile gelen isteğe 404 ya da varsayılan site dönüyor | Profile Virtual Domain (Host/SNI) eklemek (Health Check'te Host / SNI belirtebilir miyim (Virtual domain)?) |
| Sertifika doğrulanamıyor | Certificate error | CA'yı kaydetmek ya da Verify Server Certificate ayarını gözden geçirmek (HTTPS health check'te sertifika doğrulaması yapılabilir mi?) |
| Timeout kısa | Request timeout error; sunucu yük altında yavaş | Timeout'u yük altındaki yanıt süresinin üzerine çıkarmak (120 sn'nin altında) |
| Yanlış port / yol | Bağlantı reddi ya da 404 | Address, Use Different IP for Health Check ve Path + Query alanlarını kontrol etmek |
| Firewall | Zaman aşımı; denetim isteği sunucuya ulaşmıyor | Health check'in kaynak IP'sine izin vermek (Sunucu firewall'unda health check için hangi IP'lere izin vermeliyim?) |
| Yanlış route table | Sunucuya ulaşılamıyor | Kurum Servisinin Route Table alanını sunucuya erişen tabloyla değiştirmek |
| PROXY protokolü | HTTP denetimi başarısız, sunucu PROXY başlığı bekliyor | Sağlık adresini PROXY gerektirmeyen bir porttan sunmak |
| HTTP/2 seçili | Sunucu HTTP/2 desteklemiyor | HTTP Version alanını HTTP/1.1 yapmak |
| Expect negative result açık | Sağlıklı sunucu down görünüyor | Seçeneği kapatmak ("Expect Negative Result" ne işe yarar?) |
| Preparing (sarı) | Profil yeni atanmış ya da değiştirilmiş | Art arda Required Successes kadar başarılı denetimi beklemek |
Teşhis Adımları
- Health Check kartı: Load Balancer → Backend Services ekranında Kurum Servisine tıklanır; önizlemedeki Health Check kartının hata şeridinde son hata, HTTP denetimlerinde Details sekmesindeki Status Code satırında son alınan kod görülür.
- Health Checks sekmesi: Aynı önizlemedeki Health Checks sekmesinde hatanın ne zaman başladığı ve metni görülür.
- İsteği TR7'den tekrarlamak: WEB-CLI'da
sys-cmd route-table setile Kurum Servisinin route table'ı seçilir (route-table set); ardından aynı istek gönderilir, örneğinsys-cmd curl -sv -H "Host: www.example.com" http://192.0.2.20:8080/health(sys-cmd curl). - Sunucu tarafı: Erişim logu ya da
tcpdump -n host <TR7-IP>ile denetim isteklerinin gelip gelmediğine ve verilen yanıta bakılır. - Cluster: Health göstergesinin iki yarısından yalnızca biri kırmızıysa sorun o cihazın kaynak adresine uygulanan firewall kuralı ya da o cihazın yönlendirmesidir (Health durumu göstergesi).
Sık Karıştırılan Noktalar
- "Tarayıcıdan açılıyor, o hâlde sağlıklı." Tarayıcı yönlendirmeleri izler ve doğru Host başlığını gönderir; health check yönlendirme izlemez ve Virtual domain boşsa Host olarak sunucunun adresini gönderir.
- "Gri gösterge down demektir." Gri, sonuç yok (HC disabled / No data) anlamına gelir; koyu gri güç simgesi profil atanmadığını gösterir.
- "Port açıksa HTTP denetimi de geçer." Durum kodu ve içerik de doğru olmalıdır.
Dokümantasyonda nasıl yapılır
