Kako instalirati Elasticsearch na Rocky Linux 8

Elasticsearch je vrlo skalabilan open-source stroj za pretraživanje i analizu cijelog teksta. Softver podržava RESTful operacije koje vam omogućuju pohranjivanje, pretraživanje i analizu značajnih količina podataka brzo i gotovo u stvarnom vremenu. Elasticsearch je omiljen i popularan među sistemskim administratorima i programerima jer je moćna tražilica koja se temelji na biblioteci Lucene. Općenito je temeljni motor/tehnologija koja pokreće aplikacije sa složenim značajkama i zahtjevima pretraživanja.

U sljedećem tutorialu naučit ćete kako instalirati Elastic Search na Rocky Linux 8.

Preduvjeti

  • Preporučeni OS: Rocky Linux 8.+.
  • Korisnički račun: Korisnički račun sa sudo ili root pristupom.
  • Potrebni paketi: curl, java

Ažurirajte operativni sustav

Ažurirajte svoj Stjenoviti linux operativni sustav kako biste bili sigurni da su svi postojeći paketi ažurirani:

sudo dnf upgrade --refresh -y

Tutorial će koristiti sudo naredba i pod pretpostavkom da imate sudo status.

Za provjeru sudo statusa na svom računu:

sudo whoami

Primjer izlaza koji prikazuje sudo status:

[joshua@rockylinux ~]$ sudo whoami
root

Da biste postavili postojeći ili novi sudo račun, posjetite naš vodič na Kako dodati korisnika u Sudoers na Rocky Linuxu.

Za korištenje root račun, upotrijebite sljedeću naredbu s root lozinkom za prijavu.

su

Instalirajte Curl

Sklupčati potrebna je za neke dijelove ovog vodiča. Da biste instalirali ovaj paket, upišite sljedeću naredbu:

sudo dnf install curl -y

Instalirajte Java

Za uspješnu instalaciju i, što je još važnije, korištenje Elasticsearch, morate instalirati Java. Proces je relativno lak.

Upišite sljedeću naredbu da biste instalirali OpenJDK Paket:

sudo dnf install java-11-openjdk-devel -y

Primjeri ovisnosti koje će se instalirati:

Kako instalirati Elasticsearch na Rocky Linux 8

Tip "Y", a zatim pritisnite "ENTER TIPKA" za nastavak instalacije.

Ako više volite najnoviju verziju Jave 16, pogledajte naš vodič Kako instalirati Javu 16 (OpenJDK 16) na Rocky Linux 8.

Potvrdite da je Java uspješno instalirana sljedećom naredbom:

java -version

Primjer rezultata:

openjdk version "11.0.12" 2021-07-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)

Oglas


Instalirajte Elasticsearch

Elasticsearch nije dostupan u standardni Rocky Linux 8 stream aplikacije, pa ga morate instalirati iz Elasticsearch RPM spremište.

Prije dodavanja spremišta, uvezite GPG ključ sa sljedećom naredbom:

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

Sljedeći korak je stvaranje Elasticsearch repo datoteke na sljedeći način:

sudo nano /etc/yum.repos.d/elasticsearch.repo

Kada uđete u datoteku, dodajte sljedeće retke:

