Come installare Elasticsearch su Rocky Linux 8

elasticsearch è un open-source altamente scalabile motore di ricerca e analisi full-text. Il software supporta operazioni RESTful che consentono di archiviare, cercare e analizzare volumi significativi di dati in modo rapido e quasi in tempo reale. elasticsearch è molto apprezzato e popolare tra gli amministratori di sistema e gli sviluppatori in quanto è un potente motore di ricerca basato sulla libreria Lucene. In genere è il motore/tecnologia sottostante che alimenta le applicazioni con caratteristiche e requisiti di ricerca complessi.

Nel seguente tutorial imparerai come installare Elastic Search su Rocky Linux 8.

Prerequisiti

  • Sistema operativo consigliato: Rocky Linux 8.+.
  • Account utente: Un account utente con accesso sudo o root.
  • Pacchetti richiesti: curl, java

Aggiorna il sistema operativo

Aggiorna il tuo Rocky linux sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo dnf upgrade --refresh -y

Il tutorial utilizzerà il comando sudo , che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana supponendo che tu abbia lo stato di sudo.

Per verificare lo stato di sudo sul tuo account:

sudo whoami

Esempio di output che mostra lo stato di sudo:

[joshua@rockylinux ~]$ sudo whoami
root

Per configurare un account sudo esistente o nuovo, visita il nostro tutorial su Come aggiungere un utente a Sudoers su Rocky Linux.

Per utilizzare l' account di root, usa il seguente comando con la password di root per accedere.

su

Installa Curl

Curl è necessario per alcune parti di questa guida. Per installare questo pacchetto, digita il seguente comando:

sudo dnf install curl -y

Installa Java

Per installare con successo e, soprattutto, utilizzare elasticsearch, è necessario installare Java. Il processo è relativamente facile.

Digita il seguente comando per installare il OpenJDK pacchetto:

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

Dipendenze di esempio che verranno installate:

Come installare Elasticsearch su Rocky Linux 8

Tipologia "E", quindi premere il tasto "TASTO INVIO" per procedere con l'installazione.

Se preferisci l'ultima versione di Java 16, consulta la nostra guida su Come installare Java 16 (OpenJDK 16) su Rocky Linux 8.

Conferma che Java è stato installato con successo con il seguente comando:

java -version

Esempio di output:

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)

pubblicità


Installa Elasticsearch

Elasticsearch non è disponibile nello flusso standard dell'app Rocky Linux 8, quindi è necessario installarlo dal Archivio RPM di Elasticsearch.

Prima di aggiungere il repository, importare il Tasto GPG con il seguente comando:

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

Il passaggio successivo consiste nel creare un file repo Elasticsearch come segue:

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

Una volta all'interno del file, aggiungi le seguenti righe:

[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

Salvare (CTRL+O), poi esci (CTRL+X).

Ora installa Elasticsearch usando il seguente comando:

sudo dnf install elasticsearch

Esempio di output:

Come installare Elasticsearch su Rocky Linux 8

Tipologia "Y", quindi premere il tasto "TASTO INVIO" per procedere con l'installazione

Per impostazione predefinita, il servizio Elasticsearch è disabilitato all'avvio e non è attivo. Per avviare il servizio e abilitarlo all'avvio del sistema, digitare quanto segue (sistemactl) comando:

sudo systemctl enable elasticsearch.service --now

Esempio di output:

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.

Verifica che Elasticsearch sia in esecuzione correttamente. Utilizzerai il arricciare comando per inviare an Richiesta HTTP a porto 9200 on localhost come segue:

curl -X GET "localhost:9200/"

Esempio di output:

Come installare Elasticsearch su Rocky Linux 8

Per visualizzare il messaggio di sistema che Elasticsearch registra sul tuo sistema, digita il seguente comando:

sudo journalctl -u elasticsearch

Esempio di registro di output:

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

Come configurare Elasticsearch

I dati di Elasticsearch sono archiviati nella posizione della directory predefinita (/var/lib/elasticsearch). Per visualizzare o modificare i file di configurazione, li puoi trovare nella posizione della directory (/etc/elasticsearch)e le opzioni di avvio di Java possono essere configurate nel (/etc/default/elasticsearch) file di configurazione.

Le impostazioni predefinite vanno bene principalmente per i singoli server operativi su cui viene eseguito Elasticsearch localhost soltanto. Tuttavia, se si intende configurare un cluster, sarà necessario modificare il file di configurazione per consentire le connessioni remote.

Configurazione dell'accesso remoto (opzionale)

Per impostazione predefinita, Elasticsearch ascolta solo localhost. Per cambiarlo, apri il file di configurazione come segue:

sudo nano /etc/elasticsearch/elasticsearch.yml

Scorri fino a Linea 56 e trova la sezione Rete e rimuovere il commento (#) la riga seguente e sostituirla con l'indirizzo IP privato interno o l'indirizzo IP esterno come segue:

Come installare Elasticsearch su Rocky Linux 8

Nell'esempio, abbiamo decommentato (#) le (rete.host) e lo ha cambiato in un indirizzo IP privato interno come sopra.

Per motivi di sicurezza, è ideale per specificare gli indirizzi; tuttavia, se hai più indirizzi IP interni o esterni che colpiscono il server, cambia l'interfaccia di rete per ascoltare tutti con l'inserimento (0.0.0.0) come segue:

Come installare Elasticsearch su Rocky Linux 8

Salva il file di configurazione (CTRL+O), poi esci (CLTR+X).

Sarà necessario riavviare il servizio Elasticsearch con il seguente comando affinché le modifiche abbiano effetto:

sudo systemctl restart elasticsearch

Configura Firewalld per Elasticsearch

Per impostazione predefinita, non sono impostate regole per Elasticsearch, il che può causare problemi nel corso del tempo.

Innanzitutto, aggiungi una nuova zona dedicata per la policy firewalld di Elasticsearch:

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

Quindi, specificare gli indirizzi IP consentiti a cui è consentito accedere a Memcached.

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

Sostituisci 1.2.3.4 con l'IP indirizzo che verrà aggiunto all'elenco di autorizzazioni.

Una volta che hai finito di aggiungere gli indirizzi IP, apri la porta del Memcached.

Per esempio, Porta TCP 11211.

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

Nota, puoi cambiare la porta predefinita nel tuo file di configurazione se cambi la regola di apertura della porta del firewall sopra con il nuovo valore.

Dopo aver eseguito questi comandi, ricarica il firewall per implementare le nuove regole:

sudo firewall-cmd --reload

Output di esempio in caso di successo:

success

pubblicità


Come usare Elasticsearch

Per utilizzare Elasticsearch utilizzando il comando di arricciatura è un processo semplice. Di seguito sono riportati alcuni dei più comunemente usati:

Elimina indice

Sotto l'indice è chiamato campioni.

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

Elenca tutti gli indici

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

Elenca tutti i documenti nell'indice

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

Query utilizzando i parametri URL

Qui usiamo il formato di query Lucene per scrivere q=school:Harvard.

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

Query con JSON alias Elasticsearch Query DSL

È possibile eseguire query utilizzando i parametri sull'URL. Ma puoi anche usare JSON, come mostrato nell'esempio seguente. JSON sarebbe più facile da leggere ed eseguire il debug quando si dispone di una query complessa rispetto a una stringa gigante di parametri URL.

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

Mappatura dell'indice della lista

Tutti i campi Elasticsearch sono indici. Quindi questo elenca tutti i campi e i loro tipi in un indice.

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

Aggiungi dati

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

Aggiorna documento

Ecco come aggiungere campi a un documento esistente. Per prima cosa, ne creiamo uno nuovo. Poi lo aggiorniamo.

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

Indice di backup

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

Caricamento in blocco dei dati in formato JSON

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>

Mostra integrità del cluster

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

Aggregazione e aggregazione in bucket

Per un server web Nginx, questo produce conteggi di visite web per città dell'utente:

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

        }
   }
  }
}
'

Questo lo espande al conteggio del codice di risposta del prodotto della città in un registro del server Web Nginx

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

Utilizzo di ElasticSearch con l'autenticazione di base

Se hai attivato la sicurezza con ElasticSearch, devi fornire l'utente e la password come mostrato di seguito per ogni comando curl:

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

bella stampa

Aggiungi ?pretty=true a qualsiasi ricerca per stampare in modo grazioso il JSON. Come questo:

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

Per interrogare e restituire solo determinati campi

Per restituire solo determinati campi, inseriscili nell'array _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" }
    }
}

Per interrogare per data

Quando il campo è di tipo data, puoi utilizzare la matematica della data, in questo modo:

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

Disinstalla Elasticsearch

Se non hai più bisogno di Elasticsearch, puoi rimuovere il software con il seguente comando:

sudo dnf autoremove elasticsearch

pubblicità


Commenti e Conclusione

Hai imparato come installare Elasticsearch su Rocky Linux 8 dal repository ufficiale di Elasticsearch e configurare le basi nel tutorial. Nel complesso, ElasticSearch ha molte funzionalità popolari, alcune sono state menzionate all'inizio del tutorial, ma altre includono la possibilità per gli utenti di cercare in vari campi utilizzando una singola query. ElasticSearch fornisce un eccezionale livello di sharding, che significa scalabilità orizzontale, che migliora le prestazioni anche con un aumento del carico.

Per ulteriori letture, visitare il funzionario pagina di documentazione.

Sottoscrivi
Notifica
0 Commenti
Feedback in linea
Visualizza tutti i commenti
0
Amerei i tuoi pensieri, per favore commenta.x