Elasticsearch Cluster Nedir?
En Yaygın Elasticsearch Cluster Hataları
Eğer bir "Cluster Health is red" hatası alıyorsanız, bu genellikle Elasticsearch’ün belirli bir node’un veya shard’ın doğru şekilde çalışmadığını gösterir. Bu durum, Elasticsearch’ün veri kaybı yaşadığını ya da replikaların eşlenmediğini belirtebilir.
Çözüm:
- İlk olarak, Elasticsearch'ün log dosyalarını kontrol edin. `/var/log/elasticsearch/` dizininde size sorun hakkında daha fazla bilgi verecek hatalar bulabilirsiniz.
- Eğer bir veya daha fazla node offline ise, cluster'ın geri kalan kısmı replikaları oluşturamaz. Node'ları yeniden başlatın ve Elasticsearch'ün sağlıklı bir şekilde yeniden çalışıp çalışmadığını kontrol edin.
- Eğer shard'lar bozulmuşsa, `curl -XGET 'localhost:9200/_cluster/health?pretty'` komutuyla sağlık durumunu kontrol edebilirsiniz. Durum hala "red" ise, replikaları manuel olarak yeniden oluşturabilirsiniz.
2. Memory (Heap) Limitations
Elasticsearch, yüksek miktarda bellek kullanır. Yetersiz bellek kaynakları, performans düşüşüne veya node’ların çökmesine yol açabilir. Bu durum da sıkça karşılaşılan hatalardan biridir.
Çözüm:
- Elasticsearch'ün JVM heap boyutunu doğru ayarladığınızdan emin olun. `jvm.options` dosyasındaki `-Xms` ve `-Xmx` değerlerini uygun şekilde ayarlayın. Çoğu durumda, bu değerin toplam sistem RAM'inizin %50'si kadar olması önerilir. Örneğin:
-Xms4g
-Xmx4g
- Ayrıca, sistemin fiziksel bellek kapasitesini kontrol edin. Eğer Elasticsearch node'unuz fiziksel bellek yetersizliği yaşıyorsa, sistemde daha fazla RAM eklemeyi düşünebilirsiniz.
3. Disk Space Issues
Elasticsearch, verileri disk üzerinde saklar ve disk alanı tükenirse, sistem sağlıklı çalışamayabilir. Bu da genellikle "disk watermark exceeded" hatasıyla kendini gösterir.
Çözüm:
- Elasticsearch disk kullanımı belirli bir seviyeyi aştığında, otomatik olarak yazmayı durdurur. Bunun önüne geçmek için disk kullanımını izleyin ve verileri düzenli olarak arşivleyin.
- Eğer disk alanı yeterli değilse, diskinizi genişletmek veya eski verilere sahip index'leri silmek gerekecektir.
4. Node Failures (Node Çökmesi)
Eğer bir veya daha fazla node çöküyorsa, Elasticsearch cluster’ınızın performansı büyük ölçüde etkilenebilir. Genellikle bu tip bir hata, node’ların birbirleriyle olan bağlantılarında sorunlar olduğunda meydana gelir.
Çözüm:
- Elasticsearch node’larının birbirleriyle düzgün bir şekilde iletişim kurabildiğinden emin olun. `elasticsearch.yml` konfigürasyon dosyanızdaki `discovery.seed_hosts` ayarlarını kontrol edin.
- Node’un hala çalışıp çalışmadığını `curl -XGET 'localhost:9200/_cat/nodes?v'` komutuyla kontrol edebilirsiniz.
Elasticsearch Cluster Sağlığını İzleme
Aşağıdaki komutlarla cluster sağlığını kontrol edebilirsiniz:
curl -X GET "localhost:9200/_cluster/health?pretty=true"
Eğer her şey yolundaysa, `"status": "green"` dönecektir. Ancak bir sorun varsa, `"status": "yellow"` veya `"status": "red"` alırsınız.