Hur man installerar Elasticsearch på AlmaLinux 8

Elasticsearch är en mycket skalbar öppen källkod sök- och analysmotor i fulltext. Det är i allmänhet den underliggande motorn/tekniken som driver applikationer med komplexa sökfunktioner och krav. Programvaran stöder RESTful-operationer som låter dig lagra, söka och analysera betydande mängder data snabbt och i nästan realtid. Elasticsearch är omtyckt och populär bland systemadministratörer och utvecklare eftersom det är en mäktig sökmotor baserad på Lucene-biblioteket.

I följande handledning kommer du att lära dig hur man installerar Elastic Search på AlmaLinux 8.

Förutsättningar

  • Rekommenderat OS: Alma Linux 8.
  • Användarkonto: Ett användarkonto med sudo privilegier or root access (su kommando).

Uppdaterar operativsystem

Uppdatera din SoulLinux operativsystem för att se till att alla befintliga paket är uppdaterade:

sudo dnf upgrade --refresh -y

Handledningen kommer att använda sudo kommando och förutsatt att du har sudo-status.

Så här verifierar du sudo-status på ditt konto:

sudo whoami

Exempel på utdata som visar sudo-status:

[joshua@localhost ~]$ sudo whoami
root

För att konfigurera ett befintligt eller nytt sudo-konto, besök vår handledning på Hur man lägger till en användare till Sudoers på AlmaLinux.

Att använda root-konto, använd följande kommando med root-lösenordet för att logga in.

su

Installera CURL-paketet

Du har nu möjlighet RINGLA kommando behövs för vissa delar av den här guiden. För att installera det här paketet, skriv följande kommando:

sudo dnf install curl -y

Installera Java-paketet

För att framgångsrikt installera och, ännu viktigare, använda Elasticsearch, måste du installera java. Processen är relativt enkel.

Skriv följande kommando för att installera OpenJDK paket:

sudo dnf install java-11-openjdk-devel

Exempel på beroenden som kommer att installeras:

Hur man installerar Elasticsearch på AlmaLinux 8

Typ "Y", tryck sedan på "ENTER-TANGENT" för att fortsätta med installationen.

Bekräfta att Java har installerats med följande kommando:

java -version

Exempel utmatning:

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)

Installera Elasticsearch

Elasticsearch är inte tillgängligt i standard AlmaLinux 8 App-ström, så du måste installera den från Elasticsearch RPM-förråd.

Innan du lägger till arkivet, importera GPG-nyckel med följande kommando:

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

Nästa steg är att skapa en Elasticsearch repo-fil enligt följande:

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

Väl inne i filen lägger du till följande rader:

