GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Elasticsearch su Debian 11 Bullseye

Ricerca elastica è un motore di ricerca e analisi full-text open source altamente scalabile . Il software supporta operazioni RESTful che consentono di archiviare, cercare e analizzare grandi volumi di dati in modo rapido e quasi in tempo reale. Elasticsearch è apprezzato e popolare tra gli amministratori di sistema e gli sviluppatori in quanto è un potente motore di ricerca basato sulla libreria Lucene. Viene generalmente utilizzato come motore/tecnologia sottostante che alimenta le applicazioni con funzionalità e requisiti di ricerca complessi.

Nel seguente tutorial imparerai come installare Elastic Search su Debian 11 Bullseye .

Prerequisiti

  • Sistema operativo consigliato: Debian 11 Bullseye
  • Account utente: Un account utente con accesso sudo o root.
  • Pacchetti richiesti: Curl e Java

Installazione di Curl

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

sudo apt install curl -y

Installazione di Java

Per installare correttamente e, soprattutto, utilizzare Elasticsearch , devi installare Java . Il processo è abbastanza semplice.

Digita il seguente comando per installare OpenJDK pacchetto:

sudo apt install default-jdk

Esempio di output con i pacchetti da installare:

Per procedere con l'installazione, digita (Y) quindi premere (INVIO) chiave.

Successivamente, verifica la versione Java installata e la build con il seguente comando:

java -version

Esempio di output di seguito:

Installazione di Elasticsearch

Elasticsearch non è disponibile nei repository Debian 11 standard, quindi dovrai installarlo dal repository APT di Elasticsearch.

Prima di aggiungere il repository, importa la chiave GPG con il seguente comando:

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

Esempio di output con (Ok) confermando che ha avuto successo:

Ora che hai aggiunto la chiave GPG, i repository Elasticsearch saranno ora attendibili. Procedi con l'installazione del repository ufficiale con il seguente comando da terminale:

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

Al momento della creazione del tutorial, Elasticsearch 7.13.4 è l'ultima versione, ma cambierà nel tempo e il repository che hai aggiunto funzionerà per qualsiasi versione 7.x.x in futuro.

Quindi, aggiorna l'elenco dei tuoi repository e installa Elasticsearch come segue:

sudo apt update && sudo apt install elasticsearch

Per impostazione predefinita, il servizio Elasticsearch è disabilitato all'avvio e non attivo. Per avviare il servizio e abilitarlo all'avvio del sistema, digita il seguente (systemctl) comando:

sudo systemctl enable elasticsearch.service --now

Successivamente, per verificare che Elasticsearch funzioni correttamente, utilizzerai il curl comando per inviare una richiesta HTTP alla porta 9200 su localhost come segue:

curl -X GET "localhost:9200/"

Esempio di output per verificare il corretto funzionamento di Elasticsearch:

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:

Configurazione di Elasticsearch

I dati di Elasticsearch vengono archiviati nella posizione della directory predefinita (/var/lib/elasticsearch) . Per visualizzare o modificare i file di configurazione, puoi trovarli nella posizione della directory (/etc/elasticsearch) e le opzioni di avvio di java possono essere configurate in (/etc/default/elasticsearch) file di configurazione.

Le impostazioni predefinite sono per lo più valide per singoli server operativi poiché Elasticsearch viene eseguito su localhost solo. Tuttavia, se intendi configurare un cluster, dovrai modificare il file di configurazione per consentire le connessioni remote.

Imposta l'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

Quindi, scorri verso il basso e trova la sezione Rete e decommenta (#) la riga seguente e sostituirlo con l'indirizzo IP privato interno o l'indirizzo IP esterno come segue:

Nell'esempio, abbiamo decommentato (#) il (network.host) e l'ho cambiato in un indirizzo IP privato interno.

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 ascoltarli tutti inserendo (0.0.0.0) come segue:

Quindi, salva il file di configurazione (CTRL+O) quindi esci da (CLTR+X) .

Affinché le modifiche abbiano effetto, dovrai riavviare il servizio Elasticsearch con il seguente comando:

sudo systemctl restart elasticsearch

Configura UFW Firewall per consentire le connessioni remote

Se consenti le connessioni remote, dovrai consentire al firewall di consentire a quegli indirizzi IP di connettersi. Questo può essere fatto con il seguente comando:

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

Ulteriori informazioni su Debian e UFW firewall possono essere trovate per configurare il firewall UFW su Debian.

Come utilizzare Elasticsearch

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

Elimina indice

Sotto l'indice è denominato 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 utilizziamo 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 nell'URL. Ma puoi anche usare JSON, come mostrato nel prossimo esempio. 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 dell'elenco

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

Carica in blocco i 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 stato 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 bucket

Per un server web Nginx, questo produce un numero 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 da parte 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. In questo modo:

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

Disinstallazione di Elasticsearch

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

sudo apt remove elasticsearch

Rimuovere il repository apt come segue:

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

Quindi aggiorna il tuo elenco di repository per riflettere le modifiche:

sudo apt update

Debian
  1. Come installare Elasticsearch su Debian Linux

  2. Come installare R su Debian 9

  3. Come installare Elasticsearch su Debian 9

  4. Come installare Python 3.8 su Debian 11 Bullseye

  5. Come installare Python 3.9 su Debian 11 Bullseye

Come installare VidCutter su Debian 11 Bullseye

Come installare PuTTY su Debian 11 Bullseye

Come installare Graylog su Debian 9

Come installare Vai su Debian 10

Come installare Elasticsearch su Debian 11

Come installare Vai su Debian