
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.
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.
Bir yanıt bırakın