How To Install Elasticsearch on RHEL 8 / CentOS 8

Merhaba arkadaşlar yepyeni bir makale ile karşınızdayım.Bu makalem de Centos 8 e Elasticsearch nasıl kurulur onu anlatmaya çalışacağım umarım bu işlerle uğraşanlar için faydalı olacaktır. Elasticsearch nedir onu açıklayacağım ve bunu ne amaçla kullanıldığı ve nerelerde kullanıldığını anlatacağım.Haydi başlayalım.

ElasticSearch nedir ve ne işe yarar? Buradan başlayalım.

ElasticSearch Java ile geliştirilmiş açık kaynak, lucene tabanlı, ölçeklenebilir bir tam metin(full text) arama motoru ve veri analiz aracıdır.

Bir kütüphane siteniz var farzedelim. Ve veritabanınızda 10 bin adet var. Her bir  kitap  için de tutulan bir sürü parametreniz var Kitabın YAZAR ADI,KİTAP BAŞLIĞI,KONU,ISBN, BASIM YILI , KİTABI ALIŞ TARİHİ, KİTABI TESLİM TARİHİ …vs bir sürü terimler tutulmaktadır. Örneğin bir kitabı arayalım. Kitabın yazarı Mustafa Kemal Atatürk,Kitabın başlığı NUTUK,Isbn ‘si 9789944888349, Basım yılı 1927,Sayfa sayısı 616 , Yayınevi İş Bankası Kültür Yayınları, Kitap alış tarihi 10 Kasım 1938 …vb birçok özellikteki bu kitabı bulmak istediğimizde  o kütüphane programında  aramak istediğimiz de bu özellikler yardımıyla ve elasticsearch kullanarak daha hızlı sonuç alabiliriz.

Bunu veritabanına sorgu olarak gönderdiğimizde en az 10 tane inner join ile ilişkili bir sorgu çağırmamız gerekiyor. Performans olarak 10 bin kitap arasından seçilip geleceği için sizi bayağı bekletecektir. Üstelik bu sorguyu sizinle beraber 2-3-10 kişi de yaptığını düşünürsek server ve veritabanınız buna fazla dayanamaz. İşte bu tür sorunları yaşamamak için geliştirilen sistemlerden birisi de ElasticSearch’tır.

ElasticSearch Java tabanlı bir uygulamadır. veritabanındaki kayıtları bir kez json olarak kaydettiğimizde işlem aramalar için hazırlanmış oluyor. Çalışma şekli şöyle; arayacağımız kelime/paremetreleri ElasticSearch eklentimiz yardımıyla arıyoruz. ElasticSearch daha önce kaydettiğimiz json dosyaları içinde belirlediğimiz kriterlere uygun kayıt var mı onu buluyor. Bize sonucu getiriyor.

Elasticsearch büyük miktardaki veriyi tutarak, bu veriler üzerinden gerçek zamanlı arama yapma imkanı sağlayan bir platformdur. Yani Elasticsearch’de saklanan veri, istenilen kritere uygun olarak arama yapıp çok küçük bir zaman diliminde sonuç alınabilir.
Web üzerinden satış yapılan bir sitede ürün araması yapılırken, uygulamanızda log veya işlemleri (transactions) kayıt altına almak ve görselleştirmek, istatistik veriler elde etmek gibi amaçlarla kullanılabilir. Elasticsearch’ün diğer teknolojilerini kullanarak kullanım alanı genişletilebilir.
Elasticsearh de verinin yönetimi iki bölümden oluşur. İlk kısım verinin fiziksel olarak tutulması için gerekli donanım gereksinimleri ne olmalı, veri sunucular üzerinde nasıl ölçeklendirilmeli, arama veya indeksleme işlemleri nasıl daha performanslı hale getirilebilir, veri kaybı önleme gibi cluster üzerinde hangi konfigürasyonlar yapılmalı vs. gibi işlemler ayarlanır. Bu kısımda kısaca veri yönetimi yapılır. Diğer kısımda da veriler üzerinde arama veya analiz yapılarak veriler anlamlandırılır. Bu kısımda da veri bilimi ile ilgilenilir.
Şimdi kuruluma başlayalım.

Adım 1: CentOS8 ‘i güncelleyin.

 

sudo yum -y update
sudo reboot

 

Adım 2: Java’yı CentOS 8’e yükleyin

ElasticSearch, çalışması için Java’nın yüklü olmasını gerektirir. CentOS 8’e yüklenebilen varsayılan Java Java 8’dir. Yükleme için kullanılacak komutlar burada verilmiştir.

sudo yum -y install java-1.8.0-openjdk  java-1.8.0-openjdk-devel

Java ana sayfasını ayarla.

cat <<EOF | sudo tee /etc/profile.d/java8.sh
export JAVA_HOME=/usr/lib/jvm/jre-openjdk
export PATH=\$PATH:\$JAVA_HOME/bin
export CLASSPATH=.:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib:\$JAVA_HOME/lib/tools.jar
EOF

Kaynak ortamınızı güncellemek için dosya oluşturdu.

source /etc/profile.d/java8.sh

 

3. Adım: ElasticSearch Yum deposunu ekleyin.

ElasticSearch 7 paketlerini CentOS 8 sisteminize indirmek için havuzu ekleyin.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Eğer, Elasticsearch 6 yüklemek tüm tekrarlarını değiştirmek istiyorsanız 7 ile 6 . Depo eklendikten sonra YUM paket dizininizi temizleyin ve güncelleyin.

sudo yum clean all
sudo yum makecache

 

