Elasticsearch Endeksleri Nasıl Oluşturulur

How Create Elasticsearch Indices



Elasticsearch, günlük analizi ve arama için kullanılan popüler ELK yığınının bir parçasıdır. Uygulamalar ve sistemler, sorun giderme ve izleme sorunları için çok yararlı olabilecek verileri sürekli olarak günlüğe kaydeder. ELK yığınını kullanarak bu görevleri hızlı ve kolay bir şekilde gerçekleştirmek için en iyi araçlara sahipsiniz.

Bu hızlı eğitimde, Elasticsearch'e, özellikle Elasticsearch motorunda dizinlerin nasıl oluşturulacağına bakacağız. Bu öğreticiyi takip etmek için ELK yığını hakkında kapsamlı bilgiye ihtiyacınız olmasa da, aşağıdaki konulara ilişkin temel bilgilere sahip olmak avantajlı olabilir:







  • Terminali, özellikle cURL'yi kullanma
  • API'ler ve JSON hakkında temel bilgiler
  • HTTP İsteği Yapma

NOT: Bu öğretici ayrıca, sisteminizde Elasticsearch'ün kurulu ve çalışır durumda olduğunu varsayar.



Elasticsearch Endeksleri Nelerdir?

İşleri aşırı basitleştirmeden veya aşırı karmaşıklaştırmadan, bir Elasticsearch dizini, ilgili JSON belgelerinin bir koleksiyonudur.



Önceki bir gönderide bahsedildiği gibi, Elasticsearch endeksleri, Elasticsearch'teki temel depolama birimi olarak kabul edilen JSON nesneleridir. Bu ilgili JSON belgeleri, bir dizin oluşturan tek bir birimde depolanır. Elasticsearch belgelerini ilişkisel bir veritabanındaki tablolar olarak düşünün.





SQL dünyasında bir Elasticsearch indeksini bir veritabanı olarak ilişkilendirelim.

  • MySQL => Veritabanları => Tablolar => Sütunlar/Satırlar
  • Elasticsearch => İndeksler => Türler => Özellikli JSON Belgeleri

Elasticsearch Dizini Nasıl Oluşturulur

Elasticsearch, hizmetlerini ortaya çıkarmak için güçlü ve sezgisel bir REST API kullanır. Bu işlevsellik, Elasticsearch kümesinde işlemler gerçekleştirmek için HTTP isteklerini kullanmanıza olanak tanır. Bu nedenle, yeni bir dizin oluşturmak için dizin oluşturma API'sini kullanacağız.



Bu kılavuzda, istekleri göndermek ve tüm kullanıcılar için bütünlüğü ve kullanılabilirliği korumak için cURL kullanacağız. Ancak cURL ile ilgili hatalarla karşılaşırsanız Kibana Konsolu kullanmayı düşünün.

Elasticsearch kümesinde yeni bir dizin oluşturmaya yönelik sözdizimi şöyledir:

KOYMAK /

Bir dizin oluşturmak için tek yapmanız gereken, varsayılan ayarları kullanarak bir dizin oluşturan dizin adını diğer parametreler olmadan iletmektir.

Dizin gövdesinde olduğu gibi dizinin çeşitli özelliklerini de belirtebilirsiniz:

  • dizin için ayarlar
  • Dizin takma adları
  • Dizin alanları için eşlemeler

Dizin adı gerekli bir parametredir; aksi takdirde, URIL (/) için bir hata alırsınız.

curl -X PUT localhost:9200
{'error':'Uri [/] ve [PUT] yöntemi için yanlış HTTP yöntemi, izin verildi: [DELETE, HEAD, GET]','status':405}

Single_index adında yeni bir dizin oluşturmak için isteği iletiyoruz:

PUT /single_index

cURL için şu komutu kullanın:

curl -X PUT 'localhost:9200/single_index?güzel'

Bu komut, HTTP Status 200 OK ile sonuçlanmalı ve şu şekilde onaylandı: true olan bir mesajla sonuçlanmalıdır:

{
kabul edildi: doğru,
'shards_acknowledged': doğru,
'indeks' : 'single_index'
}

Yukarıdaki istek, herhangi bir yapılandırma belirtmediğimiz için varsayılan ayarlarla bir single_index dizini oluşturur.

Dizin Adlandırma Kuralları

