DEV Community ­čĹęÔÇŹ­čĺ╗­čĹĘÔÇŹ­čĺ╗

Artur Mehmet for A├ž─▒klab

Posted on

PARDUS 19.2 Sunucu ├ťzerinde Elasticsearch Kurulumu

Elasticsearch, Apache Lucene ├╝zerinde geli┼čtirilmi┼č a├ž─▒k kaynak kodlu, RESTful, da─č─▒t─▒lm─▒┼č arama ve analitik altyap─▒s─▒d─▒r. Yay─▒mland─▒─č─▒ 2010 y─▒l─▒ndan itibaren en pop├╝ler arama altyap─▒s─▒ haline gelmi┼čtir ve genellikle g├╝nl├╝k analiti─či, tam metin arama, g├╝venlik zekas─▒, i┼č analiti─či ve operasyonel zeka kullan─▒m ├Ârnekleri i├žin tercih edilmektedir.

  • Ger├žek zamanl─▒ veri sunar
  • Ger├žek zamanl─▒ geli┼čmi┼č analiz yapabilmenize olanak verir
  • Kolayca da─č─▒t─▒k yap─▒ kurabilece─činiz bir yap─▒ sunar
  • Kendi i├žerisinde y├╝ksek eri┼čilebilirlik sunar
  • Full-text search yapabilmenizi sa─člar
  • D├Âk├╝man odakl─▒ ├žal─▒┼č─▒r
  • Geli┼čtirici dostudur ve RESTful bir API aray├╝z├╝ vard─▒r.
  • Lucene tabanl─▒d─▒r

Temel ElasticSearch Kavramlar─▒

  1. Index : ElasticSearch ├╝zerinde veri indekslenerek json format─▒nda tutulur.

  2. Type : Veritaban─▒ y├Ânetim sistemlerinde kulland─▒─č─▒m─▒z tablolar gibi d├╝┼č├╝nebiliriz. Index i├žerisindeki verileri mant─▒ksal olarak b├Âl├╝mlememizi sa─člar. ├ľrne─čin e-ticaret sistemleri i├žin ├╝r├╝nler,kategoriler,log bilgileri gibi verilerin her birini bir type olarak d├╝┼č├╝nebiliriz. Bir index i├žerisinde birden fazla type bar─▒nd─▒rabiliriz.

  3. Mapping : Amac─▒, ilgili d├Âk├╝man─▒n arama motoruna nas─▒l aktar─▒laca─č─▒n─▒n tan─▒mlanmas─▒d─▒r. K─▒saca veritaban─▒nda isimlendirdi─čimiz bir schemaÔÇÖd─▒r diyebiliriz.

  4. Document: ElasticSearchÔÇÖdeki her bir kayda, yani rowÔÇÖa document denir.

  5. Field : Her bir d├Âk├╝man i├žindeki alana, field denir. Yani DBÔÇÖdeki bildi─činiz column.

  6. Cluster : Bir veya daha fazla d├╝─č├╝m├╝n bir koleksiyonudur. Cluster , t├╝m veriler i├žin toplu dizin olu┼čturma ve arama yetenekleri sa─člar. Yani t├╝m elastic search instancelarini bir arada tutan yap─▒

  7. Node : ElasticsearchÔÇÖin tek bir ├žal─▒┼čan ├Ârne─čini ifade eder. Tek fiziksel ve sanal Sunucu; RAM, depolama ve i┼čleme g├╝c├╝ gibi fiziksel kaynaklar─▒n─▒n yeteneklerine ba─čl─▒ olarak birden ├žok d├╝─č├╝m bar─▒nd─▒r─▒r.

    7.a. Master Node : Master node ayn─▒ cluster alt─▒ndaki t├╝m nodelar─▒n master─▒ gibi ├žal─▒┼č─▒r. Master node index yaratma, silme ve tracking etme gibi i┼člemlerden sorumludur.

    7.b .Master Eligible Node : elastik searchteki bir property true se├žilirse eligible node master node olarak ayarlan─▒r. E─čerki master nodumuzun oldu─ču server fail olursa master eligible nodelar ├žal─▒┼č─▒r.

    7.c. Data node : Datay─▒ tutar ve data ile ili┼čkili operasyonlar─▒ y├╝r├╝t├╝r. CRUD, SEARCH ve AGGREGAT─░ONS

    7.d. Ingest node : Ger├žek indekslenme meydana gelmeden ├Ânceki i┼člemleri ger├žekle┼čtiren d├Âk├╝man├ž

    7.e. Tribe Node : birden fazla clusteri ba─člar ve ba─čl─▒ clussterlar aras─▒ndaki search ve operasyonlar─▒ y├Ânetir.

8.Shard : Indexler yatay olarak par├žalara ayr─▒l─▒r. Bu, her bir par├žan─▒n, belgenin t├╝m ├Âzelliklerini i├žerdi─či, ancak dizinden daha az say─▒da JSON nesnesi i├žerdi─či anlam─▒na gelir.

Elasticsearch ile Neler Yapabiliriz?

  • [Search API]: Full-text arama i├žin kullanabiliriz.
  • [Logstash, Kibana]: G├╝nl├╝klerimizi (Logs) bar─▒nd─▒rmak ve i├žerlerinde arama yapmak i├žin kullanabiliriz.
  • [Aggregation]: Verilerimiz ├╝zerinde neredeyse ger├žek zamanl─▒ analiz ve raporlar haz─▒rlamak i├žin kullanabiliriz.

Elasticsearch Kurulumu

1) Java Y├╝kleme

Elasticsearch bir java uygulamas─▒d─▒r, bu nedenle ilk ad─▒m JavaÔÇÖy─▒ y├╝klemek olacakt─▒r.
Pardus sisteminize Java'y─▒ y├╝klemek i├žin a┼ča─č─▒daki komutlar─▒ ├žal─▒┼čt─▒r─▒n.

sudo apt update
sudo apt install default-jdk   -y

Ard─▒ndan, y├╝kl├╝ Java s├╝r├╝m├╝n├╝ kontrol edin,

java --version 

├ç─▒kt─▒ ┼č├Âyle g├Âr├╝nmelidir:

openjdk 11.0.7 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode, sharing)

2) Elasticsearch Y├╝kleme
Elasticsearch resmi deposu PardusÔÇÖa eklenmelidir. Elasticsearch paketleri i├žin GPG anahtar─▒n─▒ i├že aktarmak i├žin a┼ča─č─▒daki komutlar─▒ ├žal─▒┼čt─▒r─▒n.

sudo apt install gnupg
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt install apt-transport-https

Not:

GPG ( GnuPG ÔÇö GNU Privacy Guard); GPL lisans─▒na sahip, a├ž─▒k kaynak kodlu bir OpenPGP ┼čifreleme standart─▒d─▒r. OpenPGP ise, izni olmayan ki┼čilerin g├Ârmesini istemedi─činiz her t├╝rl├╝ verinin b├╝t├╝nl├╝─č├╝n├╝ ve g├╝venli─čini sa─člayan bir protokold├╝r. Basit olarak herhangi bir datan─▒n ┼čifrelenmesini ve ├ž├Âz├╝lmesini kapsar.

gnupg paketini y├╝klemezseniz a┼ča─č─▒daki hatay─▒ al─▒rs─▒n─▒z:
E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation

wget komutundan sonra OK ├ž─▒kt─▒s─▒ al─▒nmal─▒d─▒r. Bu anahtar─▒n ba┼čar─▒yla i├že aktar─▒ld─▒─č─▒ ve bu depodaki paketlerin g├╝venilir olarak kabul edilece─či anlam─▒na gelir.

Elasticsearch depo adresi Pardus sistemine ekleyin;

sudo apt install software-properties-common
add-apt-repository "deb https://artifacts.elastic.co/packages/7.x/apt stable main"

Note:

Software-properties-common paketini y├╝klemeden add-apt-repository komutunu ├žal─▒┼čt─▒r─▒rsan─▒z a┼ča─č─▒daki hatay─▒ alm─▒┼č olacaks─▒n─▒z;
-bash: add-apt-repository: komut yok