[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

Att spara (CTRL+O), avsluta sedan (CTRL+X).

Installera nu Elasticsearch med följande kommando:

sudo dnf install elasticsearch

Exempel utmatning:

Hur man installerar Elasticsearch på AlmaLinux 8

Typ "Y", tryck sedan på "ENTER-TANGENT" för att fortsätta med installationen

Som standard är Elasticsearch-tjänsten inaktiverad vid uppstart och inte aktiv. För att starta tjänsten och aktivera den vid systemstart, skriv följande (systemctl) kommando:

sudo systemctl enable elasticsearch.service --now

Exempel utmatning:

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.

Verifiera att Elasticsearch körs korrekt genom att använda curl kommando att skicka en HTTP-begäran till port 9200 on lokalvärd enligt följande:

curl -X GET "localhost:9200/"

Exempel utmatning:

Hur man installerar Elasticsearch på AlmaLinux 8

För att se systemmeddelandet som Elasticsearch loggar på ditt system, skriv följande kommando:

sudo journalctl -u elasticsearch

Exempel på utdatalogg:

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

Hur man konfigurerar Elasticsearch

Elasticsearch-data lagras i standardkatalogen (/var/lib/elasticsearch). För att visa eller redigera konfigurationsfilerna kan du hitta dem i katalogen (/etc/elasticsearch), och java startalternativ kan konfigureras i (/etc/default/elasticsearch) konfigurationsfil.

Standardinställningarna är i första hand bra för enstaka servrar som Elasticsearch körs på lokalvärd endast. Men om du ska konfigurera ett kluster måste du ändra konfigurationsfilen för att tillåta fjärranslutningar.

Konfigurera fjärråtkomst (valfritt)

Som standard lyssnar Elasticsearch endast på localhost. För att ändra detta, öppna konfigurationsfilen enligt följande:

sudo nano /etc/elasticsearch/elasticsearch.yml

Bläddra ner till linje 56 och hitta avsnittet Nätverk och avkommentera (#) följande rad och ersätt den med den interna privata IP-adressen eller den externa IP-adressen enligt följande:

Hur man installerar Elasticsearch på AlmaLinux 8

I exemplet har vi avkommenterat (#) de (nätverk.värd) och ändrade den till en intern privat IP-adress enligt ovan.

Av säkerhetsskäl är den idealisk för att ange adresser; men om du har flera interna eller externa IP-adresser som träffar servern ändra nätverksgränssnittet för att lyssna på alla med inmatning (0.0.0.0) enligt följande:

Hur man installerar Elasticsearch på AlmaLinux 8

Spara konfigurationsfilen (CTRL+O), avsluta sedan (CLTR+X).

Du måste starta om Elasticsearch-tjänsten med följande kommando för att ändringar ska träda i kraft:

sudo systemctl restart elasticsearch

Hur man använder Elasticsearch

För att använda Elasticsearch med hjälp av curl-kommandot är en enkel process. Nedan är några av de mest använda:

Ta bort index

Nedan namnges indexet prover.

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

Lista alla index

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

Lista alla dokument i index

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

Fråga med URL-parametrar

Här använder vi Lucene frågeformat för att skriva q=school:Harvard.

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

Fråga med JSON aka Elasticsearch Query DSL

Du kan fråga med parametrar på URL:en. Men du kan också använda JSON, som visas i följande exempel. JSON skulle vara lättare att läsa och felsöka när du har en komplex fråga än en gigantisk sträng med URL-parametrar.

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

Listindexmappning

Alla Elasticsearch-fält är index. Så detta listar alla fält och deras typer i ett index.

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

Lägg till data

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

Uppdatera Dok

Så här lägger du till fält i ett befintligt dokument. Först skapar vi en ny. Då uppdaterar vi det.

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

Backup index

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

Massladda data i JSON-format

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>

Visa klusterhälsa

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

Aggregation och Bucket Aggregation

För en Nginx-webbserver producerar detta antal webbträffar efter användarstad:

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

        }
   }
  }
}
'

Detta utökar det till antalet produktsvarskoder för staden i en Nginx-webbserverlogg

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

Använda ElasticSearch med grundläggande autentisering

Om du har aktiverat säkerhet med ElasticSearch, måste du ange användaren och lösenordet som visas nedan för varje curl-kommando:

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

Vackert tryck

Lägg till ?pretty=true i valfri sökning för att pretty-printa JSON. Så här:

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

För att fråga och returnera endast vissa fält

För att endast returnera vissa fält, placera dem i _source-arrayen:

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

För att fråga efter datum

När fältet är av typen datum kan du använda datummatematik, så här:

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

Hur man tar bort (avinstallerar) Elasticsearch

Om du inte längre behöver Elasticsearch kan du ta bort programvaran med följande kommando:

sudo dnf autoremove elasticsearch

Exempel utmatning:

Hur man installerar Elasticsearch på AlmaLinux 8

Typ "Y", tryck sedan på "ENTER-TANGENT" för att fortsätta med borttagningen av Elasticsearch.

Kommentarer och slutsats

Du har lärt dig hur du installerar Elasticsearch på AlmaLinux 8 från Elasticsearchs officiella repository och konfigurerar grunderna i handledningen. Sammantaget har ElasticSearch många populära funktioner, några nämndes i början av handledningen, men andra inkluderar att göra det möjligt för användare att söka i olika fält med en enda fråga. ElasticSearch ger en enastående nivå av skärning, vilket innebär horisontell skalbarhet, vilket förbättrar prestandan även med ökad belastning.

För mer läsning, besök tjänstemannen dokumentationssida.


Inte vad du letade efter? Försök att söka efter ytterligare tutorials.

Lämna en kommentar