Installazione software · 11 min read · Nov 11, 2025

Come installare Elastic Stack su Ubuntu 20.04 LTS

Elastic Stack (precedentemente ELK Stack) è un gruppo di software open source sviluppato da Elastic per raccogliere dati da varie fonti. Ti consente di raccogliere, memorizzare, elaborare, analizzare e visualizzare dati da varie fonti in qualsiasi formato sulla piattaforma centrale di Elastic Stack.

L’Elastic Stack è composto da diversi pacchetti software: “Elasticsearch” per memorizzare i tuoi dati, “Kibana” come dashboard per accedere e visualizzare i tuoi dati, la pipeline di raccolta dati dinamica “Logstash” con plugin estensibili per elaborare qualsiasi dato, e “Beats” come piattaforma leggera per il trasferimento di dati che invia dati dalle macchine edge.

L’Elastic Stack può essere distribuito su Promises sul tuo server oppure puoi acquistare il SaaS (Software as a Service) ufficiale Elastic Cloud.

In questo tutorial ti mostreremo come installare Elastic Stack su un server Ubuntu 20.04. Installeremo Elasticsearch e Kibana sullo stesso server e poi installeremo e configureremo “Filebeat” su un altro server per inviare i log direttamente al server Elasticsearch.

Requisiti

Per questo tutorial, utilizzeremo due server che eseguono Ubuntu 20.04. Il software Elastic Stack sarà installato sul server con 4 GB di RAM, e utilizzeremo un altro server con 1 GB come client per Filebeat.

Cosa faremo?

  • Aggiungere il repository di Elastic Stack
  • Installare e configurare Elasticsearch
  • Installare e configurare Kibana
  • Configurare Nginx come reverse proxy per Kibana
  • Installare e configurare Filebeat
  • Configurare un nuovo ruolo per l’utente Kibana
  • Creare un nuovo modello di indice Filebeat

Passo 1 - Aggiungere il repository di Elastic Stack

Per prima cosa, aggiungeremo la chiave GPG e il repository del software Elastic Stack a entrambi i server Ubuntu.

Prima di procedere, installa ‘apt-transport-https’ per garantire la sicurezza della tua installazione software tramite connessione HTTPS.

sudo apt install apt-transport-https

Successivamente, aggiungi la chiave GPG e il repository dell’Elastic Stack utilizzando il seguente comando.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -  
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Ora aggiorna tutti i repository disponibili sul sistema Ubuntu.

sudo apt update

E sei pronto per installare tutto il software Elastic Stack su entrambi i server.

add elastic repository

Passo 2 - Installare e configurare Elasticsearch

In questo passo, installeremo e configureremo Elasticsearch sul server a nodo singolo ‘ELK20’ con l’indirizzo IP interno ‘172.16.0.3’.

Prima di installare Elasticsearch, modifica il file ‘/etc/hosts’ utilizzando l’editor vim.

vim /etc/hosts

Ora digita il tuo nome host con l’indirizzo IP interno come di seguito.

172.16.0.3    ELK20

Salva e chiudi.

Successivamente, installa il pacchetto Elasticsearch utilizzando il comando apt qui sotto.

sudo apt install elasticsearch

Una volta completata l’installazione, vai nella directory ‘/etc/elasticsearch’ ed edita il file di configurazione ‘elasticsearch.yml’.

cd /etc/elasticsearch/  
vim elasticsearch.yml

Rimuovi il commento dalla riga ‘node.name’ e digita il nome host del tuo server.

node.name: ELK20

Nella riga ‘network.host’, digita l’indirizzo IP del server su cui il servizio Elasticsearch sarà in esecuzione, ed è consigliato utilizzare solo l’indirizzo IP interno.

network.host: 172.16.0.3

Rimuovi il commento dalla riga ‘http.port’ e lasciala come predefinita, il servizio Elasticsearch sarà in esecuzione sulla porta predefinita ‘9200’.

http.port: 9200

Rimuovi il commento dalla riga ‘cluster.initial_master_nodes’ e digita il nome host del tuo server.

cluster.initial_master_nodes: ["ELK20"]

E infine, abilita la sicurezza di Elasticsearch aggiungendo la seguente configurazione in fondo alla riga.

xpack.security.enabled: true

Salva e chiudi.

Successivamente, ricarica il gestore di servizi systemd, quindi avvia il servizio Elasticsearch e aggiungilo all’avvio del sistema.

systemctl daemon-reload  
systemctl start elasticsearch  
systemctl enable elasticsearch

Il servizio Elasticsearch è attivo e funzionante sul server Ubuntu 20.04.

install and configure elasticsearch

Successivamente, genereremo la password per l’utente integrato su Elasticsearch.

Vai nella directory ‘/usr/share/elasticsearch’ ed esegui il comando utility di Elasticsearch ‘elasticsearch-setup-passwords’ come di seguito.

cd /usr/share/elasticsearch/  
bin/elasticsearch-setup-passwords auto -u "http://172.16.0.3:9200"

Digita ‘y’ per confermare e generare la password.

Iniziando la configurazione delle password per gli utenti riservati elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.  
Le password saranno generate casualmente e stampate sulla console.  
Si prega di confermare che si desidera continuare [y/N] y

Di seguito è riportato il risultato che otterrai.

Cambiata la password per l'utente apm_system  
PASSWORD apm_system = DP5RpFfbCyL6UpIFO8Q3  
  
Cambiata la password per l'utente kibana_system  
PASSWORD kibana_system = U6gDLoJCqqChqcbD1IYV  
  
Cambiata la password per l'utente kibana  
PASSWORD kibana = U6gDLoJCqqChqcbD1IYV  
  
Cambiata la password per l'utente logstash_system  
PASSWORD logstash_system = KrHaGvHGfkAz12dcSeWo  
  
Cambiata la password per l'utente beats_system  
PASSWORD beats_system = VnUUOtShQoFAGEZ62G7m  
  
Cambiata la password per l'utente remote_monitoring_user  
PASSWORD remote_monitoring_user = xgaLXw6jp3Ses6CZ2hEB  
  
Cambiata la password per l'utente elastic  
PASSWORD elastic = elu2ZlMm4mOkM7fgCeUM

Come puoi vedere, la password per alcuni utenti integrati su Elasticsearch è stata generata.

Gambar

Per testare la nostra installazione di Elasticsearch, esegui il comando curl con l’utente predefinito ‘ elastic ‘ come di seguito.

curl -X GET -u elastic "http://172.16.0.3:9200/?pretty"

Digita la password per l’utente ‘ elastic ‘, e di seguito è riportato il risultato che otterrai.

testing elasticsearch authentication

Di conseguenza, il server Elasticsearch è attivo e funzionante con l’autenticazione abilitata.

Passo 3 - Installare e configurare Kibana

In questo passo, installeremo e configureremo Kibana sullo stesso server di Elasticsearch. Collegheremo Kibana al server Elasticsearch con l’utente predefinito ‘kibana_system’ e la password generata sopra.

Installa Kibana utilizzando il comando apt qui sotto.

sudo apt install kibana

Una volta completata l’installazione, vai nella directory ‘/etc/kibana’ ed edita il file di configurazione ‘kibana.yml’ utilizzando l’editor vim.

cd /etc/kibana/  
vim kibana.yml

Rimuovi il commento dalle seguenti righe e cambia i valori con i tuoi. È consigliato eseguire Kibana sulla rete locale perché utilizzeremo Nginx come reverse proxy per Kibana.

server.port: 5601  
server.host: "172.16.0.3"  
server.name: "ELK20"

Dopo di che, cambia ‘elasticsearch.url’ con il tuo indirizzo IP di Elasticsearch.

elasticsearch.url: "http://172.16.0.3:9200"

Rimuovi il commento dalle righe “elasticsearch.username” e ‘elasticsearch.password’, e cambia i dettagli con l’utente e la password che hai generato.

elasticsearch.username: "kibana_system"  
elasticsearch.password: "N88VBkkelfSV3mBfO6Vh"

Salva e chiudi.

Successivamente, ricarica il gestore systemd utilizzando il seguente comando.

systemctl daemon-reload

Dopo di che, avvia il servizio Kibana e aggiungilo all’avvio del sistema.

systemctl start kibana  
systemctl enable kibana

E il servizio Kibana è attivo e funzionante sul sistema Ubuntu 20.04.

install and configure kibana

Successivamente, creeremo un nuovo utente che sarà utilizzato per accedere alla dashboard di Kibana.

Crea un nuovo utente chiamato ‘hakase’ e la password ‘hakasepasskibana’ con il ruolo ‘kibana_admin’ come di seguito.

curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'  
{  
  "password" : "hakasepasskibana",  
  "roles" : [ "kibana_admin" ]  
}  
'

Digita la password per l’utente ‘elastic’, e otterrai il risultato come di seguito.

create kibana user with kibana_admin role

Di conseguenza, il nuovo utente ‘hakase’ è stato creato e potrà accedere alla dashboard di Kibana.

Passo 4 - Configurare Nginx come reverse proxy per Kibana

In questo passo, installeremo e configureremo Nginx come reverse proxy per Kibana.

Installa i pacchetti Nginx utilizzando il comando apt qui sotto.

sudo apt install nginx -y

Una volta completata l’installazione, vai nella directory ‘/etc/nginx/sites-available/‘ e crea un nuovo file di host virtuale ‘kibana’ utilizzando l’editor vim.

cd /etc/nginx/sites-available/  
vim kibana

Cambia il nome di dominio e l’indirizzo IP ‘proxy_pass’ con i tuoi, quindi incollalo.

server {  
    listen 80;  
   
    server_name elk.hakase-labs.io;  
   
    location / {  
        proxy_pass http://172.16.0.3:5601;  
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection 'upgrade';  
        proxy_set_header Host $host;  
        proxy_cache_bypass $http_upgrade;  
    }  
}

Salva e chiudi.

Successivamente, attiva l’host virtuale Nginx per Kibana e verifica la configurazione di Nginx.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/  
nginx -t

Assicurati che non ci siano errori, quindi riavvia il servizio Nginx.

systemctl restart nginx

Di conseguenza, l’installazione e la configurazione di Nginx come reverse proxy per Kibana sono state completate. E la dashboard di Kibana è ora accessibile tramite il nome di dominio ‘elk.hakase-labs.io’.

setup nginx as a reverse proxy for kibana

Apri il tuo browser web e digita il nome di dominio della tua installazione di Kibana nella barra degli indirizzi.

http://elk.hakase-labs.io/

E otterrai la pagina di accesso di Kibana come di seguito.

kibana login page

Digita l’utente ‘hakase’ con la password ‘hakasepass’ e fai clic sul pulsante ‘ Login ‘.

Una volta effettuato l’accesso, ti verrà chiesto di importare i dati di esempio o esplorare i tuoi dati.

kibana select option to explore data

Fai clic sul pulsante ‘ Esplora i miei dati ‘.

Ora otterrai la dashboard di Kibana come di seguito.

Kibana Dashboard

Di conseguenza, l’installazione di Kibana e Nginx è stata completata.

Passo 4 - Installare e configurare Filebeat

In questo passo, installeremo “Filebeat” sulla macchina client con il nome host “client01” e l’indirizzo IP “xxx.xxx.xxx.xxx”. Filebeat invierà i log direttamente al server Elasticsearch.

Prima di installare “Filebeat”, assicurati che il repository di Elastic Stack sia stato aggiunto al tuo sistema.

Ora installa il pacchetto filebeat utilizzando il comando apt qui sotto.

sudo apt install filebeat

Una volta completata l’installazione, vai nella directory ‘/etc/filebeat’ ed edita il file di configurazione ‘filebeat.yml’ utilizzando l’editor vim.

cd /etc/filebeat/  
vim filebeat.yml

In cima alla configurazione ‘filebeat.inputs’, cambia ‘enabled: false’ in ‘enabled: true’ come di seguito.

filebeat.inputs:  
- type: log  
  enabled: true  
  paths:  
    - /var/log/*.log

Successivamente, spostati nella configurazione di Kibana e cambia l’host con l’indirizzo IP e la porta di Kibana, cambia l’username con l’utente predefinito ‘kibana’, e la password generata sopra.

setup.kibana:  
  host: "172.16.0.3:5601"  
  username: "kibana"    
  password: "U6gDLoJCqqChqcbD1IYV"

Dopo di che, spostati nella configurazione ‘output.elasticsearch’ e cambia i dettagli con i tuoi.

output.elasticsearch:  
  hosts: ["172.16.0.3:9200"]  
  username: "elastic"  
  password: "elu2ZlMm4mOkM7fgCeUM"

Salva e chiudi.

Ora ricarica il gestore systemd, avvia il servizio filebeat e aggiungilo all’avvio del sistema.

systemctl daemon-reload  
  
systemctl start filebeat  
systemctl enable filebeat

Il servizio filebeat è attivo e funzionante sulla macchina “ client01 “.

Install and Configure Filebeat

Successivamente, dobbiamo caricare il modello di indice filebeat sul server Elasticsearch utilizzando il seguente comando.

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["http://172.16.0.3:9200"]'

Di seguito è riportato il risultato che otterrai.

Di conseguenza, il modello di indice filebeat è stato caricato sul server Elasticsearch, e sarà disponibile nella dashboard di Kibana come modello di indice ‘filebeat-*’.

Passo 5 - Configurare un nuovo ruolo per l’utente Kibana

In questo passo, creeremo un nuovo ruolo elasticsearch che consente al nostro utente ‘hakase’ di accedere e gestire tutti gli indici sul server Elasticsearch tramite l’API di Elasticsearch.

Crea un nuovo ruolo chiamato ‘ events_index ‘ che consente agli utenti di gestire solo gli indici sul server Elasticsearch utilizzando il seguente comando.

curl -XPOST -u elastic 'http://172.16.0.3:9200/_security/role/events_index' -H "Content-Type: application/json" -d '{  
  "indices" : [  
    {  
      "names" : [ "*" ],  
      "privileges" : [ "all" ]  
    }  
  ]  
}'

Create new role elasticsearch

Dopo di che, controlla il ruolo ‘ events_index ‘ utilizzando il comando qui sotto.

curl -X GET -u elastic "http://172.16.0.3:9200/_security/role/events_index?pretty"

Di seguito è riportato il risultato che otterrai.

check role elasticsearch

Come puoi vedere, il ruolo ‘events_index’ avrà solo privilegi per gestire gli indici.

Successivamente, aggiungi il ruolo ‘events_index’ al nostro utente ‘hakase’ utilizzando il comando qui sotto.

curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'  
{  
  "password" : "hakasepasskibana",  
  "roles" : [ "kibana_admin", "events_index" ]  
}  
'

Digita la password per l’utente ‘ elastic ‘, e il ruolo ‘ events_index ‘ è stato assegnato all’utente ‘ hakase ‘.

Controlla tutti i ruoli disponibili sotto l’utente ‘hakase’ utilizzando il seguente comando.

curl -X GET -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty"

Di seguito è riportato il risultato che otterrai.

assign role to user elasticsearch

Di conseguenza, abbiamo creato un nuovo ruolo per gestire gli indici sul server Elasticsearch.

Passo 6 - Creare un nuovo modello di indice Filebeat

Dopo aver creato un nuovo ruolo chiamato ‘events_index’, creeremo un nuovo modello di indice per Filebeat tramite l’utente ‘ hakase ‘.

- Creare un modello di indice

Nella dashboard di Kibana, fai clic sull’opzione di menu a sinistra, spostati nella sezione “ Gestione “ e fai clic su “ Gestione Stack “.

Nella sezione “ Kibana “, fai clic su “ Modello di indice “.

Create Kibana Index Pattern

Fai clic sul pulsante “Crea modello di indice” per creare un nuovo modello di indice.

Nel campo “modello di indice”, digita “ filebeat-* “ e fai clic sul pulsante “ Passo successivo “.

Create Filebea Index Pattern on kibana

Nel campo “Nome del filtro temporale”, scegli “ @timestamp “ e fai clic sul pulsante “ Crea modello di indice “.

Setup Timestamp as default filter

E il modello di indice “ filebeat-* “ è stato creato, ed è selezionato come modello di indice predefinito (se non hai alcun modello di indice prima).

Filebeat Index Pattern has been created

- Mostrare i dati su Kibana

Per mostrare i dati raccolti da filebeat, fai clic sul menu delle opzioni in alto a sinistra, quindi fai clic su “ Scopri “.

E otterrai tutti i dati raccolti da filebeat dalla macchina “ client01 “.

Data on client01 machine shown on the Kibana Dashboard

Per mostrare i dati in base al tuo filtro, puoi utilizzare il “ KQL “ o il Linguaggio di Query di Kibana.

Digita la seguente query nel campo “ KQL “.

host.name : client01 and log.file.path: "/var/log/auth.log"

E otterrai tutte le informazioni sull’autenticazione SSH sulla macchina “client01”.

Using KQL Kibana Query Language

Di conseguenza, l’installazione di Elastic Stack con la sicurezza abilitata su Ubuntu 20.04 è stata completata con successo.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.