GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare lo stack elastico 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 HTTP Dashboard (Kibana). I dati vengono interrogati, recuperati e archiviati in uno schema di documenti JSON. Elasticsearch è un motore di ricerca scalabile che può essere utilizzato per cercare tutti i tipi di documenti di testo, inclusi i file di registro. Elasticsearch è il cuore di 'Elastic Stack' o ELK Stack.

Logstash è uno strumento open source per la gestione di eventi e registri. Fornisce il pipelining in tempo reale per le raccolte di dati. Logstash raccoglierà i tuoi dati di registro, convertirà i dati in documenti JSON e li archivierà 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. Quindi 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 4 GB di RAM/memoria come 'elk-master' - 10.0.15.10
    • Ubuntu 18.04 con 512 MB/1 GB di Ram/Memoria come 'elk-client01' - 10.0.15.21
    • CentOS 7.5 con 512 MB/1 GB di RAM/memoria come "elk-client02" - 10.0.15.22
  • Privilegi di root

Cosa faremo?

  1. Installa lo stack elastico
    1. Installa Java
    2. Installa e configura ElasticSearch
    3. Installa e configura Kibana
    4. Installa e configura Nginx come proxy inverso per Kibana
    5. Installa e configura Logstash
  2. Installa e configura Filebeat su Ubuntu 18.04
  3. Installa e configura Filebeat su CentOS 7.5
  4. Test

Passaggio 1:installazione dello stack elastico

In questo primo passaggio, installeremo e configureremo lo 'Elastic Stack' sul server 'elk-master', quindi esegui tutti i comandi e le fasi per questo passaggio solo sul server 'elk-master'. Installeremo e configureremo ogni componente dello stack elastico, inclusi Elasticsearch, Logstash shipper e Kibana Dashboard con il server web Nginx.

Installa Java

Java è necessario per la distribuzione dello stack elastico. Elasticsearch richiede Java 8. Si consiglia di utilizzare 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 Java "webupd8team" PPA. Esegui il comando 'apt install' e 'add-apt-repository' di seguito.

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

Ora installa il programma di installazione java8.

sudo apt install oracle-java8-installer -y

Al termine dell'installazione, controlla la versione java.

java -version

Java 1.8 installato sul sistema.

Successivamente, configureremo l'ambiente java. Controlla il file binario java usando il comando seguente.

update-alternatives --config java

E otterrai il file binario java su '/usr/lib/jvm/java-8-oracle ' directory.

Ora crea il file del profilo 'java.sh' nella directory 'profile.d'.

vim /etc/profile.d/java.sh

Incolla la configurazione dell'ambiente java di seguito.

#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 usando il comando seguente.

echo $JAVA_HOME

E otterrai che la directory java si trova in '/usr/lib/jvm/java-8-oracle ' directory.

Installa Elasticsearch

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

Aggiungi la chiave dello stack elastico e aggiungi il repository elastico 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 seguente.

sudo apt update
sudo apt install elasticsearch -y

Al termine dell'installazione, vai alla directory '/etc/elasticsearch' e modifica il file di configurazione 'elasticsearch.yml'.

cd /etc/elasticsearch/
vim elasticsearch.yml

Decommenta la riga 'network.host' e cambia il valore in 'localhost', quindi 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 all'avvio ogni volta all'avvio del sistema.

systemctl start elasticsearch
systemctl enable elasticsearch

Elasticsearch è ora attivo e funzionante, controllalo usando il comando netstat netstat e i comandi curl di seguito.

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

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

L'installazione di elasticsearch è stata completata.

Installa e configura Kibana Dashboard

Il secondo componente è un dashboard kibana. Installeremo il dashboard Kibana dal repository elastico e configureremo il servizio kibana per l'esecuzione sull'indirizzo localhost.

Installa la dashboard di Kibana usando il comando apt di seguito.

sudo apt install kibana -y

Ora vai nella directory '/etc/kibana' e modifica 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 l'avvio 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 usando il comando netstat di seguito.

netstat -plntu

L'installazione della dashboard di Kibana è stata completata.

Installa e configura Nginx come proxy inverso per Kibana

In questo tutorial, utilizzeremo il server Web Nginx come proxy inverso per Kibana Dashboard.

Installa Nginx e i pacchetti 'apache2-utils' sul sistema.

sudo apt install nginx apache2-utils -y

Al termine dell'installazione, vai alla directory di configurazione '/etc/nginx' e crea un nuovo file host virtuale chiamato 'kibana'.

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

Incolla la configurazione dell'host virtuale Nginx di seguito.

server {
    listen 80;
 
    server_name elastic-stack.io;
 
    auth_basic "Restricted Access";
    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 usando il comando htpasswd come di seguito.

sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password

Attiva l'host virtuale kibana e verifica 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 l'avvio ogni volta all'avvio del sistema.

systemctl enable nginx
systemctl restart nginx

L'installazione e la configurazione di Nginx come proxy inverso per la dashboard di Kibana sono state completate.

Installa e configura Logstash

L'ultimo componente per l'Elastic Stack per questa guida è 'Logstash'. Installeremo e configureremo Logsatash per centralizzare i log del server dalle origini client con filebeat, quindi filtreremo e trasformeremo tutti i dati (Syslog) e li trasporteremo nella scorta (Elasticsearch).

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

openssl version -a

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

Installa logstash usando il comando apt di seguito.

sudo apt install logstash -y

Al termine dell'installazione, genereremo la chiave del certificato SSL per proteggere il trasferimento dei dati di registro dal client filebeat al server logstash.

Modifica il file '/etc/hosts' usando vim.

vim /etc/hosts

Aggiungi la configurazione di seguito.

10.0.15.10  elk-master  elk-master

Salva ed esci.

Ora crea una nuova directory SSL nella 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 come di seguito.

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 di Elasticsearch.

Vai alla 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 lì la seguente configurazione.

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 i dati del registro di elaborazione del syslog, utilizziamo il plug-in di filtro denominato 'grok' per analizzare i file del syslog.

Crea una nuova configurazione 'syslog-filter.conf'.

vim conf.d/syslog-filter.conf

Incolla lì la seguente configurazione.

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 di elasticsearch, creeremo il file di configurazione chiamato 'output-elasticsearch.conf'.

vim conf.d/output-elasticsearch.conf

Incolla lì la seguente configurazione.

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

Salva ed esci.

Al termine, avvia il servizio logstash e abilitalo per l'avvio ogni volta all'avvio del sistema.

sudo systemctl enable logstash
sudo systemctl start logstash

Controlla il servizio logstash utilizzando i comandi netstat e systemctl di seguito.

netstat -plntu
systemctl status logstash

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

L'installazione di Elastic Stack è stata completata.

Passaggio 2 - Installa e configura Filebeat su Ubuntu 18.04

In questo passaggio, configureremo il client Ubuntu 18.04 'elk-client01' installando i caricatori di dati Elastic Beats 'Filebeat' su di esso.

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

Modifica il file '/etc/hosts' usando l'editor vim.

vim /etc/hosts

Incolla lì la seguente configurazione.

10.0.15.10  elk-master  elk-master

Salva ed esci.

Copia il file del certificato logstash 'logstash-forwarder.crt' usando il comando scp.

scp [email protected]:/etc/logstash/ssl/logstash-forwarder.crt .

Quindi, installa Elastic Beats 'Filebeat' aggiungendo la chiave elastica e aggiungi il repository elastico.

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' usando il comando apt di seguito.

sudo apt update
sudo apt install filebeat -y

Al termine dell'installazione, vai alla directory '/etc/filebeat' e modifica il file di configurazione 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

Ora abilita i prospettori filebeat modificando il valore della riga "abilitato" in "true".

  enabled: true

Definire i file di registro 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 predefinito "elasticsearch" e decommenta la riga di output logstash come di seguito.

output.logstash:
  # The Logstash hosts
  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 di seguito.

- 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 all'avvio ogni volta all'avvio del sistema.

systemctl start filebeat
systemctl enable filebeat

Controlla il servizio filebeat usando i comandi seguenti.

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

I caricatori di filebeat sono attivi e funzionanti con il server Ubuntu 18.04.

Passaggio 3:installazione e configurazione di Filebeat su CentOS 7.5

In questo passaggio, configureremo il client CentOS 7.5 'elk-client02' installando i mittenti di dati Elastic Beats 'Filebeat' su di esso.

Prima di installare Filebeat sul sistema, è necessario modificare '/etc/hosts' e scaricare il file del certificato logstash 'logstash-forwarder.crt' sul server 'elk-client02'.

Modifica il file '/etc/hosts' usando vim.

vim /etc/hosts

Incolla la configurazione di seguito.

10.0.15.10  elk-master  elk-master

Salva ed esci.

Copia il file del certificato logstash 'logstash-forwarder.crt' usando il comando scp.

scp [email protected]:/etc/logstash/ssl/logstash-forwarder.crt .

Quindi, installa Elastic Beats 'Filebeat' aggiungendo la chiave elastica e aggiungi il repository elastico.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat <<EOF > /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 usando il comando yum qui sotto.

yum install filebeat -y

Al termine dell'installazione, vai alla directory '/etc/filebeat' e modifica il file di configurazione 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

Ora abilita i prospettori filebeat modificando il valore della riga "abilitato" in "true".

  enabled: true

Definire i file di registro 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 predefinito "elasticsearch" e decommenta la riga di output logstash come di seguito.

output.logstash:
  # The Logstash hosts
  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 di seguito.

- 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 usando i comandi seguenti.

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

I caricatori di filebeat sono attivi e funzionanti con il server CentOS 7.5.

Fase 4 - Test

Apri il tuo browser web e digita il nome di dominio dello stack elastico, il mio è:'elastic-stack.io'.

Ti verrà richiesto il nome utente e la password dall'autenticazione di base al Kibana Dashboard.

Digita il nome utente 'elastico' con la tua password.

Ora otterrai la bellissima dashboard di kibana, fai clic sul pulsante "Imposta modelli di indice" sulla destra.

Definisci il modello di indice 'filebeat-*' e fai clic sul pulsante 'Passo successivo'.

Per il "nome del campo del filtro temporale", scegli "@timestamp" e fai clic su "Crea modello di indice".

E il modello di indice filebeat è stato creato.

Successivamente, proveremo a ottenere le informazioni di registro per l'accesso SSH non riuscito su ciascun server client "elk-client01" sistema Ubuntu e sistema "elk-client02" CentOS.

All'interno della dashboard di Kibana, fai clic sul menu "Scopri" per ottenere tutti i registri del server.

Imposta 'beat.hostname' sul server 'elk-client01', la 'sorgente' è il file '/var/log/auth.log' e otterrai il risultato come mostrato di seguito.

Di seguito sono riportati i dettagli del registro di esempio per la password SSH non riuscita dal file 'auth.log'.

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

E di seguito sono riportati i dettagli del registro di esempio per la password SSH non riuscita dal file "sicuro".

L'installazione e la configurazione di Elastic Stack ed Elastic Beat 'Filebeat' sono state completate correttamente.


Ubuntu
  1. Come installare Java su Ubuntu

  2. Come installare Java su Ubuntu 18.04

  3. Come installare Java 17 in Ubuntu 20.04

  4. Come installare Apache Hadoop su Ubuntu 16.04 LTS

  5. Come installare Java 17 LTS su Ubuntu 20.04

Come installare Cassandra su Ubuntu 16.04 LTS

Come installare Eclipse IDE su Ubuntu 16.04 LTS

Come installare Oracle Java su Ubuntu 18.04 LTS

Come installare Vai su Ubuntu 18.04 LTS

Come installare Vai su Ubuntu 20.04 LTS

Come installare Java su Ubuntu 22.04