[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

Spremiti (CTRL+O), zatim izađi (CTRL+X).

Sada instalirajte Elasticsearch pomoću sljedeće naredbe:

sudo dnf install elasticsearch

Primjer rezultata:

Kako instalirati Elasticsearch na Rocky Linux 8

Tip "Y", zatim pritisnite "ENTER TIPKA" za nastavak instalacije

Prema zadanim postavkama, usluga Elasticsearch je onemogućena pri pokretanju i nije aktivna. Da biste pokrenuli uslugu i omogućili je pri pokretanju sustava, upišite sljedeće (systemctl) naredba:

sudo systemctl enable elasticsearch.service --now

Primjer rezultata:

Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /usr/lib/systemd/system/elasticsearch.service.

Provjerite radi li Elasticsearch ispravno. Vi ćete koristiti sklupčati naredba za slanje an HTTP zahtjev do port 9200 on localhost kako slijedi:

curl -X GET "localhost:9200/"

Primjer rezultata:

Kako instalirati Elasticsearch na Rocky Linux 8

Da biste vidjeli poruku sustava koju Elasticsearch prijavljuje na vaš sustav, upišite sljedeću naredbu:

sudo journalctl -u elasticsearch

Primjer izlaznog dnevnika:

-- Logs begin at Sat 2021-08-21 01:54:10 EDT, end at Sat 2021-08-21 02:11:00 EDT. --
Aug 21 02:09:17 localhost.localdomain systemd[1]: Starting Elasticsearch...
Aug 21 02:09:43 localhost.localdomain systemd[1]: Started Elasticsearch.

Kako konfigurirati Elasticsearch

Podaci Elasticsearch pohranjeni su na zadanom mjestu direktorija (/var/lib/elasticsearch). Za pregled ili uređivanje konfiguracijskih datoteka, možete ih pronaći na mjestu direktorija (/etc/elasticsearch), a opcije pokretanja java mogu se konfigurirati u (/etc/default/elasticsearch) konfiguracijska datoteka.

Zadane postavke prvenstveno su u redu za poslužitelje s jednim operacijskim sustavom dok Elasticsearch radi na localhost samo. Međutim, ako namjeravate postaviti klaster, morat ćete izmijeniti konfiguracijsku datoteku kako biste omogućili udaljene veze.

Postavljanje daljinskog pristupa (izborno)

Prema zadanim postavkama, Elasticsearch sluša samo localhost. Da biste to promijenili, otvorite konfiguracijsku datoteku na sljedeći način:

sudo nano /etc/elasticsearch/elasticsearch.yml

Pomaknite se do redak 56 i pronađite odjeljak Mreža i dekomentiraj (#) sljedeći redak i zamijenite ga internom privatnom IP adresom ili vanjskom IP adresom kako slijedi:

Kako instalirati Elasticsearch na Rocky Linux 8

U primjeru smo dekomentirali (#) o (mreža.host) i promijenio je u internu privatnu IP adresu kao gore.

Iz sigurnosnih razloga, idealan je za određivanje adresa; međutim, ako imate više internih ili vanjskih IP adresa koje pogađaju poslužitelj, promijenite mrežno sučelje da sluša sve s unosom (0.0.0.0) kako slijedi:

Kako instalirati Elasticsearch na Rocky Linux 8

Spremite konfiguracijsku datoteku (CTRL+O), zatim izađi (CLTR+X).

Morat ćete ponovno pokrenuti uslugu Elasticsearch sljedećom naredbom da bi promjene stupile na snagu:

sudo systemctl restart elasticsearch

Konfigurirajte Firewalld za Elasticsearch

Prema zadanim postavkama, za Elasticsearch nisu postavljena pravila, što može uzrokovati probleme u nastavku.

Prvo dodajte novu namjensku zonu za Elasticsearch firewalld pravilo:

sudo firewall-cmd --permanent --new-zone=elasticsearch

Zatim navedite dopuštene IP adrese kojima je dopušten pristup Memcachedu.

sudo firewall-cmd --permanent --zone=elasticsearch --add-source=1.2.3.4

Zamijenite 1.2.3.4 s IP-om adresu koja će biti dodana na popis dopuštenja.

Nakon što završite s dodavanjem IP adresa, otvorite port Memcached-a.

Na primjer, TCP priključak 11211.

sudo firewall-cmd --permanent --zone=elasticsearch --add-port=9200/tcp

Napomena, možete promijeniti zadani priključak u svojoj konfiguracijskoj datoteci ako promijenite gornje pravilo otvaranja porta vatrozida na novu vrijednost.

Nakon što pokrenete te naredbe, ponovno učitajte vatrozid kako biste implementirali nova pravila:

sudo firewall-cmd --reload

Primjer izlaza ako je uspješan:

success

Oglas


Kako koristiti Elasticsearch

Za korištenje Elasticsearch pomoću naredba curl je jednostavan proces. U nastavku su neke od najčešće korištenih:

Izbriši indeks

Ispod je indeks imenovan uzorci.

curl -X DELETE 'http://localhost:9200/samples'

Navedite sve indekse

curl -X GET 'http://localhost:9200/_cat/indices?v'

Navedite sve dokumente u indeksu

curl -X GET 'http://localhost:9200/sample/_search'

Upit pomoću parametara URL-a

Ovdje koristimo Lucene format upita za pisanje q=school:Harvard.

curl -X GET http://localhost:9200/samples/_search?q=school:Harvard

Upit s JSON-om aka Elasticsearch Query DSL

Možete postavljati upite pomoću parametara na URL-u. Ali možete koristiti i JSON, kao što je prikazano u sljedećem primjeru. JSON bi bio lakši za čitanje i otklanjanje pogrešaka kada imate složen upit od jednog golemog niza parametara URL-a.

curl -XGET --header 'Content-Type: application/json' http://localhost:9200/samples/_search -d '{
      "query" : {
        "match" : { "school": "Harvard" }
    }
}'

Mapiranje indeksa popisa

Sva polja Elasticsearch su indeksi. Dakle, ovo navodi sva polja i njihove vrste u indeksu.

curl -X GET http://localhost:9200/samples

Dodaj podatke

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/1 -d '{
   "school" : "Harvard"			
}'

Ažuriranje dokumenta

Evo kako dodati polja u postojeći dokument. Prvo stvaramo novu. Zatim ga ažuriramo.

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2 -d '
{
    "school": "Clemson"
}'

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2/_update -d '{
"doc" : {
               "students": 50000}
}'

