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:
- Prefix doğru mu?
config/production/dbkey'i için prefixconfig/olmalı. - ACL token o prefix'e yetkili mi?
- 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_prefixesile yoğun değişen key'leri hariç tutun- Poll süresini artırın:
--wait-time 10m