Ekin Karadeniz

Share this post

OpenSearch nedir ve nasıl kurulur?

iamdual.substack.com

OpenSearch nedir ve nasıl kurulur?

Ekin Karadeniz
Apr 14, 2023
Share

Bu yazıda OpenSearch’ten ve onun kurulumundan, ayrıca Elasticsearch ile arasındaki bağlantıdan söz edeceğim. -Ayrıca yakında kullanımı hakkında da bir yazı yazdığımda buraya linkini ekleyeceğim.-

Öncelikle Elasticsearch neydi? Kayıtların yüksek performanslı olarak aranabilmesini sağlayan NoSQL bir veritabanıydı. Elasticsearch, ücretsiz olmasının yanı sıra ücretli commercial çözümler de sunan bir şirkettir aynı zamanda ve şirketin ticari amaçlı olarak hizmet verdiğini de unutmamak gerekir.

Elasticsearch tek başına ücretsiz de olsa, barındırdığı birçok plugin ve kendisine entegre edilebilecek diğer yazılımlar için lisans ücreti ödenmesi gerekmektedir. Şirket, 2021 yılında bir karar alarak, açık kaynak lisansıyla dağıttığı yazılımlarının 7.11 ve sonrasındaki sürümleri için Apache 2.0 yerine Server Side Public License (SSPL) kullanacağını belirtmiştir. SSPL, Open Source Initiative komitesi tarafından “açık kaynak” ünvanı için fazla kısıtlayıcı bulunduğu için kabul edilmemiştir. Ayrıca, bulut servis sağlayıcılarının yazılımı bir servis olarak kullanıcılara sunulmasını da kısıtlamaktaydı. Elasticsearch, Amazon Web Services (AWS) tarafından hali hazırda bir hizmet olarak sunulduğu için bu durum AWS’nin hiç hoşuna gitmemişti. Böylece OpenSearch isimli yeni bir projenin adımları atıldı. OpenSearch, Elasticsearch 7.10.2 versiyonunun forku ile oluşturulmuştur.

Şimdi kurulumuna geçebiliriz. OpenSearch, kendi sitesinde de anlattığı gibi Docker ile çok kolay bir şekilde kurulabiliyor. Fakat bunun yerine tarball kurulumunu isterseniz yazının devamında detaylıca anlattım.

Buna OpenSearch’ün resmi sitesine girerek başlayalım. Anasayfada “Get Started” veya “Download” linkine tıkladıktan sonra platformunuza uygun tarball’un linkini kopyalayın.

Not: Linux’ta kurulum yapmadan önce vm.max_map_count ayarının en az 262144 olduğundan emin olmalısınız.

cat /proc/sys/vm/max_map_count

Buradaki gereksinimi karşılamıyorsa /etc/sysctl.conf dosyasına girip aşağıdaki satırı en alta ekleyin:

vm.max_map_count=262144

Ardından ayarları sudo sysctl -p komutuyla yenileyin.

Son olarak Opensearch dökümanlarında performans artışı için sudo swapoff -a komutu ile swapping’in kapatılması öneriliyor.

OpenSearch (ve Elasticsearch), yazılımın root kullanıcısıyla çalıştırılmasını engellemekte. Bu yüzden OpenSearch’ü çalıştırabilmesi için kullanıcı oluşturuyoruz.

sudo groupadd opensearch
sudo useradd -g opensearch -r -m -d /usr/local/opensearch -s /bin/bash opensearch

Linux / 64-bit için olan örnekte, kopyaladığımız dosya linkinden sunucuya indiriyoruz.

wget "https://artifacts.opensearch.org/releases/bundle/opensearch/2.5.0/opensearch-2.5.0-linux-x64.tar.gz"

Şimdi dosyaları /usr/local/opensearch içerisine çıkartalım.

sudo tar -zxf opensearch-2.5.0-linux-x64.tar.gz -C /usr/local/opensearch --strip-components=1

Gerekli izinleri veriyoruz.

sudo chown -R opensearch:opensearch /usr/local/opensearch

Son olarak geri kalan işlemlere opensearch kullanıcı ile devam ediyoruz.

sudo su - opensearch
cd /usr/local/opensearch

Burada öncelikle, SSL kurulumu ile uğraşmamak adına security eklentisini devre dışı bırakıyorum.

nano config/opensearch.yml

Değeri true olarak değiştirip kaydediyoruz.

plugins.security.disabled: true

Şimdi ./bin/opensearch komutunu çalıştırdığımızda hiçbir hata vermeden OpenSeach’ün çalışması lazım. Hatta curl komutuyla bu esnada test yapabilirsiniz de.

curl http://localhost:9200
{
  "name" : "Ubuntu-2004-focal-64-minimal",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "RbwNIsqPTWWLCIlE7nIqwA",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.5.0",
    "build_type" : "tar",
    "build_hash" : "b8a8b6c4d7fc7a7e32eb2cb68ecad8057a4636ad",
    "build_date" : "2023-01-18T23:48:48.981786100Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Burada da bir sorun meydana gelmediyse, servis oluşturma kaldı geriye. Bu yazıda servis oluşturmak için gerekli detaylı açıklamalar mevcuttur.

Aşağıda OpenSearch’e özel oluşturulmuş olan servis dosyasını bulabilirsiniz:

[Unit]
Description=OpenSearch
Wants=network-online.target
After=network-online.target

[Service]
Type=forking
RuntimeDirectory=data
User=opensearch
Group=opensearch
WorkingDirectory=/usr/local/opensearch
Environment=OPENSEARCH_HOME=/usr/local/opensearch
Environment=JAVA_HOME=/usr/local/opensearch/jdk
ExecStart=/usr/local/opensearch/bin/opensearch -d -p ${OPENSEARCH_HOME}/opensearch.pid
StandardOutput=journal
StandardError=inherit
LimitNOFILE=65535
LimitNPROC=4096
LimitAS=infinity
LimitFSIZE=infinity
TimeoutStopSec=0
TimeoutStartSec=75
# SIGTERM sinyali Java işlemini durdurmak için kullanılıyor
KillSignal=SIGTERM
# Sinyali onun kontrol grubu yerine JVMye gönder
KillMode=process
# Java işlemi sonlandırılamaz
SendSIGKILL=no
# JVM SIGTERM sinyali alırsa 143 exit kodu döndürür
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

Kaynaklar:

  • https://opensearch.org/docs/latest/install-and-configure/install-opensearch/tar/

Share
Comments
Top
New
Community

No posts

Ready for more?

© 2023 Ekin Karadeniz
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing