cPanel Elastic Search Kurulumu

cPanel Elastic Search Kurulumu

cPanel Elastic Search Kurulumu

Aşağıda, CloudLinux tabanlı, cPanel/WHM yönetimli ve LiteSpeed, Imunify360 kurulu bir sunucuda XenForo için ElasticSearch kurulumunu ve XenForo ile entegrasyonunu anlatan yaklaşık 1200 kelimelik, detaylı, adım adım bir rehber bulacaksınız. Bu rehber, SSH üzerinden root erişimi gerektiren işlemleri açıklar. Adımları takip ederek, XenForo forumunuzda gelişmiş arama yeteneklerine sahip olmak için ElasticSearch’ü konfigüre edebilir ve XenForo Enhanced Search (XES) eklentisini etkinleştirebilirsiniz.


Giriş

XenForo, PHP tabanlı, kullanıcı dostu ve yüksek performanslı bir forum yazılımıdır. Varsayılan arama özelliği MySQL sorgularına dayanırken, orta ve büyük ölçekli forumlarda arama performansını artırmak için Elasticsearch tabanlı XenForo Enhanced Search (XES) önerilir. ElasticSearch, Java tabanlı, ölçeklenebilir ve tam metin arama sağlayan bir arama motorudur. Özellikle büyük veri setlerinde esnek, hızlı ve doğru sonuçlar sunar.

Bu rehberde anlatılan ortamda aşağıdaki varsayımlar yapılmıştır:

  • Sunucu Yapısı:
  • İşletim Sistemi: CloudLinux veya AlmaLinux (CentOS türevi)
  • Kontrol Paneli: cPanel/WHM
  • Web Sunucusu: LiteSpeed
  • Güvenlik: Imunify360 kurulu
  • Forum Yazılımı: XenForo son sürüm
  • Erişim: SSH üzerinden root erişiminiz mevcut
  • Hedef: XenForo için Elasticsearch yüklemek, yapılandırmak ve XenForo Enhanced Search eklentisini ayarlamak.

Not: Bu rehberi uygulamadan önce, sunucunuzun yedeklerini alın. Ayrıca, Java (OpenJDK) ve Elasticsearch sürümlerini resmi dokümantasyonları kontrol ederek güncel tutun.


Bölüm 1: Elasticsearch Nedir ve Neden Kullanılmalı?

Elasticsearch, verileri indeksleyerek arama yapan dağıtık bir arama ve analitik motorudur. MySQL tabanlı standart aramalar özellikle büyük forumlarda performans sorunları yaratırken, Elasticsearch büyük veri setlerinde hızlı sonuç döndürür. Özellikle binlerce, hatta milyonlarca mesajı olan bir XenForo forumunuz varsa, kullanıcı deneyimi açısından Elasticsearch kullanmak büyük fayda sağlar.

XenForo için geliştirilmiş resmi Enhanced Search eklentisi, Elasticsearch ile entegre olarak gelişmiş arama özelliklerini (relevans skoru, filtreleme, hızlı sonuçlar) sunar.


Bölüm 2: Elasticsearch Gereksinimleri

Elasticsearch, Java tabanlı bir uygulamadır. Bu nedenle sisteminizde bir Java Runtime (OpenJDK) yüklü olması gerekir. Ayrıca Elasticsearch, 9200 numaralı portu kullanır. Güvenlik duvarı (CSF veya benzeri) ayarlarında bu porta izin vermeniz gerekebilir. Aynı zamanda, sistem kaynakları konusunda dikkatli olunmalıdır. Elasticsearch bellek yoğun bir uygulamadır ve yeterli RAM tahsis edilmelidir.

Temel olarak ihtiyacınız olanlar:

  • Java (OpenJDK 11 veya 17): Elasticsearch belirli Java sürümleriyle çalışır. Genellikle Elasticsearch sürüm dokümantasyonunda önerilen Java sürümünü yüklemeniz önerilir.
  • Yeterli RAM ve CPU: En az 2 GB RAM, ancak daha büyük forumlar için 4 GB veya üzeri tavsiye edilir.
  • SSH Root Erişimi: Paketleri yüklemek, servisleri başlatmak/durdurmak için.

Bölüm 3: SSH ile Sunucuya Bağlanma

  1. Sunucuya Bağlanma:
    Bilgisayarınızdan bir terminal (macOS/Linux) veya PuTTY (Windows) aracılığıyla SSH bağlantısı sağlayın:
   ssh root@sunucu_ip_adresiniz

Parolanızı girdikten sonra root olarak bağlanacaksınız.


Bölüm 4: Java Yükleme

Elasticsearch, Java gerektirir. Mevcut sistemde Java olup olmadığını kontrol edin:

java -version

Eğer Java yüklü değilse veya güncel değilse OpenJDK yükleyin. AlmaLinux/CloudLinux tabanlı sistemlerde genellikle yum veya dnf kullanılır:

