Installazione software · 13 min read · Nov 25, 2025

Come installare Elastic Stack su Ubuntu 18.04 LTS

Elasticsearch è un motore di ricerca open source basato su Lucene, sviluppato in Java. Fornisce un motore di ricerca full-text distribuito e multi-tenant con un’interfaccia web Dashboard HTTP (Kibana). I dati vengono interrogati, recuperati e memorizzati in uno schema di documento JSON. Elasticsearch è un motore di ricerca scalabile che può essere utilizzato per cercare tutti i tipi di documenti di testo, inclusi i file di log. Elasticsearch è il cuore dell’ ‘Elastic Stack’ o ELK Stack.

Logstash è uno strumento open source per la gestione di eventi e log. Fornisce un pipeline in tempo reale per la raccolta dei dati. Logstash raccoglierà i tuoi dati di log, convertirà i dati in documenti JSON e li memorizzerà in Elasticsearch.

Kibana è uno strumento di visualizzazione dei dati open source per Elasticsearch. Kibana fornisce una bella interfaccia web dashboard. Ti consente di gestire e visualizzare i dati da Elasticsearch. Non è solo bello, ma anche potente.

In questo tutorial, ti mostrerò come installare e configurare Elastic Stack su un server Ubuntu 18.04 per il monitoraggio dei log del server. Poi ti mostrerò come installare e configurare ‘Elastic beats’ su un server client Ubuntu 18.04 e CentOS 7.

Prerequisiti

  • 3 Server - Ubuntu 18.04 con 4GB di RAM/memoria come ‘elk-master’ - 10.0.15.10
  • Ubuntu 18.04 con 512MB/1GB di RAM/memoria come ‘elk-client01’ - 10.0.15.21
  • CentOS 7.5 con 512MB/1GB di RAM/memoria come ‘elk-client02’ - 10.0.15.22
  • Privilegi di root

Cosa faremo?

  1. Installare Elastic Stack 1. Installare Java
  2. Installare e configurare ElasticSearch
  3. Installare e configurare Kibana
  4. Installare e configurare Nginx come Reverse Proxy per Kibana
  5. Installare e configurare Logstash
  6. Installare e configurare Filebeat su Ubuntu 18.04
  7. Installare e configurare Filebeat su CentOS 7.5
  8. Testare

Passo 1 - Installare Elastic Stack

In questo primo passo, installeremo e configureremo l’ ‘Elastic Stack’ sul server ‘elk-master’, quindi esegui tutti i comandi e le fasi per questo passo solo sul server ‘elk-master’. Installeremo e configureremo ciascun componente dell’elastic stack, inclusi Elasticsearch, Logstash shipper e Kibana Dashboard con il server web Nginx.

Installare Java

Java è necessario per il deployment dell’Elastic stack. Elasticsearch richiede Java 8. È consigliato utilizzare l’Oracle JDK 1.8, e installeremo Java 8 da un repository PPA.

Installa i pacchetti ‘software-properties-common’ e ‘apt-transport-https’, quindi aggiungi il repository PPA ‘webupd8team’ Java. Esegui il comando ‘apt install’ e ‘add-apt-repository’ qui sotto.

sudo apt install software-properties-common apt-transport-https -y  
sudo add-apt-repository ppa:webupd8team/java -y

Ora installa il java8-installer.

sudo apt install oracle-java8-installer -y

Dopo che l’installazione è completata, controlla la versione di java.

java -version

Java 1.8 installato sul sistema.

Successivamente, configureremo l’ambiente java. Controlla il file binario java utilizzando il comando qui sotto.

update-alternatives --config java

E otterrai il file binario java nella directory ‘ /usr/lib/jvm/java-8-oracle ‘.

Ora crea il file di profilo ‘java.sh’ nella directory ‘profile.d’.

vim /etc/profile.d/java.sh

Incolla la configurazione dell’ambiente java qui sotto.

#Set JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH

Salva ed esci.

Rendi il file eseguibile e carica il file di configurazione.

chmod +x /etc/profile.d/java.sh  
source /etc/profile.d/java.sh

Ora controlla l’ambiente java utilizzando il comando qui sotto.

echo $JAVA_HOME

E otterrai la directory java situata nella directory ‘ /usr/lib/jvm/java-8-oracle ‘.

Configura Java

Installare Elasticsearch

Dopo aver installato Java, installeremo il primo componente dell’Elastic Stack, installeremo elasticsearch.

Aggiungi la chiave dell’elastic stack e aggiungi il repository elastic al sistema.

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

Ora aggiorna il repository e installa il pacchetto elasticsearch utilizzando il comando qui sotto.

sudo apt update  
sudo apt install elasticsearch -y

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