Adım 4: ElasticSearch 7’yi CentOS 8’e kurun.

sudo yum -y install elasticsearch-oss

CentOS 8’de ElasticSearch 7 kurulumunu onaylayın:

[[email protected] ~]$ rpm -qi elasticsearch-oss
Name        : elasticsearch-oss
Epoch       : 0
Version     : 7.9.1
Release     : 1
Architecture: x86_64
Install Date: Fri 11 Sep 2020 05:14:17 PM +03
Group       : Application/Internet
Size        : 418647992
License     : ASL 2.0
Signature   : RSA/SHA512, Wed 02 Sep 2020 03:01:44 AM +03, Key ID d27d666cd88e42b4
Source RPM  : elasticsearch-oss-7.9.1-1-src.rpm
Build Date  : Wed 02 Sep 2020 12:31:45 AM +03
Build Host  : packer-virtualbox-iso-1585932672
Relocations : /usr 
Packager    : Elasticsearch
Vendor      : Elasticsearch
URL         : https://www.elastic.co/
Summary     : Distributed RESTful search engine built for the cloud
Description :
Reference documentation can be found at
  https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
  and the 'Elasticsearch: The Definitive Guide' book can be found at
  https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html
[[email protected] ~]$ 

Java bellek sınırlarını yapılandırın

Dosyayı düzenleyerek bellek sınırları gibi JVM seçeneklerini ayarlayabilirsiniz: /etc/elasticsearch/jvm.options

Aşağıdaki örnek, toplam yığın alanının başlangıç ​​/ maksimum boyutunu belirler.

$ sudo vi/etc/elasticsearch/jvm.options
.....
-Xms1g
-Xmx1g

Sisteminizde daha az bellek varsa, onu küçük megabaytlık ram kullanacak şekilde yapılandırabilirsiniz.

-Xms256m 
-Xmx512m

Elasticsearch servisini başlatmadan önce elasticsearch.yml birkaç değişiklik yapmamız gerekecek.

#cd /etc/elasticsearch/

#vim elasticsearch.yml

*** Aşağıdaki satırların açıklamalarını kaldırın ve her satırın değerini aşağıdaki gibi değiştirin. ***

network.host:192.168.111.166  #(Your IP address)

http.port: 9200

node.name: node-1 (or preferred name)

cluster.initial_master_nodes: node-1 (or preferred name)

Önyüklemede elasticsearch hizmetini başlatın ve etkinleştirin:

sudo systemctl enable --now elasticsearch

Hizmetin çalıştığını doğrulayın.

[[email protected] ~]$ sudo systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-09-14 14:34:16 +03; 4 days ago
     Docs: https://www.elastic.co
 Main PID: 77797 (java)
    Tasks: 44 (limit: 23821)
   Memory: 1.1G
   CGroup: /system.slice/elasticsearch.service
           └─77797 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encodi>

Sep 14 14:34:08 Centos systemd[1]: Starting Elasticsearch...
Sep 14 14:34:16 Centos systemd[1]: Started Elasticsearch.

 

Gerekli firewall ve port ayarlarını yapmamız gerekiyor.

#systemctl enable firewalld.service
#systemctl start firewalld.service

#firewall-cmd --add-port=9200/tcp
#firewall-cmd --add-port=9200/tcp –permanent

#systemctl restart firewalld.service

Bu ayarları yaptıktan sonra elasticsearch ‘i yeniden restart edelim.

#systemctl restart firewalld.service

Elasticsearch için yukarı da elasticsearch.yml dosyasında port olarak 9200 portunu atamıştık bakalım o port elasticsearch i dinliyor mu?

#netstat -antup | grep -i 9200

Aşağıdaki komut ile elasticsearch’in hangi IP den yayın yapacağını belirliyoruz. Ben  elasticsearch.yml IP olarak kendi IP ‘mi verdim

#curl -X GET "192.168.111.166:9200"

Curl ile bir dizin oluşturabilmelisiniz.

[[email protected] ~]#  curl -X PUT "http://192.168.111.166:9200/test_index"
{"acknowledged":true,"shards_acknowledged":true,"index":"test_index"}

Logları sudo journalcttl -u elasticsearch ile incelediğimizde aşağıdaki mesajı görürsek elasticsearch servisi başarılı bir şekilde çalışıyor demektir.

******[Congratulation’s! You have successfully installed Elasticsearch].*******

Adım 5: Kibana 7’yi CentOS 8’ye kurun.

Kibana, Logstash vb. Gibi ilgili ElasticSearch Paketleri, eklenen depodan yüklenebilir.

sudo yum install kibana-oss logstash

Başarılı bir kurulumdan sonra Kibana’yı yapılandırın:

$ sudo vi /etc/kibana/kibana.yml
server.host: "192.168.111.166"
server.name: "kibana.example.com"
elasticsearch.url: "http://192.168.111.166:9200"

Diğer ayarları istediğiniz gibi değiştirin ve ardından kibana servisini başlatın:

sudo systemctl enable --now kibana

Etkin bir güvenlik duvarınız varsa, Kibana bağlantı noktasına erişime izin vermeniz gerekir:

sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload

Sonuç

Elasticsearch’ün ve Kiabana’nın  CentOS 8’e nasıl kurulacağını size gösterdik. Devamı olacak olan diğer makale de ise Logstah’in kurulumunu ve kullanımından bashedeceğim. 

Elasticsearch hakkında daha fazla bilgi edinmek için resmi documentation sayfasını ziyaret edin .

Bir sorunla karşılaşırsanız veya geri bildirim alırsanız, aşağıya bir yorum bırakın.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir