GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare e configurare Elasticsearch su Ubuntu 18.04

Elasticsearch è un motore di ricerca gratuito e open source, basato su Apache Lucene e dotato di funzionalità Full Text e supporto per architetture distribuite. Questa è una soluzione consolidata nel campo dell'analisi dei dati in tempo reale.

In questo tutorial troverai tutti i passaggi necessari per creare e configurare un server Elasticsearch su Linux Ubuntu 18.04.

Per prima cosa, connettiti al tuo server tramite una connessione SSH. Se non l'hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in modo sicuro con SSH. Nel caso di un server locale, vai al passaggio successivo e apri il terminale del tuo server.

Installazione Java

Prima di procedere con l'installazione di Elasticsearch, installare Java Development Kit. Per farlo, segui la nostra guida su come installare Java su Ubuntu 18.04. Se JDK è già installato sul tuo sistema, salta questo passaggio.

Installazione di Elasticsearch

Il pacchetto di installazione può essere scaricato direttamente dal sito Web di Elastic:

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.2-amd64.deb

Dopo aver completato il download, procedi con l'installazione del pacchetto:

$ sudo dpkg -i elasticsearch-7.3.2-amd64.deb

Quindi, procedi installando e avviando il servizio tramite:

$ sudo systemctl enable elasticsearch.service
$ sudo systemctl start elasticsearch.service

Configurazione del firewall

In caso di firewall sul sistema, potrebbe essere necessario consentire il traffico al servizio Elasticsearch, abilitando l'apposita porta.

Quando utilizzi il firewall UFW, digita questo comando per sbloccare la porta Elasticsearch predefinita:

$ sudo ufw allow 9200

A questo punto, il firewall consentirà le connessioni sulla porta 9200.

Verifica dello stato del servizio

Verifica se il servizio è in esecuzione e controlla le porte TCP attualmente in ascolto, eseguendo:

$ netstat -a -o -n | grep LISTEN

Quindi, le porte di ascolto 9200 e 9300 come dovrebbero essere viste, come segue:

tcp        0 0 127.0.0.53:53           0.0.0.0:* LISTEN   off (0.00/0/0)

tcp        0 0 0.0.0.0:22              0.0.0.0:* LISTEN   off (0.00/0/0)

tcp6       0 0 127.0.0.1:9200          :::* LISTEN   off (0.00/0/0)

tcp6       0 0 ::1:9200                :::* LISTEN   off (0.00/0/0)

tcp6       0 0 127.0.0.1:9300          :::* LISTEN   off (0.00/0/0)

tcp6       0 0 ::1:9300                :::* LISTEN   off (0.00/0/0)

Utilizzo di Elasticsearch

Ora che il servizio è in esecuzione, utilizza i test inserendo i dati e verificando che vengano trovati in seguito.

NB Se utilizzi un server remoto, sostituisci localhost con l'indirizzo IP del tuo server nei comandi mostrati di seguito.

In questo esempio, inserisci 3 prodotti commerciali:

$ curl -POST 'http://localhost:9200/products/1' -curl -H 'Content-Type: application/json' -d '

{

    "name": "Coffe Machine 1",

    "uuid": "00000010"

}'

Effettuando la chiamata sopra, verrà inserito nell'indice "prodotti" un nuovo documento con attributo "nome" corrispondente a "Macchina da caffè 1" e con identificatore "uuid":

{"_index":"index","_type":"products","_id":"cUqGY20Bm2mQybZCoeKU","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}

Elasticsearch risponderà come mostrato sopra, specificando l'id del prodotto inserito e altri dati di reportistica.

Poi procedi inserendo altri 2 prodotti:

$ curl -POST 'http://localhost:9200/index/products' -curl -H 'Content-Type: application/json' -d '

{

    "name": "White Desk",

    "uuid": "WD000010"

}'
                $ curl -POST 'http://localhost:9200/index/products' -curl -H 'Content-Type: application/json' -d '

{

    "name": "Black Desk",

    "uuid": "WD000011"

}'

Una volta completata, puoi procedere eseguendo la tua prima ricerca indicando "Desk" come parametro di ricerca :

$ curl -X GET "http://localhost:9200/index/_search?q=Desk*&pretty"

Come puoi vedere, si ottengono 2 risultati, inclusi i due desk inseriti sopra:

{

    ...

    "hits" : [

      {

        ….

        "_source" : {

          "name" : "White Desk",

          "uuid" : "WD000010"

        }

      },

      {

        ...

        "_score" : 1.0,

        "_source" : {

          "name" : "Black Desk",

          "uuid" : "WD000011"

        }

      }

    ]

  }

}

Configurazione di Elastisearch

Tutti i file di configurazione di Elasticsearch si trovano nella directory /etc/elasticsearch. Il file più importante è elasticsearch.yml che permette di modificare i parametri operativi di base del sistema, come le informazioni sul cluster, i parametri di connessione TCP/IP o le cartelle dove archiviare i dati.

Tutti i file di configurazione presenti utilizzano il formato YAML, quindi quando modifichi questi file fai attenzione al rientro.

Miglioramento della sicurezza

Una delle prime cose da fare per aumentare la sicurezza del servizio è limitare le connessioni in entrata, ammettendo solo quelle locali. In questo modo, solo la tua applicazione sul server può utilizzare il servizio.

Per modificare la scheda di ascolto alterare il file /etc/elasticsearch/elasticsearch.yml andando a decommentare e modificare la seguente riga:

…

network.host: 127.0.0.1

...

Salva il file e riavvia il servizio per applicare le modifiche:

$ sudo systemctl restart elasticsearch.service

Attendere qualche minuto e verificare che il servizio sia in ascolto solo sull'interfaccia locale lanciando:

$ netstat -a -o -n | grep LISTEN

Per mantenere il servizio disponibile anche per uso esterno, è sempre possibile modificare la porta di ascolto per nascondere la presenza di Elasticsearch.

Modifica il file di configurazione principale /etc/elasticsearch/elasticsearch.yml:

…

#

# Set the bind address to a specific IP (IPv4 or IPv6):

#

network.host: 0.0.0.0

#

# Set a custom port for HTTP:

#

http.port: 2900

...

NB Al posto di 2900 porte si può inserire qualsiasi altra porta.

Dopo aver salvato il file, riavvia il servizio:

$ sudo systemctl restart elasticsearch.service

Per verificare lo stato del servizio, dopo aver applicato le modifiche, utilizzare sempre netstat:

$ netstat -a -o -n | grep LISTEN

Linux
  1. Come installare e configurare Redis su Ubuntu 18.04

  2. Come installare e configurare Redmine su Ubuntu 18.04

  3. Come installare e configurare Samba su Ubuntu 18.04

  4. Come installare e configurare Elasticsearch su Ubuntu 20.04

  5. Come installare e configurare Fail2ban su Ubuntu?

Come installare e configurare Git su Ubuntu 20.04

Come installare e configurare OpenVAS 9 su Ubuntu

Come installare e configurare Redis in Ubuntu 20.04

Come installare e configurare Neo4j su Ubuntu 20.04

Come installare e configurare Ubuntu SDK in Ubuntu 16.04 e 14.04

Come installare e configurare Elasticsearch su Ubuntu 20.04