dnf install java-11-openjdk -y

Komut tamamlandığında tekrar java -version ile sürümü doğrulayın. Elasticsearch’ün resmi dokümantasyonu, hangi sürüm Java ile uyumlu olduğunu belirtir. Elasticsearch 7.x sürümü için genelde OpenJDK 11 uygundur.


Bölüm 5: Elasticsearch Deposu Ekleme ve Kurulum

Elasticsearch paketlerini resmi Elastic deposundan çekebilirsiniz.

  1. Elastic GPG Anahtarını Ekleme:
   rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
  1. Elastic Repository Dosyasını Oluşturma:
  nano /etc/yum.repos.d/elasticsearch.repo
Yazın ve aşağıdaki kodları ekleyin:

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Burada 7.x ifadesi Elasticsearch 7 serisini temsil eder. XenForo Enhanced Search’in desteklediği Elasticsearch sürümünü XenForo dokümantasyonundan teyit edebilirsiniz. Genellikle XenForo Enhanced Search, Elasticsearch 7.x serisiyle uyumlu çalışır. (XenForo 2.2 ve üstü için Elasticsearch 7.x önerilir.)

  1. Elasticsearch Kurulumu:
   dnf install elasticsearch -y

Bu işlem, Elasticsearch’ü /usr/share/elasticsearch dizinine yükleyecektir.


Bölüm 6: Elasticsearch Yapılandırması

Elasticsearch’ün ana yapılandırma dosyası /etc/elasticsearch/elasticsearch.yml dosyasıdır. Burada temel ayarları yapacağız:

  1. Yapılandırma Dosyasını Düzenleme:
   nano /etc/elasticsearch/elasticsearch.yml

Açılan dosyada aşağıdaki ayarları kontrol edin veya ekleyin:

   cluster.name: xenforo-cluster
   node.name: node-1
   network.host: 127.0.0.1
   http.port: 9200
   discovery.type: single-node

Açıklama:

  • network.host değerini 127.0.0.1 yaparak Elasticsearch’ün dışarıya açılmasını engellersiniz. Bu sayede yalnızca sunucu içinden (XenForo’nun bulunduğu aynı sunucudan) erişim sağlanır. Güvenlik açısından önerilir.
  • discovery.type: single-node tek düğümlü bir kurulum olduğunu Elasticsearch’e bildirir.
  1. Bellek Ayarı (JVM Options):
    Elasticsearch, /etc/elasticsearch/jvm.options dosyasında Java heap bellek ayarlarını tutar. Varsayılan olarak genelde 1-2 GB bellek atar. Forumunuz büyükse burayı artırabilirsiniz. Örneğin 2 GB atamak için:
   nano /etc/elasticsearch/jvm.options

-Xms2g ve -Xmx2g satırlarını bulun. Değerleri mevcut değilse ekleyin veya güncelleyin:

   -Xms2g
   -Xmx2g

Bu sayede Elasticsearch 2 GB heap belleğe sahip olacak.

  1. Servisi Etkinleştirme ve Başlatma:
   systemctl daemon-reload
   systemctl enable elasticsearch
   systemctl start elasticsearch
  1. Durumu Kontrol Etme:
   systemctl status elasticsearch

Çıkışta “active (running)” görüyorsanız Elasticsearch başarıyla çalışıyor demektir.

  1. Test Etme:
   curl http://127.0.0.1:9200

Yanıt olarak Elasticsearch’ün sürüm bilgilerini içeren JSON döndürmelidir.


Bölüm 7: Güvenlik ve Firewall Ayarları

Sunucunuzda CSF veya benzeri bir firewall varsa, Elasticsearch’ün 9200 portuna dahili erişime izin vermelisiniz. Ancak network.host ile 127.0.0.1’e bağladığınız için dışarıdan erişim zaten engellenmiştir. Bu genellikle yeterli bir güvenlik önlemidir. Sunucuda Imunify360 varsa, outbound/inbound kurallarını kontrol edebilirsiniz. Ancak sadece local erişim olduğundan ek bir düzenleme gerekmez.


Bölüm 8: XenForo Enhanced Search Eklentisinin Kurulumu

  1. Lisans ve Dosyaları İndirme:
    XenForo Enhanced Search, XenForo’nun resmi sitesinden lisanslı olarak temin edilebilir. XenForo hesabınıza giriş yapın, lisanslı eklentiyi indirin. İndirdiğiniz arşivi açın ve içindeki upload klasörünü XenForo kurulumunuzun kök dizinine atın.
  2. Dosyaları Yükleme:
    FTP veya SSH aracılığıyla XenForo’nun kurulu olduğu dizine eklentinin dosyalarını yükleyin.
    Örneğin, XenForo /home/kullanici/public_html/forum dizinine kuruluysa, upload klasöründeki tüm dosyaları bu dizine aktarın. Dosyalar otomatik olarak src/addons/XFES gibi bir yapıya yerleşir.
  3. Eklentiyi Etkinleştirme:
    XenForo yönetim panelinize gidin: https://forum-siteniz.com/admin.php
    Giriş yapın, ardından Eklentiler (Add-ons) bölümünden XenForo Enhanced Search eklentisini bulun ve yükleyin. Kurulum sihirbazı size gerekli adımları soracaktır.
  4. Elasticsearch Bağlantı Ayarları:
    Eklenti yüklendikten sonra XenForo yönetim panelinizde Ayarlar > Arama veya Gelişmiş Arama ayarlarına gidin. Burada Elasticsearch sunucunuzun ayarlarını gireceksiniz:
  • Elasticsearch Host: 127.0.0.1
  • Elasticsearch Port: 9200
  • Gerekirse özel bir endpoint veya username/password (Elasticsearch X-Pack gibi güvenlik paketleri kullanmıyorsanız genelde gerek yoktur). Ayarları kaydedin.
  1. Dizin Oluşturma:
    XenForo Enhanced Search genellikle forum verilerinizi Elasticsearch’te bir indeks haline getirir. Yönetim panelinde Ayarlar > Enhanced Search sayfasında bir Rebuild Index (Dizini Yeniden Oluştur) işlemi yapmanız gerekir. Bu işlem, mevcut tüm konu ve mesajlarınızı Elasticsearch indeksine aktarır. Büyük forumlarda bu işlem zaman alabilir.
  2. Test Etme:
    Dizini yeniden oluşturma tamamlandığında forumunuzda bir arama yapın. Arama sonuçlarının hızlandığını, daha alakalı sonuçlar verdiğini ve performansın arttığını göreceksiniz.

Bölüm 9: Bakım ve Güncellemeler

  • Elasticsearch Güncellemeleri:
    Zamanla Elasticsearch’ü güncellemek isteyebilirsiniz. Bunu dnf update komutu ile yapabilir, ancak büyük sürüm geçişlerinde XenForo’nun sürüm desteğini kontrol edin.
  • Heap Belleği Ayarları:
    Forum büyüdükçe Elasticsearch bellek tüketimi artabilir. Gerekirse jvm.options dosyasından bellek miktarını artırın.
  • Düzenli İndeks Yenileme:
    XenForo yeni mesajlar eklendikçe otomatik olarak indeksler, ancak bazen bakım amacıyla Rebuild Search Index yapabilirsiniz.
  • Güvenlik Güncellemeleri:
    Imunify360, sunucunuzun güvenliğini sağlar. Elasticsearch’ün harici erişime kapalı olması büyük bir avantajdır. Gerekirse X-Pack Security gibi Elasticsearch güvenlik eklentilerini araştırabilirsiniz.

Bölüm 10: Olası Sorunlar ve Çözümler

  • Elasticsearch Çalışmıyor Hataları:
    systemctl status elasticsearch ile durumu kontrol edin. Log’ları /var/log/elasticsearch/ dizininde inceleyin. Genellikle bellek yetersizliği, Java sürüm uyuşmazlıkları veya yapılandırma hataları en yaygın sorunlardır.
  • XenForo Eklentisi Bağlantı Sorunları:
    Firewall ayarlarını ve network.host değerini kontrol edin.
    Yanlış port ya da host değeri girilirse XenForo Elasticsearch’e ulaşamaz.
  • Performans Sorunları:
    Bellek miktarını artırın veya sunucu kaynaklarını yükseltin.
    Ayrıca LiteSpeed ayarlarını gözden geçirip forum önbellekleme stratejilerini geliştirebilirsiniz.

Sonuç

Bu rehberde, CloudLinux/AlmaLinux, cPanel, LiteSpeed ve Imunify360 yüklü bir sunucuda XenForo için Elasticsearch kurulumunu adım adım ele aldık. Önce Java ve Elasticsearch’ü kurduk, yapılandırdık, ardından XenForo Enhanced Search eklentisini entegrasyonunu gerçekleştirdik. Bu sayede forumunuz için gelişmiş, hızlı ve ölçeklenebilir bir arama deneyimi sunabilirsiniz.

Artık XenForo kullanıcılarınız, forumunuzda daha doğru ve hızlı arama sonuçları alacak, büyük veri kümelerinde bile performanstan ödün vermeden forumunuzu kullanmaya devam edebilecekler. Bu kurulum, forumunuzun büyümesine paralel olarak ölçeklendirilebilir bir arama alt yapısı sağlar.

Sorun yaşarsanız:

İzinleri verin:

sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch
sudo chmod -R 750 /var/lib/elasticsearch
sudo chmod -R 750 /usr/share/elasticsearch

07.12.2024
32
Ziyaretçi Yorumları

Henüz yorum yapılmamış. İlk yorumu aşağıdaki form aracılığıyla siz yapabilirsiniz.