Ubuntu Linux’a Apache Solr Nasıl Kurulur

Apache Solr veya Solr, Apache Lucene kütüphanesini temel alan kurumsal düzeyde bir arama platformudur.  Solr, Çoğaltma ile Lucene’de Arama anlamına gelir ve Java ile yazılmış ücretsiz, açık kaynaklı bir arama platformudur.  Solr, sektördeki en popüler arama platformlarından biridir ve çoğaltma, otomatik yük devretme ve kurtarma ile yüksek kullanılabilirlik sunar.

Solr, kurumsal uygulamalar oluşturmaya yönelik yüksek düzeyde ölçeklenebilir ve güvenilir bir arama platformudur ve yüksek performans sunar.  Dağıtılmış indekslemeyi destekler ve hata toleransı sunar.  Adobe, Netflix, Instagram, Magento ve Bloomberg gibi bazı büyük internet şirketleri Apache Solr’u ürün arama motoru platformu olarak kullanıyor.

Bu kılavuzda Apache Solr’un Ubuntu 22.04 sunucusunda çalışmasını sağlayacaksınız.  Ayrıca Apache Solr’un güvenliğini Temel Kimlik Doğrulama modülü etkinken sağlayacaksınız.

 

Java OpenJDK’nın kurulumu

Apache Solr, Java tabanlı bir yazılımdır, dolayısıyla Ubuntu sunucunuza Java yüklemeniz gerekir.  Apache Solr’un mevcut sürümü en az Java OpenJDK 11 veya üstünü gerektirir.  Artık Ubuntu sisteminize Java OpenJDK 11’i kuracaksınız.

Öncelikle Ubuntu paket depolarını ve veritabanını güncellemek için aşağıdaki “apt” komutunu çalıştırın.

sudo apt update

Şimdi “apt install” komutunu kullanarak Java OpenJDK’yı sisteminize kurun (aşağıya bakın).  Java OpenJDK kurulumunu Y ile onaylayın ve ENTER tuşuna basın.  Daha sonra kurulum başlayacaktır.

sudo apt install default-jdk

install java

Kurulum sırasında Java sürümünü kontrol etmek için aşağıdaki komutu kullanın.  Terminalinizde kurulu Java OpenJDK “11” çıktısını almalısınız.

java -version

check java version

Apache Solr’u yükleyici komut dosyasıyla yükleme

Java OpenJDK kurulduktan sonra Apache Solr kurulumuna başlayabilirsiniz.  Bu kılavuzda Apache Solr’u Solr paketindeki kurulum betiğini kullanarak kuracaksınız.

Apache Solr paketini indirmek için aşağıdaki “wget” komutunu çalıştırın.  Bu makalenin yazıldığı tarihte Apache Solr’un en son sürümü v8.11.2’dir.  Artık mevcut dizininizde Apache Solr paketini “solr-8.11.2.tgz” görmelisiniz.

wget https://downloads.apache.org/lucene/solr/8.11.2/solr-8.11.2.tgz

Daha sonra, aşağıdaki komutu kullanarak yükleyici komut dosyasını “solr-8.11.2.tgz” Solr paketinden çıkartın.  Mevcut çalışma dizininizde “install_solr_service.sh” yükleyici komut dosyasını görmelisiniz.

tar xzf solr-8.11.2.tgz solr-8.11.2/bin/install_solr_service.sh --strip-components=2

Apache Solr kurulumunu başlatmak için “install_solr_service.sh” kurulum betiğini aşağıdaki gibi çalıştırın.  Bu komut Apache Solr’u aşağıdaki yapılandırmaları kullanarak kuracaktır:

  • Kurulum Apache Solr paketi “solr-8.11.2.tgz”yi temel alır.
  • Kurulum için hedef dizin “/opt” olduğundan dizin “/opt/solr” olacaktır.
  • Apache Solr’un veri dizini “/var/solr” şeklindedir.
  • Apache Solr, kurulum programı tarafından otomatik olarak oluşturulan “solr” kullanıcısı altında çalışacaktır.
  • Apache Solr için systemd hizmet dosyası “solr” olarak adlandırılacaktır, böylece Apache Solr hizmetini “systemctl” komutuyla kolayca yönetebilirsiniz.
  • Apache Solr “8983” TCP bağlantı noktasında çalışacaktır.
sudo bash ./install_solr_service.sh solr-8.11.2.tgz -i /opt -d /var/solr -u solr -s solr -p 8983