Ya da alternatif olarak a┼ča─č─▒daki komutla da depo adresini sisteme ekleyebilirsiniz;

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Not:
Bu makaleyi yazarken, Elasticsearch'├╝n en son s├╝r├╝m├╝ 7.6. Elasticsearch'├╝n ├Ânceki bir s├╝r├╝m├╝n├╝ y├╝klemek istiyorsan─▒z, 7.x yukar─▒daki komutta ihtiyac─▒n─▒z olan s├╝r├╝mle de─či┼čtirin .

Depo adresini sisteminize ekledikten sonra a┼ča─č─▒daki komutlar─▒ ├žal─▒┼čt─▒r─▒n;

sudo apt update
sudo apt install elasticsearch  -y

3) PardusÔÇÖta Elasticsearch yap─▒land─▒rma

Elasticsearch yap─▒land─▒rma dosyas─▒n─▒ d├╝zenleyerek bunu ├Âzelle┼čtirebilirsiniz. S─▒k kulland─▒─č─▒n─▒z metin d├╝zenleyiciyle yap─▒land─▒rma dosyas─▒nda a┼ča─č─▒daki de─čerleri g├╝ncelleyin;

cluster.initial_master_nodes: node-1
cluster.name: PardusCluster1 
node.name: ÔÇťPardusNode1ÔÇŁ
network.host: 0.0.0.0 
  • network.host - T├╝m aray├╝zleri dinlemek ve genel kullan─▒ma sunmak i├žin a─č─▒ 0.0.0.0 olarak ayarlay─▒n. LAN eri┼čimi i├žin kullanabilirsiniz.
  • cluster.name - K├╝menin ad─▒.
  • node.name - Bir k├╝mede tan─▒mlanacak d├╝─č├╝m├╝n ad─▒

Not:
cluster.initial_master_nodes: node-1 sat─▒r─▒n─▒ eklemezseniz a┼ča─č─▒daki hata ├ž─▒kt─▒s─▒ ile kar┼č─▒la┼čacaks─▒n─▒z
ÔÇťcurl: (7) Failed to connect to localhost port 9200: Connection refusedÔÇŁ

4) Elasticsearch Servis Ayarlar─▒
Elasticsearch'├╝ sistem a├ž─▒ld─▒─č─▒nda servisi otomatik olarak ba┼člayacak ┼čekilde yap─▒land─▒rmak i├žin a┼ča─č─▒daki komutu ├žal─▒┼čt─▒r─▒n;

sudo /bin/systemctl enable elasticsearch.service


Synchronizing state of elasticsearch.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service Ôćĺ /lib/systemd/system/elasticsearch.service.

Elasticsearch a┼ča─č─▒daki gibi ba┼člat─▒labilir ve durdurulabilir;

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

5) Elasticsearch Kurulumunu Test Edin

Elasticsearch'├╝n ├žal─▒┼čt─▒─č─▒n─▒ do─črulamak curl komutu ile localhost'ta 9200 numaral─▒ ba─člant─▒ noktas─▒na bir HTTP iste─či g├Ândermek i├žin kullan─▒n;

PardusÔÇÖta y├╝kl├╝ olarak gelmedi─činden dolay─▒ ├Ânce curl paketini kurunuz;

sudo apt install curl

┼×imdi curl komutunu ├žal─▒┼čt─▒r─▒n─▒z;

curl -X GET "localhost:9200/"

├ç─▒kt─▒ ┼č├Âyle g├Âr├╝necektir;

Terminal ├╝zerinden:

{
  "name" : "PardusNode1",
  "cluster_name" : "PardusCluster1",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Taray─▒c─▒ ├╝zerinden:

Alt Text

Elasticsearch Pardus Sistemine ba┼čar─▒yla kuruldu.
Elasticsearch hakk─▒nda daha fazla bilgi edinmek i├žin resmi d├Âk├╝mantasyon sayfas─▒n─▒ ziyaret edin .

Top comments (0)

Every Week

We have a Welcome Thread where we invite members to tell us a bit about themselves. Join the conversation with us!