Elasticsearch dizinleri için adlar oluştururken aşağıdaki adlandırma standartlarına uymalısınız:

  1. Dizin adı yalnızca küçük harf olmalıdır.
  2. Dizin adları kısa çizgi (-), alt çizgi (_) veya ekleme işareti (+) ile başlayamaz.
  3. İsimler olamaz. veya ..
  4. Dizin adları şu gibi özel karakterler içeremez: , /, *, ?, , |, ` ` (boşluk karakteri), ,, #
  5. Dizin adlarının uzunluğu 255 bayttan az olmalıdır. Çok baytlı karakterler, dizin adının toplam uzunluğunda sayılır. Örneğin, tek bir karakter 8 bayt uzunluğundaysa, adın kalan toplam uzunluğu 255 – 8'dir.
  6. Elasticsearch'ün en son sürümünde, bir . Elasticsearch eklentileri tarafından kullanılan gizli dizinler ve dahili dizinler için ayrılmıştır.

İndeks Gövdesi Nasıl Oluşturulur

Bir dizin oluşturmak için PUT isteğini kullanırken, oluşturmak istediğiniz dizin için ayarları tanımlayan çeşitli argümanlar iletebilirsiniz. Gövdede belirtebileceğiniz değerler şunları içerir:

  • takma adlar: Oluşturmak istediğiniz dizin için diğer adları belirtir; bu parametre isteğe bağlıdır.
  • Ayarlar: Bu, oluşturmak istediğiniz dizin için yapılandırma seçeneklerini tanımlar. Herhangi bir parametre belirtemezseniz, dizin varsayılan konfigürasyonlar kullanılarak oluşturulur.
  • Eşlemeler: Bu, dizindeki alanlar için eşlemeyi tanımlar. Eşlemelere ekleyebileceğiniz özellikler şunları içerir:
    • alan adı
    • veri türü
    • eşleme parametresi

Gövde yapılandırmalarıyla bir dizin oluşturma örneği için aşağıdaki isteği göz önünde bulundurun:

PUT /single_index_with_body
{
'ayarlar': {
'number_of_shards': 2,
'number_of_replicas': 2
},
eşlemeler: {
'özellikler': {
'alan1': { 'tür': 'nesne' }
}
}
}

cURL eşdeğeri bir istek için:

curl -XPUT 'http://localhost:9200/single_index_with_body' -H 'Content-Type: application/json' -d'{ 'ayarlar': { 'number_of_shards': 2, 'number_of_replicas': 2 }, 'mappings' : { 'özellikler': { 'alan1': { 'tür': 'nesne' } } }}'

Yukarıdaki istek single_index_with_body adında 2 adet parça ve 2 replika içeren yeni bir dizin oluşturur. Ayrıca field1 adında bir alanla bir eşleme oluşturur ve bir JSON nesnesi olarak yazın.

İsteği gönderdikten sonra, isteğin durumuyla birlikte şu şekilde bir yanıt alırsınız:

{
kabul edildi: doğru,
'shards_acknowledged': doğru,
'index' : 'single_index_with_body'
}

Onaylandı, dizinin kümede başarıyla oluşturulup oluşturulmadığını gösterirken, shards_acknowledged, belirtilen dizindeki her parça için zaman aşımından önce gerekli sayıda parça kopyasının başlatılıp başlatılmadığını gösterir.

Elasticsearch Dizini Nasıl Görüntülenir

Oluşturduğunuz dizinle ilgili bilgileri görüntülemek için dizin oluşturmaya benzer bir istek kullanın, ancak PUT yerine HTTP yöntemini şu şekilde kullanın:

GET /single_index_with_body

cURL için,

curl -XGET http://localhost:9200/single_index_with_body

Bu komut, istenen dizin hakkında size şu şekilde ayrıntılı bilgi verecektir:

{
'single_index_with_body' : {
'takma adlar' : { },
'eşlemeler': {
'özellikler' : {
'alan1' : {
'tür': 'nesne'
}
}
},
'ayarlar' : {
'dizin': {
'yönlendirme': {
'tahsis' : {
'Dahil etmek' : {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards' : '2',
'sağlanan_adı': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas' : '2',
'uuid' : '3TRkO7xmQcSUOOGtb6pXVA',
'sürüm': {
'yaratıldı': '7100299'
}
}
}
}
}

Çözüm

Bu kılavuz, yeni dizinler oluşturmak için dizin API'si oluşturmak için Elasticsearch ile nasıl çalışılacağını ele aldı. İndeksler ve konfigürasyon ayarları için uygun isimlerin nasıl oluşturulacağını da tartıştık.

Bu kılavuzu kullanarak artık Elasticsearch API'sini kullanarak dizinler oluşturabilir ve görüntüleyebilirsiniz.