Kako instalirati Elasticsearch na AlmaLinux 8

Elasticsearch je vrlo skalabilan open-source stroj za pretraživanje i analizu cijelog teksta. Općenito je temeljni motor/tehnologija koja pokreće aplikacije sa složenim značajkama i zahtjevima pretraživanja. 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.

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

Preduvjeti

  • Preporučeni OS: AlmaLinux 8.
  • Korisnički račun: Korisnički račun sa sudo privilegije or root pristup (su naredba).

Ažuriranje operativnog sustava

Ažurirajte svoj AlmaLinux 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@localhost ~]$ sudo whoami
root

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

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

su

Instalirajte CURL paket

Franjevački KOVRČA naredba je potrebna za neke dijelove ovog vodiča. Da biste instalirali ovaj paket, upišite sljedeću naredbu:

sudo dnf install curl -y

Instalirajte Java paket

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

Primjeri ovisnosti koje će se instalirati:

Kako instalirati Elasticsearch na AlmaLinux 8

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

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 AlmaLinux 8 App stream, 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 AlmaLinux 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 pomoću naredba curl poslati HTTP zahtjev do port 9200 on localhost kako slijedi:

curl -X GET "localhost:9200/"

Primjer rezultata:

Kako instalirati Elasticsearch na AlmaLinux 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 AlmaLinux 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 AlmaLinux 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

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"
            }
        }
}
}

Kako ukloniti (deinstalirati) Elasticsearch

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

sudo dnf autoremove elasticsearch

Primjer rezultata:

Kako instalirati Elasticsearch na AlmaLinux 8

Tip "Y", zatim pritisnite "ENTER TIPKA" za nastavak uklanjanja Elasticsearch-a.


Oglas


Komentari i zaključak

Naučili ste kako instalirati Elasticsearch na AlmaLinux 8 iz službenog spremišta Elasticsearcha 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