Health Check istekleri backend loglarımı dolduruyor; ne yapabilirim?
Kısa cevap
Denetim istekleri sunucu tarafında süzülebilir ya da azaltılabilir. HTTP ve HTTPS denetimleri tr7-health-check/2.0 User-Agent değeriyle gelir ve web sunucusunda bu değere göre loglardan dışlanabilir; sağlık adresi ayrı bir yolda tutulup o yol için erişim logu kapatılabilir; Health Check Source IP ile sabit bir kaynak adres seçilip loglardan dışlanabilir; denetim Use Different IP for Health Check ile ayrı bir porta yönlendirilebilir ya da Period artırılabilir. Enable HC Logs'u kapatmak yalnızca TR7'deki kayıtları durdurur; sunucuya giden istekleri azaltmaz.
Sorun: Sunucu Logları Denetim Satırlarıyla Doluyor
Varsayılan ayarlarla (Period 1 sn) her Kurum Servisi her saniye denetlenir; bu, sunucu başına günde 86.400'e yakın istek demektir ve cluster'da her cihaz ayrı denetlediği için sayı iki katına çıkar. Bu satırlar erişim loglarını şişirir, gerçek trafiği incelemeyi zorlaştırır ve log depolama maliyetini artırır.
Çözüm: 5 Yöntem
Yöntem 1–4 satırları sunucu tarafında ayırır ve birlikte kullanılabilir; Yöntem 5 istek sayısını azaltır.
| Durumunuz | Uygun yöntem |
|---|---|
| Web sunucusunda User-Agent'a göre süzebiliyorum | Yöntem 1: User-Agent ile süzmek |
| Sağlık adresi için logu kapatabiliyorum | Yöntem 2: Ayrı yol ve log kapatma |
| Kaynak adrese göre süzmek istiyorum (HTTP dışı türler dahil) | Yöntem 3: Sabit kaynak IP |
| Sunucu sağlık bilgisini loglanmayan ayrı bir portta yayınlayabiliyor | Yöntem 4: Ayrı port |
| İstek sayısını azaltmak istiyorum | Yöntem 5: Period'u artırmak |
Yöntem 1: User-Agent ile Süzmek Önerilen
- Nasıl çalışır HTTP ve HTTPS denetimleri
tr7-health-check/2.0User-Agent değeriyle gelir; web sunucusunun log yapılandırmasına bu değeri taşıyan istekleri erişim loguna yazmayan bir koşul eklenir. Farklı bir değer istenirse profildeki HTTP Headers alanıylaUser-Agentbaşlığı değiştirilir. - Nerede açılır Web sunucusunun log yapılandırması · gerekirse profil → HTTP Headers
- Gereksinim Web sunucusunun koşullu loglamayı desteklemesi
- vService tipi Tümü
Adım adım yapılandırma
Web sunucusunda User-Agent değeri tr7-health-check ile başlayan istekler erişim logundan dışlanır; örnekler aşağıdaki panelde yer alır.
Web sunucusunun yapılandırması yeniden yüklenir (ör. nginx -s reload, apachectl graceful).
Örnekler User-Agent değeri tr7-health-check ile başlayan istekleri erişim loguna yazmaz; log dosyası yolu sunucudaki mevcut değerle değiştirilir.
# http bloğunda
map $http_user_agent $loggable {
~^tr7-health-check 0;
default 1;
}
# server bloğunda
access_log /var/log/nginx/access.log combined if=$loggable;SetEnvIf User-Agent "^tr7-health-check" tr7hc
CustomLog "logs/access_log" combined env=!tr7hcResmi dokümanlar
Nginx'te access_log yönergesinin if= parametresi koşul "0" ya da boş olduğunda isteği loglamaz (ngx_http_log_module). Apache'de CustomLog … env=!ad yalnızca ortam değişkeni tanımlı olmayan istekleri loglar (mod_log_config, mod_setenvif).
Doğrulama
Erişim logunda health check satırı aranır.
grep -c tr7-health-check /var/log/nginx/access.logYeniden yüklemeden sonra yeni satır eklenmezYöntem 2: Ayrı Yol ve Log Kapatma
- Nasıl çalışır Health check ayrı bir yola (ör.
/health) yapılır ve web sunucusunda yalnızca o yol için erişim logu kapatılır (ör. Nginx'telocation = /health { access_log off; }). - Nerede açılır Profil → Path + Query · web sunucusunun log yapılandırması
- Gereksinim Sağlık adresinin ayrı bir yolda olması (Uygulamamda health check için nasıl bir /health endpoint'i tasarlamalıyım?)
- vService tipi Tümü
Adım adım yapılandırma
Load Balancer → Profiles → Health Checks ekranında profil seçilip Edit'e tıklanır.
Path + Query alanına sağlık yolu yazılır (ör. /health).
Edit butonuna tıklanır.
Web sunucusunda bu yol için erişim logu kapatılır ve yapılandırma yeniden yüklenir.
Doğrulama
Erişim logunda sağlık yoluna ait yeni satır oluşmaz; Backend Services listesinde durum OK kalır.
/health satırı yok · OK (yeşil)Yöntem 3: Sabit Kaynak IP
- Nasıl çalışır Denetimler seçilen TR7 IP'sinden gelir; sunucu bu adresi loglardan dışlar. HTTP dışındaki türlerde (TCP, LDAP, SMTP…) de kullanılabilir.
- Nerede açılırLoad Balancer → Backend Services → Edit → Details → Health Check Source IP → Device IP
- Gereksinim Kurum Servisinin Route table'ında bir TR7 IP'si
- vService tipi Tümü
Adım adım yapılandırma
Load Balancer → Backend Services ekranında Kurum Servisine sağ tıklanıp Edit seçilir.
Details bölümündeki Health Check Source IP alanında Device IP seçilir ve açılan listeden adres seçilir; adımların ayrıntısı ve WEB-CLI karşılığı için: Health Check paketleri hangi kaynak IP'den gider; bunu değiştirebilir miyim?. Cluster'da her cihaz bu kaydın kendi adresini kullanır.
Edit butonuna tıklanır.
Web sunucusunun log yapılandırmasında bu kaynak adresler dışlanır (ör. Nginx'te map $remote_addr $loggable, Apache'de SetEnvIf Remote_Addr).
Doğrulama
Erişim logunda seçilen kaynak adresten gelen yeni satır oluşmaz.
Seçilen TR7 IP'sinden satır yokYöntem 4: Ayrı Port
- Nasıl çalışır Denetim, loglaması ayrı yapılandırılan ya da kapalı olan bir porta yönlendirilir; veri trafiği asıl porta gitmeye devam eder.
- Nerede açılırLoad Balancer → Backend Services → Edit → Details → Use Different IP for Health Check → Different Address
- Gereksinim Sunucunun ayrı bir portta sağlık bilgisi yayınlaması
- vService tipi Tümü
Adım adım yapılandırma
Load Balancer → Backend Services ekranında Kurum Servisine sağ tıklanıp Edit seçilir.
Details bölümündeki Use Different IP for Health Check alanında Different Address seçilir; sunucunun IP'si ve sağlık portu girilir. Ayrıntı için: Health Check için sunucunun farklı bir IP'sini/portunu kontrol edebilir miyim (Use Different IP for Health Check)?.
Edit butonuna tıklanır.
Doğrulama
Asıl portun erişim logunda denetim satırı oluşmaz; Backend Services listesinde durum OK kalır.
Asıl logda denetim satırı yok · OK (yeşil)Yöntem 5: Period'u Artırmak
- Nasıl çalışır Denetim sıklığı azaltılarak log satırı sayısı düşürülür; karşılığında arıza daha geç fark edilir (Bir sunucu kaç saniyede "down" kabul edilir, bunu nasıl hesaplarım?).
- Nerede açılırLoad Balancer → Profiles → Health Checks → profil → Edit → Period
- Gereksinim Tespit süresinin uzamasının kabul edilebilir olması
- vService tipi Tümü
Adım adım yapılandırma
Load Balancer → Profiles → Health Checks ekranında profil seçilip Edit'e tıklanır.
Period örneğin 5 saniyeye çıkarılır; istek sayısı yaklaşık beşte bire iner. Değer 120 saniyenin altında tutulur.
Edit butonuna tıklanır; profili kullanan bütün Kurum Servisleri etkilenir.
Doğrulama
Erişim logunda dakikadaki denetim satırı sayısı düşer.
Dakikada yaklaşık 12 satır (Period 5 sn, tek cihaz)Sık Yapılan Hatalar
- Enable HC Logs'u kapatarak çözmeye çalışmak. Bu ayar yalnızca TR7'deki kayıtları durdurur; sunucuya giden istekler aynı kalır (Enable HC Logs ne işe yarar; kapatmalı mıyım?).
- Health check'i tamamen kaldırmak. Sunucu arızaları fark edilmez ve kapalı sunuculara trafik gönderilir.
- HTTP'den TCP'ye geçmek. TCP denetimi HTTP log satırı üretmez ama uygulama arızasını da yakalamaz.
Dokümantasyonda nasıl yapılır
