Elasticsearch Cluster Hatası: "Cluster Blocked" Hatası
Neden Oluşur?
Bu hata, Elasticsearch’ün veri bloklarını okuma/yazma işlemi yapamayacak duruma gelmesinden kaynaklanır. Çoğu zaman, "disk watermark" limitleri veya bellek kısıtlamaları yüzünden cluster "read-only" moda geçer.
Çözüm Adımları:
1. Disk Alanını Kontrol Et:
İlk olarak, sisteminizde yeterli boş alan olup olmadığını kontrol etmeniz gerekir. Disk alanının dolması, Elasticsearch'ün düzgün çalışmasını engeller.
```bash
df -h
```
2. Cluster'ı Yazılabilir Hale Getir:
Eğer disk problemi yoksa, cluster’ın "read-only" durumdan çıkması için şu komutu kullanabilirsiniz:
```bash
curl -X PUT "localhost:9200/_settings" -H 'Content-Type: application/json' -d '{
"settings": {
"index.blocks.read_only": null
}
}'
```
Bu, "read-only" modunu devre dışı bırakır ve veri yazmaya devam edebilirsiniz.
3. JVM Bellek Ayarlarını Yapılandır:
Elasticsearch için JVM bellek ayarları da çok önemlidir. Elasticsearch’ün yeterli bellek alması, verimli çalışabilmesi için kritik. `jvm.options` dosyasını düzenleyerek bellek limitlerini artırmayı deneyebilirsiniz.
```bash
sudo nano /etc/elasticsearch/jvm.options
```
Burada, heap boyutunu artırarak bellek sorunlarını çözebilirsiniz.
```bash
-Xms4g
-Xmx4g
```
Bu ayar, Elasticsearch’ün 4 GB bellek kullanmasını sağlar.
Elasticsearch Cluster Hatası: "Zen Discovery" Hatası
Neden Oluşur?
Genellikle, yanlış yapılandırılmış network ayarları veya firewall (güvenlik duvarı) engellemeleri nedeniyle oluşur.
Çözüm Adımları:
1. Network Ayarlarını Gözden Geçir:
Elasticsearch'ün doğru bir şekilde birbirini keşfetmesi için gerekli olan ağ yapılandırmalarını kontrol edin. `elasticsearch.yml` dosyasındaki aşağıdaki parametreleri gözden geçirin.
```bash
discovery.type: zen-discovery
discovery.zen.ping.unicast.hosts: ["host1:9200", "host2:9200"]
```
2. Firewall Kurallarını Kontrol Et:
Eğer Elasticsearch node'larınız birbirlerini bulamıyorsa, firewall (güvenlik duvarı) kurallarını kontrol edin. 9200 portunun açık olduğundan emin olun.
```bash
sudo ufw allow 9200
```
Elasticsearch Cluster Hatası: "Node Not Found" Hatası
Neden Oluşur?
Bu hatanın başlıca nedeni, Elasticsearch’ün doğru IP adresi veya hostname ile bağlanamamasıdır.
Çözüm Adımları:
1. IP Adresini Kontrol Et:
Elasticsearch node'larınızın doğru IP adreslerine sahip olduğundan emin olun. Eğer hostname kullanıyorsanız, DNS yapılandırmalarını kontrol edin.
2. Elasticsearch Node Yapılandırması:
`elasticsearch.yml` dosyanızda `network.host` ayarlarını doğru şekilde yapılandırın.
```bash
network.host: 192.168.1.10
```
Bu ayar, Elasticsearch’ün doğru ağ arayüzünü kullanmasını sağlar.
Elasticsearch Cluster Hatası: "Bootstrap Check" Hatası
Neden Oluşur?
Bootstrap kontrol hataları genellikle Elasticsearch’ün varsayılan ayarlarının üzerinde çalışmaya başlamadan önce bazı yapılandırmaların yapılması gerektiğini gösterir.
Çözüm Adımları:
1. `bootstrap.memory_lock` Parametresini Etkinleştir:
Elasticsearch’ün belleğini kilitlemesi, performans açısından önemlidir. `bootstrap.memory_lock` parametresini etkinleştirerek bu hatayı düzeltebilirsiniz.
```bash
bootstrap.memory_lock: true
```
2. Sistem Kaynaklarını Gözden Geçir:
Eğer hala hatayı alıyorsanız, Elasticsearch’ün sistem kaynaklarının yeterli olup olmadığını kontrol edin.
```bash
ulimit -l unlimited
```
Bu komut, bellek kilidi limitlerini kaldıracaktır.
Sonuç
Umarım bu yazı, karşılaştığınız Elasticsearch hatalarını çözmede size yardımcı olmuştur. Sorularınız varsa, yorumlarda belirtmeyi unutmayın. Her zaman yardımcı olmaktan mutluluk duyarım!