Come installare Elasticsearch 8 su Debian 12, 11 o 10 Linux

Elasticsearch 8 è un motore di ricerca e analisi open source potente e flessibile noto per la sua scalabilità, velocità e capacità di indicizzazione dei dati in tempo reale. La versione 8.x apporta miglioramenti significativi, tra cui funzionalità di sicurezza migliorate con una semplice gestione dei certificati, funzionalità di ricerca di testo arricchite ed esecuzione delle query più efficiente. Introduce inoltre il supporto nativo per i campi di runtime, semplificando la personalizzazione del modo in cui i dati vengono indicizzati e ricercati senza modificare lo schema sottostante. Questi progressi rendono Elasticsearch 8.xa una soluzione solida per la gestione e l'analisi di grandi volumi di dati.

Per installare Elasticsearch 8 su Debian 12, 11 o 10, puoi utilizzare il repository APT ufficiale fornito da Elasticsearch. Questa guida ti guiderà attraverso i passaggi per configurare Elasticsearch, assicurandoti l'accesso alle funzionalità e ai miglioramenti più recenti.

Aggiorna Debian prima dell'installazione di Elasticsearch

Nel primo passaggio, devi assicurarti che il tuo sistema Debian Linux sia aggiornato. Questo passaggio aggiornerà tutto il software esistente alle versioni più recenti e preparerà il sistema per l'installazione.

Esegui il comando seguente per aggiornare il tuo sistema Debian:

sudo apt update && sudo apt upgrade

Installazione dei pacchetti necessari

Prima di installare Elasticsearch 8 su Debian, dobbiamo soddisfare prerequisiti specifici. Ciò comporta l'installazione di alcuni pacchetti richiesti, come software-properties-common, apt-transport-https e curl. Questi pacchetti facilitano la gestione del software e il trasferimento dei dati sulla rete.

Installa i pacchetti necessari eseguendo quanto segue:

sudo apt install software-properties-common apt-transport-https curl -y

Aggiungi il repository APT Elasticsearch 8 su Debian

Successivamente, aggiungeremo il repository Elasticsearch APT al nostro sistema Debian Linux. Innanzitutto importeremo la chiave GPG per Elasticsearch, che garantisce l'autenticità del software che stai installando. Esegui il comando seguente per importare la chiave GPG:

curl -fSsL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | sudo tee /usr/share/keyrings/elasticsearch-8.gpg > /dev/null

Successivamente, importiamo il repository Elasticsearch. Questo ci consentirà di installare Elasticsearch direttamente utilizzando il file apt gestore dei pacchetti:

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-8.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elasticsearch-8.list

Aggiornamento della cache dell'indice APT

Dobbiamo aggiornare l'indice del pacchetto APT dopo aver aggiunto il repository Elasticsearch al nostro sistema. Ciò garantisce che APT sia a conoscenza dei nuovi pacchetti dal repository appena aggiunto. Esegui il comando seguente per aggiornare l'indice APT:

sudo apt update

Installa Elasticsearch 8 tramite il comando APT

Ora che il nostro sistema è preparato e l'indice APT è aggiornato, possiamo installare Elasticsearch 8. Utilizza il seguente comando per installare Elasticsearch:

sudo apt install elasticsearch

Nota: se esistono due voci per lo stesso repository Elasticsearch, si verificherà un errore durante l'aggiornamento apt. Se riscontri un errore "Voce duplicata di source.list", controlla /etc/apt/sources.list.d/elasticsearch-8.x.list per la voce duplicata o individua la voce duplicata tra i file in /etc/ apt/sources.list.d/ e il file /etc/apt/sources.list.

Abilita Elasticsearch su Debian dopo l'installazione

Dopo l'installazione, il servizio Elasticsearch è disabilitato all'avvio e inattivo per impostazione predefinita. Per abilitare il servizio Elasticsearch e impostarlo per l'avvio automatico all'avvio, utilizzare quanto segue systemctl comando:

sudo systemctl enable elasticsearch.service --now

Configura Elasticsearch 8

La fase successiva della gestione di Elasticsearch 8 sul tuo sistema Debian Linux è la sua configurazione.

Conoscere le impostazioni predefinite di Elasticsearch

In una nuova installazione di Elasticsearch, il software inserisce i dati elaborati e archiviati nella directory /var/lib/elasticsearch. Se hai bisogno di modifiche alla configurazione, /etc/elasticsearch è la directory di riferimento. Se è necessario modificare le opzioni di avvio di Java, queste impostazioni possono essere modificate nel file di configurazione /etc/default/elasticsearch.

Queste impostazioni standard si adattano ai server autonomi in cui Elasticsearch opera esclusivamente su localhost. Tuttavia, se il tuo obiettivo è creare un cluster Elasticsearch o consentire connessioni remote, sono necessarie modifiche alla configurazione predefinita.

Perfezionamento del file di configurazione Elasticsearch

Il file di configurazione Elasticsearch contiene molti parametri che possono essere regolati per soddisfare le tue esigenze specifiche. Per aprire questo file, eseguire il seguente comando:

sudo nano /etc/elasticsearch/elasticsearch.yml

Un parametro importante è cluster.name, che designa il nome del cluster a cui appartiene il tuo nodo. Per impostazione predefinita, si tratta di "elasticsearch", ma in un ambiente di produzione è consigliabile un nome più distinto.

Ecco un esempio:

cluster.name: my_application

L'opzione node.name è un'altra significativa che imposta il nome del nodo Elasticsearch. Questo nome è essenziale per un'amministrazione e una gestione fluide, soprattutto quando si lavora con più nodi.

Ecco un esempio:

node.name: node-1

Configura Elasticsearch 8 con HTTPS su Debian

Di seguito viene illustrata la configurazione di HTTPS per l'installazione di Elasticsearch. La crittografia è essenziale per proteggere i dati e abilitare Elasticsearch 8 all'utilizzo di HTTPS garantisce che i dati vengano trasmessi in modo sicuro tra nodi e client.

Genera certificati SSL

Il primo passaggio nella configurazione di Elasticsearch per HTTPS è generare un certificato SSL. Questo certificato crittograferà i dati tra il tuo server e i client. Elasticsearch ha uno strumento integrato chiamato elasticsearch-certutil che puoi utilizzare per generare un certificato autofirmato. Esegui il seguente comando:

sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/elastic-certificates.p12

Questo creerà un file .p12 nella directory di configurazione. Questo file contiene sia la chiave privata che il certificato pubblico. È essenziale proteggere questo file e garantire che non sia accessibile a utenti non autorizzati.

Aggiorna la configurazione di Elasticsearch 8

Successivamente, devi aggiornare il file di configurazione Elasticsearch situato in /etc/elasticsearch/elasticsearch.yml per includere i percorsi del tuo certificato e della chiave privata. Apri il file di configurazione e aggiungi le seguenti righe:

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

Queste impostazioni abilitano SSL per il livello di trasporto, specificano che utilizziamo i certificati per la verifica SSL e definiscono i percorsi del certificato e della chiave privata.

Consentire l'accesso remoto (facoltativo)

Elasticsearch è configurato per ascoltare solo localhost per impostazione predefinita. Tuttavia, questo può essere modificato nei casi in cui è richiesto l'accesso remoto. Cerca la sezione Rete e decommenta la riga network.host rimuovendo il # davanti. Sostituisci il valore esistente con il tuo indirizzo IP privato interno o l'indirizzo IP esterno.

Ecco un esempio:

# network.host: 192.168.0.1

In questo esempio, network.host è stato decommentato e adattato a un indirizzo IP privato interno.

Per motivi di sicurezza, è consigliabile specificare i singoli indirizzi IP. Tuttavia, è possibile modificare l'interfaccia di rete per ascoltare tutti impostandola su 0.0.0.0 per più indirizzi IP interni o esterni che si connettono al server.

Dopo aver apportato le modifiche necessarie, salvare il file di configurazione (CTRL+O per salvare, CTRL+X per uscire).

Per applicare le modifiche al file di configurazione, riavviare il servizio Elasticsearch con il comando:

sudo systemctl restart elasticsearch

Modifica delle regole del firewall UFW per le connessioni remote

Se hai configurato Elasticsearch per consentire connessioni remote, è fondamentale regolare le regole del firewall per soddisfare queste connessioni. Il Uncomplicated Firewall (UFW) può aiutare in questo.

