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
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
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:
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
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
Ş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 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:
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:
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.
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.
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.
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.