Sigurnosni indeks

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/_reindex -d '{
  "source": {
    "index": "samples"
  },
  "dest": {
    "index": "samples_backup"
  }
}'

Skupno učitavanje podataka u JSON formatu

export pwd="elastic:"

curl --user $pwd  -H 'Content-Type: application/x-ndjson' -XPOST 'https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/0/_bulk?pretty' --data-binary @<file>

Prikaži zdravlje klastera

curl --user $pwd  -H 'Content-Type: application/json' -XGET https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cluster/health?pretty

Agregacija i Bucket Agregacija

Za web-poslužitelj Nginx, ovo proizvodi broj web pogodaka prema gradu korisnika:

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
             "cityName": {
                    "terms": {
                     "field": "geoip.city_name.keyword",
                                "size": 50

        }
   }
  }
}
'

Time se to proširuje na broj kodova odgovora proizvoda za grad u dnevniku Nginx web poslužitelja

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
          "city": {
                "terms": {
                        "field": "geoip.city_name.keyword"
                },
        "aggs": {
          "responses": {
                "terms": {
                     "field": "response"
                 }
           }
         }
      },
      "responses": {
                "terms": {
                     "field": "response"
                 }
        }
   }
}'

Korištenje ElasticSearch s osnovnom provjerom autentičnosti

Ako ste uključili sigurnost s ElasticSearch-om, tada svakoj naredbi curl trebate unijeti korisnika i lozinku kao što je prikazano u nastavku:

curl -X GET 'http://localhost:9200/_cat/indices?v' -u elastic:(password)

Lijepi ispis

Dodajte ?pretty=true u bilo koje pretraživanje da biste lijepo ispisali JSON. Kao ovo:

 curl -X GET 'http://localhost:9200/(index)/_search'?pretty=true

Za upit i vraćanje samo određenih polja

Da biste vratili samo određena polja, stavite ih u niz _source:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "_source": ["suricata.eve.timestamp","source.geo.region_name","event.created"],
    "query":      {
        "match" : { "source.geo.country_iso_code": "GR" }
    }
}

Za upit po datumu

Kada je polje tipa datum, možete koristiti matematiku datuma, na sljedeći način:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "query": {
        "range" : {
            "event.created": {
                "gte" : "now-7d/d"
            }
        }
}
}

Deinstalirajte Elasticsearch

Ako više ne trebate Elasticsearch, softver možete ukloniti sljedećom naredbom:

sudo dnf autoremove elasticsearch

Oglas


Komentari i zaključak

Naučili ste kako instalirati Elasticsearch na Rocky Linux 8 iz Elasticsearchovog službenog spremišta i konfigurirati osnove u vodiču. Općenito, ElasticSearch ima mnogo popularnih značajki, neke su spomenute na početku vodiča, ali druge uključuju omogućavanje korisnicima da pretražuju različita polja pomoću jednog upita. ElasticSearch pruža izvanrednu razinu dijeljenja, što znači horizontalnu skalabilnost, što poboljšava performanse čak i uz povećanje opterećenja.

Za daljnje čitanje posjetite službeni dokumentacijsku stranicu.

Ostavite komentar