Si të instaloni dhe konfiguroni Elasticsearch në Rocky Linux 8


Prezantimi

Elasticsearch është një platformë për kërkimin e shpërndarë dhe analizën e të dhënave në kohë reale. Është një zgjedhje popullore për shkak të përdorshmërisë, veçorive të fuqishme dhe shkallëzueshmërisë.

Ky artikull do t'ju udhëheqë përmes instalimit të Elasticsearch 8.x, konfigurimit të tij për rastin tuaj të përdorimit, sigurimit të instalimit tuaj dhe fillimit të punës me serverin tuaj Elasticsearch.

Parakushtet

Përpara se të ndiqni këtë tutorial, do t'ju duhet:

  • Një server Rocky Linux 8 me 2 GB RAM dhe 2 CPU të konfiguruar me një përdorues sudo jo-root. Këtë mund ta arrini duke ndjekur konfigurimin fillestar të serverit me Rocky Linux 8

Elasticsearch mund të ketë kërkesa relativisht të larta pasi i akordon vetes rreth 1 GB RAM si parazgjedhje, kështu që mbani në mend se mund t'ju duhet të aktivizoni shkëmbimin në një mjedis me memorie të kufizuar. Sasia e CPU-së, RAM-it dhe ruajtjes që do të kërkojë serveri juaj Elasticsearch varet nga sa regjistrime po gjeneroni.

Hapi 1 - Instalimi dhe konfigurimi i Elasticsearch

Përpara se të instaloni Elasticsearch, do të dëshironi të siguroheni që keni të instaluar një redaktues teksti të përdorshëm. Redaktori i parazgjedhur i tekstit që vjen me Rocky Linux 8 është vi. vi është një redaktues teksti jashtëzakonisht i fuqishëm, por mund të jetë disi i trashë për përdoruesit që nuk kanë përvojë me të. Ju mund të dëshironi të instaloni një redaktues më miqësor për përdoruesit si nano për të lehtësuar redaktimin e skedarëve të konfigurimit në serverin tuaj Rocky Linux 8:

  1. sudo dnf install nano -y

Tani mund të vazhdoni të instaloni Elasticsearch. Komponentët Elasticsearch nuk janë të disponueshëm në magazinat e paracaktuar të paketave të Rocky. Në vend të kësaj, ato mund të përfshihen nga depot e mbajtura nga projekti Elasticsearch.

Të gjitha paketat janë të nënshkruara me çelësin e nënshkrimit të Elasticsearch për të mbrojtur sistemin tuaj nga mashtrimi i paketave. Paketat që janë vërtetuar duke përdorur çelësin do të konsiderohen të besuara nga menaxheri juaj i paketave. Në këtë hap, do të importoni çelësin publik GPG të Elasticsearch dhe do të shtoni listën e burimeve të paketës Elastic në mënyrë që të instaloni Elasticsearch.

Për të filluar, përdorni mjetin e paketës rpm për të importuar çelësin nga elastic.co:

  1. rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Më pas, duke përdorur nano ose redaktuesin tuaj të preferuar të tekstit, krijoni një skedar të quajtur elasticsearch.repo në drejtorinë /etc/yum.repos.d/ , kështu që menaxheri juaj i paketës mund të lidhet me depon e Elasticsearch:

  1. sudo nano /etc/yum.repos.d/elasticsearch.repo