Puoi consentire a un indirizzo IP specifico di connettersi a Elasticsearch eseguendo questo comando:

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

Non dimenticare di sostituire con l'indirizzo IP effettivo da cui desideri consentire le connessioni. Questo comando aprirà la porta 9200 per l'indirizzo IP specificato, consentendogli di interagire con Elasticsearch.

Ad esempio, se desideri consentire la connessione all'indirizzo IP 192.168.0.2, il comando sarebbe:

sudo ufw allow from 192.168.0.2 to any port 9200

Successivamente, il tuo server Debian consentirà al traffico da 192.168.0.2 di accedere a Elasticsearch tramite la porta 9200. Ricorda che la sicurezza dei tuoi server è fondamentale, quindi assicurati di concedere l'accesso solo a indirizzi IP attendibili.

Verifica della configurazione di Elasticsearch 8

Dopo aver modificato la configurazione di Elasticsearch, è fondamentale verificare che le modifiche siano state implementate correttamente e che l'istanza di Elasticsearch funzioni come previsto.

Controllo dello stato del servizio Elasticsearch 8

Innanzitutto, controlla lo stato del tuo servizio Elasticsearch per confermare che sia attivo e in esecuzione. Puoi farlo con il seguente comando:

sudo systemctl status elasticsearch

Questo comando restituirà informazioni sul servizio Elasticsearch, incluso se è attivo e in esecuzione. In caso contrario, potrebbe essere necessario risolvere il problema o rivedere le modifiche alla configurazione.

Test dell'accesso remoto (facoltativo)

Se hai abilitato l'accesso remoto, puoi testarlo provando a connetterti alla tua istanza Elasticsearch da un computer remoto. Come discusso nella sezione precedente, l'indirizzo IP da cui ti connetti deve essere consentito nelle regole del firewall.

È possibile utilizzare il comando curl per questo scopo:

curl https://<Your_Elasticsearch_IP>:9200

Sostituire con l'indirizzo IP del tuo server Elasticsearch. In caso di successo, questo comando dovrebbe restituire informazioni sulla tua istanza Elasticsearch.

Convalida dell'integrità dei dati

Infine, è essenziale verificare l'integrità dei tuoi dati Elasticsearch, soprattutto se hai apportato modifiche alla directory dei dati nella tua configurazione. Elasticsearch fornisce API che puoi utilizzare per verificare lo stato dei tuoi dati.

Ad esempio, per ottenere lo stato di tutti gli indici, utilizzare il seguente comando:

curl -X GET "https://localhost:9200/_cat/indices?v=true&pretty"

Questo comando elenca tutti gli indici nell'istanza Elasticsearch e il loro stato di integrità. Controlla lo stato di salute dei tuoi indici per assicurarti che i tuoi dati siano sicuri e accessibili.

Nota: ricorda che il mantenimento dell'integrità e della sicurezza dei tuoi dati dovrebbe sempre essere una priorità assoluta. Ricontrolla sempre le modifiche, convalida la configurazione e monitora regolarmente la tua istanza Elasticsearch. Ciò ti aiuterà a mantenere un sistema di gestione dei dati affidabile, efficiente e sicuro con Elasticsearch.

Interagire con Elasticsearch 8 tramite cURL

Questa sezione esplorerà i comandi comuni che interagiscono con la tua istanza Elasticsearch 8. Utilizzeremo il curl strumento da riga di comando, una libreria flessibile per il trasferimento di dati utilizzando diversi protocolli.

Eliminazione di un indice

Un indice Elasticsearch è un insieme di documenti che hanno caratteristiche simili. Se hai un indice denominato campioni che desideri eliminare, puoi farlo con il seguente comando:

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

Questo comando invia una richiesta HTTP DELETE all'URL specificato, che indica a Elasticsearch di eliminare l'indice degli esempi.

Elenco di tutti gli indici

Per recuperare un elenco di tutti gli indici nell'istanza Elasticsearch, utilizza l'endpoint _cat/indices con una richiesta GET come questa:

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

La risposta elencherà tutti gli indici, inclusi l'integrità, lo stato, le dimensioni e il numero di documenti dell'indice.

