Ana içeriğe geç

Sorun Giderme

Bağlantı Sorunları

"Cannot connect to Consul"

Error: list kv prefix "config/": dial tcp 127.0.0.1:8500: connect: connection refused

Neden: Consul çalışmıyor veya adres yanlış.

Çözüm:

# Consul'un çalıştığını doğrula
curl http://localhost:8500/v1/status/leader

# Doğru adresi kullan
consul-guardian watch --consul-addr http://consul-adresiniz:8500

"Permission denied" veya "ACL token not found"

Neden: ACL token eksik veya yetkisiz.

Çözüm:

export CONSUL_GUARDIAN_CONSUL_TOKEN=token-degeriniz

Minimum ACL politikası:

key_prefix "" { policy = "read" }

Watch Sorunları

"cannot create empty commit: clean working tree"

Neden: Guardian değişiklik algıladı ama dosyalar zaten aynı içeriğe sahip.

Zararsızdır. İlk başlatmada Git repo zaten güncel olduğunda görülür. Yeni değişiklikler gelince kaybolur.

Değişiklikler algılanmıyor

Kontrol edin:

  1. Prefix doğru mu? config/production/db key'i için prefix config/ olmalı.
  2. ACL token o prefix'e yetkili mi?
  3. Consul yanıt veriyor mu? curl http://consul:8500/v1/kv/config/?keys

Dashboard Sorunları

Boş sayfa görünüyor

Tarayıcı console'unu açın (Mac: Cmd+Option+J) ve hata mesajını kontrol edin.

Sık nedenler:

  • Cache: Cmd+Shift+R ile hard refresh yapın
  • API yanıt vermiyor: curl http://localhost:9090/api/status
  • Frontend build edilmemiş: cd frontend && npm run build

WebSocket sürekli kopuyor

Neden: Proxy veya load balancer idle bağlantıları kapatıyor.

Çözüm (nginx):

location /ws {
proxy_pass http://guardian:9090;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}

Restore Sorunları

"CAS conflict in batch"

Neden: Restore sırasında başka bir süreç aynı key'i değiştirdi.

Çözüm: Restore'u tekrar deneyin. Guardian, sessiz üzerine yazmayı önlemek için CAS kullanır.

Performans

Yüksek bellek kullanımı

Guardian son 500 değişikliği bellekte tutar.

Çözümler:

  • Daha az prefix izleyin
  • exclude_prefixes ile yoğun değişen key'leri hariç tutun
  • Poll süresini artırın: --wait-time 10m