Apache Solr kurulum betiği aşağıdaki mesajı görüntüleyecektir:

installing Solr

Ayrıca terminalinizde “solr” hizmetinin çalıştığını da görebilirsiniz.  “Çıkıldı” mesajı, sistemin “solr” hizmetini izleyen bir arka plan programı bulamaması nedeniyledir.

Aşağıdaki “ss” komutu ile sisteminizde açık olan portları da kontrol edebilirsiniz.  Daha sonra Apache Solr Java uygulamasının “8983” TCP bağlantı noktasında çalıştığını görmelisiniz.

ss -plnt

check Solr port

Apache Solr kurulumuna erişmeden önce yeni güvenlik duvarı kuralını sisteminize eklemelisiniz.  Ubuntu’da varsayılan güvenlik duvarı “UFW”dur.

Güvenlik duvarı kuralınıza “8983” TCP bağlantı noktasını eklemek için aşağıdaki “ufw” komutunu çalıştırın.  Ardından güvenlik duvarı yapılandırmanızı kontrol edin.  Apache Solr bağlantı noktası “8983”ün UFW güvenlik duvarına eklendiğini göreceksiniz.

sudo ufw allow 8983/tcp
sudo ufw status

open port for solr ufw

Şimdi web tarayıcınızı açın ve “8983” bağlantı noktasıyla sunucunun IP adresine gidin (yani http://192.168.5.10:8983/).  Varsayılan olarak kimlik doğrulaması olmadan sunulan varsayılan Apache Solr yönetim sayfasını görmelisiniz.

Apache Solr Admin Console

Apache Solr için Ulimit’i ayarlama

Apache Solr’u Unix benzeri bir işletim sisteminde kullanırken, özellikle üretim ortamında “solr” kullanıcısı için sistem ulimit’inin kalıcı olarak kurulması her zaman önerilir.

Bu ayar, maksimum işlem ve açık dosya sayısını içerir.  Her iki ayarın değeri de en az “65.000” olmalıdır.  Diğer iki ayar sanal bellek ve ideal olarak sınırsız olarak ayarlanması gereken maksimum bellek boyutudur.

Aşağıdaki komutla yeni bir yapılandırma dosyası “/etc/security/limits.d/solr.conf” oluşturun.

sudo nano /etc/security/limits.d/solr.conf

Aşağıdaki konfigürasyonu dosyaya ekleyin.  Bu konfigürasyon yalnızca “solr” kullanıcısı için, yani Apache Solr için Ulimit ayarlarını uygular.

solr   soft   nofile   65000
solr   hard   nofile   65000
solr   soft   nproc    65000
solr   hard   nproc    65000

İşiniz bittiğinde dosyayı kaydedin ve kapatın.

Daha sonra “solr” kullanıcısının Ulimit ayarlarını kontrol etmek ve doğrulamak için aşağıdaki komutu çalıştırın.  Maksimum açık dosya ve maksimum işlem boyutu değerinin “65000”, sanal bellek ve maksimum bellek boyutu değerinin ise “sınırsız” olduğunu göreceksiniz.

sudo -H -u solr bash -c "ulimit -aH"

Komut çıktısı aşağıdakine benzer:

setup ulimits

Son olarak, yeni değişikliklerin Ubuntu sisteminde etkili olması için Apache Solr hizmetini yeniden başlatmak üzere aşağıdaki “systemctl” komutunu çalıştırın.

sudo systemctl restart solr

Temel Kimlik Doğrulama Eklentisi ile Apache Solr’un Güvenliğini Sağlama

Apache Solr’un varsayılan kurulumunda güvenli kimlik doğrulaması yoktur.  Solr kurulumunuzu güvence altına almak için Apache Solr için “Temel Kimlik Doğrulama” eklentisini etkinleştirebilirsiniz.

Solr eklentisi “Temel Kimlik Doğrulama”, Apache Solr veri dizininde “/var/lib/solr” oluşturduğunuz “security.json” yapılandırma dosyası aracılığıyla etkinleştirilebilir.

Aşağıdaki komutla yeni bir yapılandırma dosyası “/var/solr/data/security.json” oluşturun.

sudo nano /var/solr/data/security.json

Aşağıdaki konfigürasyonu dosyaya ekleyin.  Bu yapılandırma, Apache Solr için “solr” kullanıcı adı ve “SolrRocks” parolasıyla yönetici kullanıcıyı oluşturur.

{
  "authentication":{
    "blockUnknown": true,
    "class":"solr.BasicAuthPlugin",
    "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},
    "realm":"My Solr users",
    "forwardCredentials": false
  },
  "authorization":{
    "class":"solr.RuleBasedAuthorizationPlugin",
    "permissions":[{"name":"all", "role":"admin"}],
    "user-role":{"solr":"admin"}
  }
}

İşiniz bittiğinde dosyayı kaydedin ve kapatın.

Daha sonra yeni konfigürasyonu ve değişiklikleri uygulamak için aşağıdaki “systemctl” komutunu çalıştırın.

sudo systemctl restart solr

Son olarak, web tarayıcınıza geri dönün ve Apache Solr’a erişmek için “8983” bağlantı noktasıyla sunucunuzun IP adresini arayın (ör.: http://192.168.5.10:8983/).

Apache Solr giriş sayfasını aşağıdaki gibi alacaksınız:

Solr Basic Auth Plugin

Yönetici kullanıcısını “solr” ve şifresini “SolrRocks” olarak girin ve “Giriş” butonuna tıklayın.  Kullanıcı ve şifre doğruysa Apache Solr yönetim kontrol panelini göreceksiniz.

Solr Admin Dashboard

Ayrıca sağ altta, halihazırda kullanımda olan kimlik doğrulama eklentisinin “BasicAuthPlugin” olduğunu ve kullanıcının “admin” rolüyle “solr” olduğunu bildiren güvenlik ayarlarını göreceksiniz.

Solr Security

Artık Apache Solr için “Temel Kimlik Doğrulama”yı yapılandırdınız; yani Apache Solr yönetim panosuna her eriştiğinizde Solr oturum açma sayfası tarafından yönlendirileceksiniz.

Solr’da ilk çekirdeği oluşturma

Apache Solr’da ayrıca tek bir Apache Solr kurulumuyla birden fazla çekirdek oluşturabilir ve kurabilirsiniz.  Solr çekirdeğine Lucene endeksi denir.

Solr çekirdeği, işlem günlüklerini ve “solrconfig.xml” şema dosyaları ve daha fazlasını içeren yapılandırma dosyalarını içerir.  Ayrıca Solr çekirdeği, farklı yapılara sahip birden fazla veriyi destekler ve çeşitli uygulamalar veya hedef gruplar için ayarlanabilir.

Apache Solr’un standart kurulumu, çekirdekleri yönetmek için kullanılabilen “solr” komut satırı aracını içerir.  “Solr” komut satırı “/opt/solr/bin” dizininde bulunur ve “Temel Kimlik Doğrulama” eklentisi ile yapılandırılabilir.

“Solr” komut satırı komut dosyasını kopyalamak için aşağıdaki komutu yürütün.

cp /opt/solr/bin/solr.in.sh.orig /opt/solr/bin/solr.in.sh

“Solr” komut satırı komut dosyasını aşağıdaki komutla düzenleyin.

nano /opt/solr/bin/solr.in.sh

Kimlik doğrulama eklentisini ayarlamak için “SOLR_AUTH_TYPE” seçeneğindeki yorum karakterini kaldırın.  Ardından, “BasicAuthPlugin” eklentisini kullanmak için değeri “temel” olarak değiştirin.

SOLR_AUTH_TYPE="basic"

Daha sonra, kimlik doğrulama için Solr kullanıcısını ve şifresini ayarlamak için “SOLR_AUTHENTICATION_OPTS” seçeneğine yorum yapmanız gerekir.  Bu örnekte kullanıcı “solr”, şifre ise “SolrRocks”tur.  Yapılandırma bu şekilde görünmelidir.

SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"

İşiniz bittiğinde dosyayı kaydedin ve kapatın.

Apache Solr için yeni bir çekirdek oluşturmak için aşağıdaki “solr” komutunu çalıştırın.  Bu demoda “mycore” adında ve “MyConfig” konfigürasyon adında yeni bir çekirdek oluşturacaksınız.  Ve “Yeni çekirdek ‘mycore’ oluşturuldu” çıktısını göreceksiniz.

su - solr -c "/opt/solr/bin/solr create -c mycore -n MyConfig"

Son olarak Apache Solr yönetim panosuna geri döndüğünüzde açılır menüde “mycore” adlı çekirdeği görmelisiniz.

Solr çekirdeğini “mycore” seçin ve çekirdek hakkında detaylı bilgi almalısınız.

Creating Solr Core

 

 

Yazının orijinalini buradan okuyabilirsiniz.