Kako instalirati Elasticsearch na Debian 11 Bullseye

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 velikih količina podataka brzo i gotovo u stvarnom vremenu. Elasticsearch je omiljena i popularna među sistemskim administratorima i programerima jer je moćna tražilica koja se temelji na biblioteci Lucene. Općenito se koristi kao 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 Debian 11 Bullseye.

Preduvjeti

  • Preporučeni OS: Debian 11 Bullseye
  • Korisnički račun: Korisnički račun sa sudo ili root pristupom.
  • Potrebni paketi: Curl i Java

Instalacija Curl

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

sudo apt install curl -y

Instaliranje Jave

Za uspješnu instalaciju i, što je još važnije, korištenje Elasticsearch, morate instalirati Java. Proces je prilično jednostavan.

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

sudo apt install default-jdk

Primjer izlaza s paketima za instaliranje:

Kako instalirati Elasticsearch na Debian 11 Bullseye

Da biste nastavili s instalacijom, upišite (I) a zatim pritisnite (UNESI) ključ.

Zatim provjerite instaliranu verziju Jave i build sljedećom naredbom:

java -version

Primjer izlaza u nastavku:

Kako instalirati Elasticsearch na Debian 11 Bullseye

Oglas


Instalacija Elasticsearch-a

Elasticsearch nije dostupan u standardnim Debian 11 spremištima, pa ćete ga morati instalirati iz Elasticsearch APT spremišta.

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

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

Primjer izlaza s (U redu) potvrđuje da je uspješno:

Kako instalirati Elasticsearch na Debian 11 Bullseye

Sada kada ste dodali GPG ključ, spremišta Elasticsearcha bit će pouzdana. Nastavite instalirati službeno spremište sa sljedećom naredbom terminala:

sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'

U vrijeme izrade vodiča, Elasticsearch 7.13.4 je najnovija verzija, ali će se s vremenom promijeniti, a spremište koje ste dodali radit će za sve verzije 7.xx u budućnosti.

Zatim ažurirajte popis spremišta i instalirajte Elasticsearch na sljedeći način:

sudo apt update && sudo apt install elasticsearch

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

Zatim, da biste provjerili radi li Elasticsearch ispravno, upotrijebit ćete sklupčati naredba za slanje an HTTP zahtjev do port 9200 on localhost kako slijedi:

curl -X GET "localhost:9200/"

Primjer izlaza za provjeru ispravnosti Elasticsearch-a:

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

sudo journalctl -u elasticsearch

Primjer izlaznog dnevnika:

Kako instalirati Elasticsearch na Debian 11 Bullseye

Konfiguriranje Elasticsearch-a

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 uglavnom 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

Zatim se pomaknite prema dolje 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 Debian 11 Bullseye

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

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 Debian 11 Bullseye

Zatim 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 UFW vatrozid da omogućite udaljene veze

Ako dopustite udaljene veze, morat ćete dopustiti svom vatrozidu da omogući povezivanje tih IP adresa. To se može učiniti sljedećom naredbom:

sudo ufw allow from <IP Address> to any port 9200

Više informacija o Debianu i UFW vatrozidu možete pronaći za konfiguriranje UFW vatrozid na Debianu.


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

Deinstaliranje Elasticsearch-a

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

sudo apt remove elasticsearch

Uklonite apt spremište na sljedeći način:

sudo rm /etc/apt/sources.list.d/elastic-7.x.list

Zatim ažurirajte popis spremišta kako bi odražavao promjene:

sudo apt update

Oglas


Komentari i zaključak

Naučili ste kako instalirati Elasticsearch na Debian 11 Bullseye 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 korištenjem jednog upita. ElasticSearch pruža veliku 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.

Pretplati me
Obavijesti o
0 Komentari
Umetne povratne informacije
Pogledajte sve komentare
0
Volio bih vaše misli, molim vas komentirajte.x