Recupero di documenti da un indice

Per recuperare tutti i documenti da un indice specifico, ad esempio sample, utilizza l'endpoint _search:

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

Questo comando recupera tutti i documenti archiviati nell'indice di esempio.

Ricerca con parametri URL

È possibile utilizzare la sintassi delle query di Lucene per ricerche di testo di base. Ad esempio, se desideri trovare documenti in cui il campo scolastico è Harvard, dovresti utilizzare:

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

Questo comando invia una richiesta GET all'endpoint _search utilizzando il parametro q per la query.

Ricerca con Elasticsearch Query DSL

Per query più complesse, potresti preferire utilizzare Query DSL di Elasticsearch, che ti consente di utilizzare JSON per definire le query. Questo formato è più leggibile e più accessibile per il debug di query complesse.

Ecco un esempio:

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

Questo comando fa lo stesso del precedente ma utilizza JSON per la definizione della query. In questo modo il comando risulta più leggibile, soprattutto quando si tratta di query più complesse.

Aggiunta e aggiornamento di documenti

Per aggiungere un nuovo documento a un indice, puoi utilizzare il metodo PUT insieme all'endpoint _doc. Ad esempio, per aggiungere un documento con un ID pari a 1 e un campo scolastico di Harvard all'indice degli esempi, dovresti utilizzare:

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

Per aggiornare un documento, puoi utilizzare il metodo POST con l'endpoint _update. Ad esempio, per aggiungere un campo studenti al documento che abbiamo appena creato, dovresti utilizzare:

curl -XPOST --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1/_update -d '{
"doc" : {
               "students": 50000}
}'

Questo comando indica a Elasticsearch di aggiornare il documento con un ID pari a 1 nell'indice degli esempi, aggiungendo un campo studenti con un valore di 50000.

Questi comandi sono solo un piccolo esempio di ciò che puoi realizzare con Elasticsearch. Il DSL di query Elasticsearch

Gestisci Elasticsearch 8 su Debian 12, 11 o 10

Questo segmento approfondisce il processo di rimozione di Elasticsearch 8 dal tuo server Debian Linux. Potresti voler farlo per diversi motivi, ad esempio il software non soddisfa più le tue esigenze o stai pianificando di passare a una soluzione alternativa. Indipendentemente dai motivi, i passaggi descritti di seguito ti guideranno attraverso il processo.

Rimozione di Elasticsearch 8 da Debian

Sradicare Elasticsearch dal tuo server richiede un semplice comando. Ricorda però che questa azione è irreversibile e cancellerà tutti i dati associati. Ecco il comando da eseguire:

sudo apt remove elasticsearch

L'esecuzione del comando precedente disinstallerà efficacemente Elasticsearch, liberando eventuali risorse di sistema precedentemente allocate.

Rimuovere il repository APT Elasticsearch

Il repository Elasticsearch rimarrà sul tuo sistema dopo la disinstallazione. Se sei sicuro di non reinstallare Elasticsearch in futuro, potresti anche sbarazzartene per evitare inutili disordine.

Ecco come rimuovere il repository Elasticsearch:

sudo rm /etc/apt/sources.list.d/elasticsearch-8.list

Il comando precedente eliminerà il repository Elasticsearch 8 dal tuo server Debian Linux.

Aggiornamento dell'elenco dei repository

Il passaggio finale è aggiornare l'elenco dei pacchetti apt. Questo passaggio è essenziale per garantire che il tuo sistema non consideri Elasticsearch 8 per futuri aggiornamenti o installazioni.

Il comando per aggiornare l'elenco dei repository è il seguente:

sudo apt update

Conclusione

Con Elasticsearch 8 installato con successo sul tuo sistema Debian, puoi sfruttare le sue funzionalità avanzate di ricerca e analisi per gestire e analizzare i tuoi dati in modo efficiente. Aggiorna regolarmente Elasticsearch per beneficiare delle funzionalità più recenti e dei miglioramenti della sicurezza. Goditi le potenti funzionalità di Elasticsearch 8.x, personalizzate per soddisfare le esigenze della moderna gestione e analisi dei dati.

Joshua James
Seguimi
Ultimi post di Joshua James (vedi tutto)

Lascia un commento