[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

Pjesa gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch e skedarit udhëzon menaxherin e paketave që të përdorë çelësin që keni shkarkuar për të verifikuar informacionin e depove dhe skedarëve për paketat Elasticsearch.

Ruani dhe mbyllni skedarin. Nëse po përdorni nano, mund të ruani dhe të dilni duke përdorur Ctrl+X, më pas kur të kërkohet, Y dhe më pas Enter.

Së fundi, instaloni Elasticsearch me menaxherin e paketave dnf:

  1. sudo dnf install --enablerepo=elasticsearch elasticsearch

Shtypni y kur ju kërkohet të konfirmoni instalimin.

Një pjesë e daljes së instalimit të Elasticsearch duhet të përfshijë Informacionet e konfigurimit automatik të sigurisë dhe, më e rëndësishmja, fjalëkalimin e administratorit të Elasticsearch të gjeneruar automatikisht:

Output
--------------------------- Security autoconfiguration information ------------------------------ Authentication and authorization are enabled. TLS for the transport and HTTP layers is enabled and configured. The generated password for the elastic built-in superuser is : CH77_qG8ji8QCxwUCr3w

Mbani shënim këtë fjalëkalim pasi do ta përdorni më vonë në këtë tutorial dhe do t'ju duhet për të krijuar përdorues të tjerë të Elasticsearch. Elasticsearch tani është instaluar dhe gati për t'u konfiguruar.

Hapi 2 — Konfigurimi i Elasticsearch

Për të konfiguruar Elasticsearch, ju do të redaktoni skedarin e tij kryesor të konfigurimit elasticsearch.yml, ku ruhen shumica e opsioneve të konfigurimit të tij. Ky skedar ndodhet në drejtorinë /etc/elasticsearch.

Hapni skedarin e konfigurimit të Elasticsearch, duke përdorur nano ose redaktuesin tuaj të preferuar të tekstit:

  1. sudo nano /etc/elasticsearch/elasticsearch.yml

Shënim: Skedari i konfigurimit të Elasticsearch është në formatin YAML, që do të thotë se duhet të ruash sintaksën e dhëmbëzimit. Sigurohuni që të mos shtoni hapësira shtesë ndërsa redaktoni këtë skedar.

Skedari elasticsearch.yml ofron opsione konfigurimi për grupin, nyjen, shtigjet, kujtesën, rrjetin, zbulimin dhe portën tuaj. Shumica e këtyre opsioneve janë të parakonfiguruara në skedar, por ju mund t'i ndryshoni ato sipas nevojave tuaja. Për qëllimin e këtij konfigurimi me një server të vetëm, ju do të rregulloni vetëm cilësimet për hostin e rrjetit.

Elasticsearch dëgjon trafikun nga kudo në portin 9200. Ky nuk është aq problem në Elasticsearch 8.x sa ishte në versionet e mëparshme, pasi Elasticsearch tani kërkon vërtetim si parazgjedhje. Megjithatë, ka shumë të ngjarë që do t'ju duhet të kufizoni aksesin e jashtëm në shembullin tuaj Elasticsearch për të parandaluar që të huajt të lexojnë të dhënat tuaja ose të mbyllin grupin tuaj Elasticsearch përmes [REST API] të tij (https://en.wikipedia.org/wiki/Representational_state_transfer). Për të kufizuar aksesin, gjeni rreshtin që specifikon network.host, zhkomentojeni duke hequr # në fillim të rreshtit dhe zëvendësojeni atë vlera me localhost kështu që lexohet kështu:

. . .
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost
. . .

Specifikimi i localhost lejon Elasticsearch të dëgjojë në të gjitha ndërfaqet dhe IP-të e lidhura. Nëse dëshironi që ai të dëgjojë vetëm në një ndërfaqe specifike, mund të specifikoni IP-në e tij në vend të localhost. Ruani dhe mbyllni elasticsearch.yml. Nëse po përdorni nano, mund të ruani dhe të dilni duke përdorur Ctrl+X, më pas kur të kërkohet, Y dhe më pas Enter.

Këto janë cilësimet minimale me të cilat mund të filloni për të përdorur Elasticsearch. Tani mund të filloni Elasticsearch për herë të parë.

Nisni shërbimin Elasticsearch me systemctl. Jepini Elasticsearch disa momente për të filluar. Përndryshe, mund të merrni gabime që nuk mund të lidheni.

  1. sudo systemctl start elasticsearch

Më pas, ekzekutoni komandën e mëposhtme për të mundësuar që Elasticsearch të fillojë sa herë që serveri juaj fillon:

  1. sudo systemctl enable elasticsearch

Me aktivizimin e Elasticsearch pas fillimit, le të kalojmë në hapin tjetër për të diskutuar sigurinë.

Hapi 3 - Sigurimi i Elasticsearch

Elasticsearch mund të kontrollohet nga kushdo që mund të hyjë në HTTP API. Ky nuk është domosdoshmërisht një rrezik sigurie, sepse ju keni konfiguruar tashmë Elasticsearch që të dëgjojë vetëm në localhost dhe sepse Elasticsearch 8+ cakton një fjalëkalim administratori si parazgjedhje.

Nëse ju duhet të lejoni qasje në distancë në HTTP API, mund të kufizoni ekspozimin e rrjetit me firewalld. Ky mur zjarri duhet të aktivizohet tashmë nëse keni ndjekur hapat në parakusht, krijoni një profil muri zjarri që hap ose kufizon portin 9200.

Nëse dëshironi të investoni në mbrojtje shtesë, Elasticsearch ofron për blerje shtesën komerciale Shield.

Hapi 4 - Testimi i Elasticsearch

Deri tani, Elasticsearch duhet të funksionojë në portin 9200. Mund ta provoni duke bërë një kërkesë standarde HTTP GET për localhost:9200 me curl. Që nga Elasticsearch 8.x, API Elasticsearch kërkon vërtetimin HTTPS si parazgjedhje, kështu që ju mund të përfshini certifikatën e dhënë në kërkesë duke përdorur argumentin --cacert. Së fundi, përfshini argumentin -u elastic për të specifikuar emrin e parazgjedhur të përdoruesit të administratorit, elastic.

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200

Do t'ju kërkohet të vendosni fjalëkalimin e administratorit që keni marrë gjatë instalimit. Pas vërtetimit, duhet të merrni përgjigjen e mëposhtme:

Output
{ "name" : "elasticrocky", "cluster_name" : "elasticsearch", "cluster_uuid" : "_hb4dLuuR-ipiloXHT_AMw", "version" : { "number" : "8.5.3", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "4ed5ee9afac63de92ec98f404ccbed7d3ba9584e", "build_date" : "2022-12-05T18:22:22.226119656Z", "build_snapshot" : false, "lucene_version" : "9.4.2", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search" }

Nëse merrni një përgjigje të ngjashme me atë të mësipërme, Elasticsearch po funksionon siç duhet. Nëse jo, sigurohuni që i keni ndjekur saktë udhëzimet e instalimit dhe keni lënë pak kohë që Elasticsearch të fillojë plotësisht.

Për të kryer një kontroll më të plotë të Elasticsearch, provoni të kërkoni pikën fundore _nodes dhe shtoni ?pretty në fund të pyetjes për të marrë formatimin e tekstit të lexueshëm nga njeriu:

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200/_nodes?pretty
[secondary label Output]
{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "elasticsearch",
  "nodes" : {
    "7TgeSgV2Tma0quqd6Mw6hQ" : {
…

Në këtë mënyrë, ju mund të verifikoni të gjitha cilësimet aktuale për nyjen, grupin, shtigjet e aplikacionit, modulet dhe më shumë.

Hapi 5 - Përdorimi i Elasticsearch

Për të filluar përdorimin e Elasticsearch, le të shtojmë së pari disa të dhëna. Elasticsearch përdor një API RESTful, e cila u përgjigjet komandave të zakonshme CRUD: create, read, update dhe d<elete. Për të dërguar të dhëna në API, do të përdorësh përsëri curl, por këtë herë do të bësh një kërkesë PUT në vend të GET nga duke specifikuar -X PUT dhe duke përfshirë disa të dhëna të formatuara me JSON në vijën e komandës duke përdorur -d.

Ju mund të shtoni hyrjen tuaj të parë si kjo:

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic -X PUT "https://localhost:9200/test/_doc/1?pretty" -k -H 'Content-Type: application/json' -d '{"counter" : 1, "tags" : ["red"]}'

Ju duhet të merrni përgjigjen e mëposhtme:

Output
{ "_index" : "test", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }

Me cURL, ju keni dërguar një kërkesë HTTP PUT te serveri Elasticsearch. URI-ja e kërkesës ishte /test/_doc/1 me disa parametra:

  • testi është indeksi i të dhënave në Elasticsearch.
  • _doc është lloji.
  • 1 është ID e hyrjes sonë nën indeksin dhe llojin e mësipërm.

Ju mund ta rikuperoni këtë hyrje të parë me një kërkesë HTTP GET.

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic -X GET "https://localhost:9200/test/_doc/1?pretty" -k -H 'Content-Type: application/json'

Ky duhet të jetë rezultati që rezulton:

Output
{ "_index" : "test", "_id" : "1", "_version" : 1, "_seq_no" : 0, "_primary_term" : 1, "found" : true, "_source" : { "counter" : 1, "tags" : [ "red" ] } }

Për të modifikuar një hyrje ekzistuese, mund të përdorni një kërkesë HTTP PUT.

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic -X PUT "https://localhost:9200/test/_doc/1?pretty" -k -H 'Content-Type: application/json' -d '{"counter" : 1, "tags" : ["blue"]}'

Elasticsearch duhet të pranojë modifikimin e suksesshëm si ky:

Output
{ "_index" : "test", "_id" : "1", "_version" : 2, "result" : "updated", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 1, "_primary_term" : 1 }

Në shembullin e mësipërm ne kemi modifikuar mesazhin të hyrjes së parë në \Përshëndetje, njerëz!. Me këtë, numri i versionit është rritur automatikisht në 2.

Ju mund të keni vënë re argumentin shtesë bukur në kërkesat e mësipërme. Ai shton formatin e formatimit në mënyrë që të mund të shkruani çdo fushë të dhënash në një rresht të ri. Pa bukur, dalja e Elasticsearch kthehet pa ndërprerje rreshtash ose dhëmbëzime. Kjo është e mirë për komunikimin API, por më e vështirë për t'u lexuar në daljen e linjës së komandës.

Tani keni shtuar dhe kërkuar të dhëna në Elasticsearch. Për të mësuar rreth operacioneve të tjera, ju lutemi kontrolloni dokumentacionin e API.

konkluzioni

Tani keni instaluar, konfiguruar dhe keni filluar të përdorni Elasticsearch. Për të eksploruar më tej funksionalitetin e Elasticsearch, ju lutemi referojuni dokumentacionit zyrtar të Elasticsearch.