cd /etc/elasticsearch/  
vim elasticsearch.yml

Decommenta la riga ‘network.host’ e cambia il valore in ‘localhost’, e decommenta la riga ‘http.port’ per la configurazione della porta elasticsearch.

network.host: localhost
http.port: 9200

Salva ed esci.

Ora avvia il servizio elasticsearch e abilitalo per avviarsi ogni volta all’avvio del sistema.

systemctl start elasticsearch  
systemctl enable elasticsearch

L’elasticsearch è ora attivo e funzionante, controllalo utilizzando il comando netstat e i comandi curl qui sotto.

netstat -plntu  
curl -XGET 'localhost:9200/?pretty'

Ora otterrai la versione di elasticsearch ‘6.2.4’ in esecuzione sulla porta predefinita ‘9200’.

Controlla la porta elasticsearch

L’installazione di elasticsearch è stata completata.

Installare e configurare il Dashboard di Kibana

Il secondo componente è un Dashboard di kibana. Installeremo il dashboard di Kibana dal repository elastic e configureremo il servizio kibana per funzionare sull’indirizzo localhost.

Installa il dashboard di Kibana utilizzando il comando apt qui sotto.

sudo apt install kibana -y

Ora vai nella directory ‘/etc/kibana’ ed edita il file di configurazione ‘kibana.yml’.

cd /etc/kibana/  
vim kibana.yml

Decommenta quelle righe ‘server.port’, ‘server.host’ e ‘elasticsearch.url’.

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

Salva ed esci.

Ora avvia il servizio kibana e abilitalo per avviarsi ogni volta all’avvio del sistema.

sudo systemctl enable kibana  
sudo systemctl start kibana

Il dashboard di kibana è ora attivo e funzionante sull’indirizzo ‘localhost’ e sulla porta predefinita ‘5601’. Controllalo utilizzando il comando netstat qui sotto.

netstat -plntu

Installa Kibana

L’installazione del dashboard di Kibana è stata completata.

Installare e configurare Nginx come Reverse-Proxy per Kibana

In questo tutorial, utilizzeremo il server web Nginx come reverse proxy per il Dashboard di Kibana.

Installa Nginx e i pacchetti ‘apache2-utils’ nel sistema.

sudo apt install nginx apache2-utils -y

Dopo che l’installazione è completata, vai nella directory di configurazione ‘/etc/nginx’ e crea un nuovo file di host virtuale chiamato ‘kibana’.

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

Incolla la configurazione dell’host virtuale Nginx qui sotto.

server {
    listen 80;
 
    server_name elastic-stack.io;
 
    auth_basic "Accesso Riservato";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass http://localhost: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 ed esci.

Successivamente, creeremo un nuovo server web di autenticazione di base per accedere al dashboard di Kibana. Creeremo l’autenticazione di base utilizzando il comando htpasswd come qui sotto.

sudo htpasswd -c /etc/nginx/.kibana-user elastic  
Digita la password dell'utente elastic

Attiva l’host virtuale kibana e testa tutta la configurazione di nginx.

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

Assicurati che non ci siano errori, ora avvia il servizio Nginx e abilitalo per avviarsi ogni volta all’avvio del sistema.

systemctl enable nginx  
systemctl restart nginx

L’installazione e la configurazione di Nginx come Reverse-proxy per il dashboard di Kibana sono state completate.

Configura Nginx

Installare e configurare Logstash

L’ultimo componente per l’Elastic Stack per questa guida è il ‘Logstash’. Installeremo e configureremo Logstash per centralizzare i log del server da fonti client con filebeat, quindi filtrare e trasformare tutti i dati (Syslog) e trasportarli allo stash (Elasticsearch).

Prima di installare logstash, assicurati di controllare la versione di OpenSSL del tuo server.

openssl version -a

Per questa guida, utilizzeremo OpenSSL ‘1.0.2o’. Se stai ancora utilizzando la versione di OpenSSL 1.1.2, riceverai un errore nella connessione SSL di logstash e filebeat.

Installa logstash utilizzando il comando apt qui sotto.

sudo apt install logstash -y

Dopo che l’installazione è completata, genereremo la chiave del certificato SSL per proteggere il trasferimento dei dati di log dal client filebeat al server logstash.

Modifica il file ‘/etc/hosts’ utilizzando vim.

vim /etc/hosts

Aggiungi la configurazione qui sotto.

10.0.15.10  elk-master  elk-master

Salva ed esci.

Ora crea una nuova directory SSL sotto la directory di configurazione di logstash ‘/etc/logstash’ e vai in quella directory.

mkdir -p /etc/logstash/ssl  
cd /etc/logstash/

Genera il certificato SSL per Logstash utilizzando il comando openssl qui sotto.

openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

I file del certificato SSL per Logstash sono stati creati nella directory ‘/etc/logstash/ssl’.

Successivamente, creeremo nuovi file di configurazione per logstash. Creeremo un file di configurazione ‘filebeat-input.conf’ come file di input da filebeat, ‘syslog-filter.conf’ per l’elaborazione syslog, e poi un file ‘output-elasticsearch.conf’ per definire l’output Elasticsearch.

Vai nella directory di configurazione di logstash e crea i nuovi file di configurazione ‘filebeat-input.conf’ nella directory ‘conf.d’.

cd /etc/logstash/  
vim conf.d/filebeat-input.conf

Incolla la seguente configurazione lì.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

Salva ed esci.

Per l’elaborazione dei log syslog, utilizziamo il plugin di filtro chiamato ‘grok’ per analizzare i file syslog.

Crea una nuova configurazione ‘syslog-filter.conf’.

vim conf.d/syslog-filter.conf

Incolla la seguente configurazione lì.

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Salva ed esci.

E per l’output elasticsearch, creeremo il file di configurazione chiamato ‘output-elasticsearch.conf’.

vim conf.d/output-elasticsearch.conf

Incolla la seguente configurazione lì.

output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

Salva ed esci.

Quando questo è fatto, avvia il servizio logstash e abilitalo per avviarsi ogni volta all’avvio del sistema.

sudo systemctl enable logstash  
sudo systemctl start logstash

Abilita e avvia logstash

Controlla il servizio logstash utilizzando i comandi netstat e systemctl qui sotto.

netstat -plntu  
systemctl status logstash

E il servizio logstash è ora attivo e funzionante. In esecuzione sull’indirizzo IP pubblico con la porta ‘5443’.

Controlla le porte

L’installazione dell’Elastic Stack è stata completata.

Passo 2 - Installare e configurare Filebeat su Ubuntu 18.04

In questo passo, configureremo il client Ubuntu 18.04 ‘elk-client01’ installando i data shipper ‘Filebeat’ di Elastic su di esso.

Prima di installare filebeat nel sistema, dobbiamo modificare il file ‘/etc/hosts’ e scaricare il file del certificato logstash ‘logstash-forwarder.crt’ sul server ‘elk-client01’.

Modifica il file ‘/etc/hosts’ utilizzando l’editor vim.

vim /etc/hosts

Incolla la seguente configurazione lì.

10.0.15.10      elk-master      elk-master

Salva ed esci.

Copia il file del certificato logstash ‘logstash-forwarder.crt’ utilizzando il comando scp.

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

Installa Filebeat

Successivamente, installa i ‘Filebeat’ di Elastic aggiungendo la chiave elastic e aggiungendo il repository elastic.

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

Aggiorna il repository e installa il pacchetto ‘filebeat’ utilizzando il comando apt qui sotto.

sudo apt update  
sudo apt install filebeat -y

Dopo che l’installazione è completata, vai nella directory ‘/etc/filebeat’ ed edita il file di configurazione ‘filebeat.yml’.

cd /etc/filebeat/  
vim filebeat.yml

Ora abilita i prospectors di filebeat cambiando il valore della riga ‘enabled’ in ‘true’.

  enabled: true

Definisci i file di log di sistema da inviare al server logstash. Per questa guida, aggiungeremo il file di log ssh ‘auth.log’ e il file syslog.

  paths:
    - /var/log/auth.log
    - /var/log/syslog

Imposta l’output su logstash commentando l’output ‘elasticsearch’ predefinito e decommentando la riga di output logstash qui sotto.

output.logstash:
  # I server Logstash
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

Salva ed esci.

Successivamente, dobbiamo modificare il file ‘filebeat.reference.yml’ per abilitare i moduli filebeat, e abiliteremo il modulo ‘syslog’.

vim filebeat.reference.yml

Abilita il modulo di sistema syslog per filebeat come qui sotto.

- module: system
  # Syslog
  syslog:
    enabled: true

Salva ed esci.

Copia il file del certificato logstash ‘logstash-forwarder.crt’ nella directory ‘/etc/filebeat’.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

L’installazione e la configurazione di Filebeat sono state completate. Ora avvia il servizio filebeat e abilitalo per avviarsi ogni volta all’avvio del sistema.

systemctl start filebeat  
systemctl enable filebeat

Controlla il servizio filebeat utilizzando i comandi qui sotto.

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

I data shipper filebeat sono attivi e funzionanti sul server Ubuntu 18.04.

Filebeat è attivo e funzionante

Passo 3 - Installare e configurare Filebeat su CentOS 7.5

In questo passo, configureremo il client CentOS 7.5 ‘elk-client02’ installando i data shipper ‘Filebeat’ di Elastic su di esso.

Prima di installare il Filebeat nel sistema, dobbiamo modificare il file ‘/etc/hosts’ e scaricare il file del certificato logstash ‘logstash-forwarder.crt’ sul server ‘elk-client02’.

Modifica il file ‘/etc/hosts’ utilizzando vim.

vim /etc/hosts

Incolla la configurazione qui sotto.

10.0.15.10      elk-master      elk-master

Salva ed esci.

Copia il file del certificato logstash ‘logstash-forwarder.crt’ utilizzando il comando scp.

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

Installa Filebeat su CentOS

Successivamente, installa i ‘Filebeat’ di Elastic aggiungendo la chiave elastic e aggiungendo il repository elastic.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch  
   
cat < /etc/yum.repos.d/elastic.repo  
[elasticsearch-6.x]  
name=Elasticsearch repository for 6.x packages  
baseurl=https://artifacts.elastic.co/packages/6.x/yum  
gpgcheck=1  
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch  
enabled=1  
autorefresh=1  
type=rpm-md  
EOF

Installa filebeat utilizzando il comando yum qui sotto.

yum install filebeat -y

Dopo che l’installazione è completata, vai nella directory ‘/etc/filebeat’ ed edita il file di configurazione ‘filebeat.yml’.

cd /etc/filebeat/  
vim filebeat.yml

Ora abilita i prospectors di filebeat cambiando il valore della riga ‘enabled’ in ‘true’.

  enabled: true

Definisci i file di log di sistema da inviare al server logstash. Per questa guida, aggiungeremo il file di log ssh ‘auth.log’ e il file syslog.

  paths:
    - /var/log/secure
    - /var/log/messages

Imposta l’output su logstash commentando l’output ‘elasticsearch’ predefinito e decommentando la riga di output logstash qui sotto.

output.logstash:
  # I server Logstash
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

Salva ed esci.

Successivamente, dobbiamo modificare il file ‘filebeat.reference.yml’ per abilitare i moduli filebeat, e abiliteremo il modulo ‘syslog’.

vim filebeat.reference.yml

Abilita il modulo di sistema syslog per filebeat come qui sotto.

- module: system
  # Syslog
  syslog:
    enabled: true

Salva ed esci.

Copia il file del certificato logstash ‘logstash-forwarder.crt’ nella directory ‘/etc/filebeat’.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

L’installazione e la configurazione di Filebeat sono state completate. Ora avvia il servizio filebeat e aggiungilo all’avvio.

systemctl start filebeat  
systemctl enable filebeat

Controlla il servizio filebeat utilizzando i comandi qui sotto.

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

I data shipper filebeat sono attivi e funzionanti sul server CentOS 7.5.

Filebeat è in esecuzione

Passo 4 - Testare

Apri il tuo browser web e digita il nome di dominio dell’elastic stack, il mio è: ‘elastic-stack.io’.

Ti verrà chiesto il nome utente e la password dall’autenticazione di base per il Dashboard di Kibana.

Digita il nome utente ‘elastic’ con la tua password.

Ora otterrai il bellissimo dashboard di kibana, clicca sul pulsante ‘Imposta modelli di indice’ a destra.

Dashboard di Kibana

Definisci il modello di indice ‘filebeat-*’ e clicca sul pulsante ‘Passo successivo’.

Definisci un filebeat

Per il ‘nome del campo del filtro temporale’, scegli ‘@timestamp’ e clicca su ‘Crea modello di indice’.

Crea indice

E il modello di indice filebeat è stato creato.

Modello di indice filebeat creato

Successivamente, proveremo a ottenere le informazioni di log per il login SSH fallito su ciascun server client ‘elk-client01’ sistema Ubuntu e ‘elk-client02’ sistema CentOS.

All’interno del Dashboard di Kibana, clicca sul menu ‘Scopri’ per ottenere tutti i log del server.

Imposta ‘beat.hostname’ sul server ‘elk-client01’, la ‘source’ è il file ‘/var/log/auth.log’, e otterrai il risultato come mostrato qui sotto.

Risultato log

Ecco i dettagli di log di esempio per la password SSH fallita dal file ‘auth.log’.

Login SSH fallito

Per il server ‘elk-client02’ CentOS, imposta ‘beat.hostname’ sul server ‘elk-client02’, la ‘source’ è il file ‘/var/log/secure’, e otterrai il risultato come mostrato qui sotto.

Report per il server 2

Ecco i dettagli di log di esempio per la password SSH fallita dal file ‘secure’.

Report di login

L’installazione e la configurazione dell’Elastic Stack e dell’Elastic Beat ‘Filebeat’ sono state completate con successo.

Riferimenti

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.