Elasticsearch: Failed Node Durumunda Bakılması Gereken Koşullar

Elasticsearch cluster’ınızdaki sunucunuz kapalı olduğunda ait loglarda aşağıdaki hatalarla karşılaşabilirsiniz. org.elasticsearch.action.FailedNodeException: Failed node [node’un_uuid’si] org.elasticsearch.transport.RemoteTransportException org.elasticsearch.ElasticsearchException: failed to load started shards org.elasticsearch.ElasticsearchException: javaio.IOException: failed to read [id:XX, legacy:false, file:/opt/apinizerInstances/ApinizerLogInstance2/data/nodes/nodes/0/indices/NY7u4CtlQtG_bwfhsxGueA/_state/state-XX.st] java.nio.file.NoSuchFileException: /opt/apinizerInstances/ApinizerLogInstance2/data/nodes/nodes/0/indices/NY7u4CtlQtG_bwfhsxGueA/_state/state-XX.st java.lang.OutOfMemoryError: unable to create new native thread [2019-02-15T08:02:58,283][ERROR][o.e.t.n.Netty4Utils ] fatal error on the network layer   Bu hataların tetiklenmesine birçok etmen neden olabilir. Hataların…

Apinizer ile Web Servise JWT Metoduyla Authentication ve CORS Poliçesi Ekleme

Adım 1: Fake API oluşturma API Catalog menüsünden API Builder seçeneğine tıklanarak Person API adlı sahte bir API oluşturulur. Sonrasında bu API’nin geçidi oluşturulmalıdır. Burada önemli olan istek gönderilecek uç noktanın kullanıcı adı ve şifre bilgilerinin içeren parametrelerinin olmasıdır. Bu değerler isteğin diğer bölgelerinden de alınabilir. Postman üzerinden istek gönderildiğinde aşağıdaki sonuç görülür.   Adım 2…

Apinizer Canlı Ortam Senaryosu Gerçekleştirimi

Veri tabanında kullanıcı adları, şifreleri, atanan roller ve admin bilgileri bulunmaktadır. Salary API ile veri tabanı ile bilgileri doğrulanan kullanıcıların maaş ödemesi yapılmaktadır. Bu senaryoda aşağıdaki işlemler gerçekleştirilecektir. Salary API‘nin idetityNumber parametresi ile kullanıcının TC kimlik numarası, salaryRate parametresi ile maaş miktarı bilgisi girilir. users adlı veri tabanındaki tablonun da aşağıdaki görüntüsü yer almaktadır. Senaryonun…

Elasticsearch: Shard & Replica Sayılarını Ayarlama

Aşağıda indexlerin, shard veya replica sayılarının değiştirilebileceği durumlar yer almaktadır. İndex oluştururken; İndex oluşturulduğu zaman shard ve replicaların sayısı belirtilebilir, index oluşturulduktan sonra dinamik olarak replica sayısı değiştirilebilir ama shard sayısı değiştirilememektedir. Eğer bu ayar yapılmazsa varsayılan olarak index oluşturulduğunda 5 primary shard ve her shard için 1 replica shard oluşturulur. curl -XPUT “http://10.10.10.10:9200/index_adi” -H ‘Content-Type:…

Elasticsearch Konfigurasyon Ayarları 4: Disk Kullanımı Ayarları

1. İhtiyaç olmayan özellikleri kapatmak Varsayılan olarak, indexlenen alanlar üzerinde arama ve sorgulama işlemleri yapılabilir. Mesela integer tipindeki bir alana histogram sorgusu yapılacak ama filter sorgusu uygulanmayacaksa aşağıdaki örnektedeki gibi mapping işlemi yapılarak index özelliğine false değeri atanabilir. Bu alan üzerinde sorgulama işlemi yapılmaz.Böylece hem daha az disk kullanılmış olur hem de indexleme işlemi hızlanır. curl -XPUT…

Elasticsearch Konfigurasyon Ayarları 3: Sistem Ayarları

Elasticsearch’ü varsayılan ayarlar ile kurulur ve localhost adresinden çalışır ve sizin geliştirme ortamında olduğunuzu varsayar. localhost adresinden çalışsanız bile network.host ya da transport.host özellikleri ayarladığızda  da node’un, üretim (production) modunda olduğunu düşünür. Bu ayarlar, node’un diğer sunucularla etkileşim kurması ve node’a erişebilmek için önemlidir. Geliştirme modunda iken geliştiricinin konfigure etmediği ve varsayılan olarak gelen sistem ayarları, JVM ve Elasticsearch ayarları…

Elasticsearch Konfigurasyon Ayarları 2: Veri Kaybına Karşın Önlemler

Cluster’ın çalışması için gerekli master node sayısını belirleme Network de oluşan herhangi bir sebeplerden dolayı bir cluster daki node’lar birbirinden ayrılıp kendileri cluster oluşturarak çalışmaya devam ederlerse “split brain” durumu oluşur ve  veri kaybı yaşanır. Bunu önlemek amacıyla, böyle bir senaryoda cluster’ın çalışmaya devam etmesi için bir cluster da olması gereken minumum master node özelliği ve değeri…

Elasticsearch Konfigurasyon Ayarları 1

Elasticsearch kurulduğunda varsayılan ayarlar ile cluster oluşturulur. /config dizininin altındaki dosyalardan node konfigüre edilir. Bazı ayarlar node çalışırken, Cluster Update Settings API üzerinden de yapılabilir. Bazı özelliklere ait değerlerin ${degiskenAdi} şeklinde gösterimi sistem değişkeninden veriyi aldığını ifade eder. 1.Dosya dizinlerinin ayarlanması Verilerin saklanacağı dosya dizini ya da dizinleri tanımlanır. Birden fazla dizin yazarken virgül kullanılır. path.data:dizin Logların tutulacağı dosya dizini…

Elasticsearch: Faydalı Komutlar

curl -XGET “http://sunucu_ip:sunucu_port/asagidaki_uc_noktalarini_buraya_yaziniz”   _cat APIs   Bu API ile kullanılan query parametreler; v – Dönen sonucun sütun başlıklarını gösterir. h=sütunAdi,ip,port – İstenilen bilgilere ait sütunlar gelir. bytes=kb – Cevapta yer alan byte birimleri istenilen birime dönüştürülebilir. time=s –  Cevapta yer alan zaman birimleri istenilen birime dönüştürülebilir. format=json – Cevap varsayılan olarak text halinde gelir. json,…

Elasticsearch: Disk Kapasitesinin Aşılmasını Önleme

Elasticsearch sunucunuza ayırdığınız disk alanı dolduysa, sunucunuza ne olur?  Elasticsearch sahip olduğu disk allocation decider ile bir node’daki shard’ın başka bir node’a yerleştirilmesi için bir engel olup olmadığına bakar. Kurtarma (recovery) işleminde ya da node eklendiğinde veya silindiğinde de bu karar vericiler ile karşılaşılır. Bu özellik, varsayılan olarak etkindir. cluster.routing.allocation.disk.threshold_enabled:true   Shard’ların node’dan ayrılma işlemini kontrol ederken…