GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare Elasticsearch Logstash Kibana (stack elastico) su Ubuntu 18.04

In questa guida imparerai a installare lo stack elastico su Ubuntu 18.04. Pila elastica , precedentemente noto come stack ELK è una raccolta o uno stack di software gratuito e opensource di Elastic Company progettato per la registrazione centralizzata.

Consente la ricerca, l'analisi e la visualizzazione di registri da diverse fonti in una miriade di formati. La registrazione centralizzata aiuta a identificare i problemi del server o dell'applicazione da un punto comune.

Componenti dello stack elastico

Elastic Stack comprende 4 componenti principali.

  1. Ricerca elastica :Questo è un motore di ricerca RESTful che archivia o conserva tutti i dati raccolti
  2. Archiviazione :questo è il componente che elabora i dati e li analizza per la ricerca elastica
  3. Kibana :Questa è un'interfaccia web che visualizza i log
  4. Batti :Si tratta di spedizionieri di dati leggeri che spediscono i registri da centinaia/migliaia di server al server centrale su cui è configurato ELK.

Vediamo ora come installare lo stack elastico su Ubuntu 18.04.

Prerequisiti

Prima di iniziare l'installazione assicurati di disporre della seguente infrastruttura.

  1. Server Ubuntu 18.04 LTS con accesso root e utente non root più firewall ufw. I seguenti dovrebbero essere i requisiti minimi del server.
    • Ubuntu 18.04 LTS
    • 4 GB di RAM
    • 2 CPU
  2. Java 8 installato sul tuo sistema che sarà richiesto da Elasticsearch e Logstash.
  3. NGINX installato sul tuo server che verrà successivamente configurato per gestire Kibana. Lettura consigliata:installa Nginx su Ubuntu 18.04

Detto questo, tuffiamoci e iniziamo l'installazione dello stack elastico su Ubuntu.

1. Installa Elasticsearch su Ubuntu

Prima di tutto, importeremo la chiave GPG pubblica di Elasticsearch in APT. I pacchetti dello stack elastico sono generalmente firmati con la chiave di firma Elasticsearch per proteggere il sistema dallo spoofing dei pacchetti. Inoltre, i pacchetti autenticati sono considerati attendibili dal gestore dei pacchetti.

Per importare l'esecuzione della chiave GPG:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Quindi, aggiungi il repository elastico a sources.list.d directory utilizzando il comando seguente.

echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

L'output dei due comandi è il seguente:

Risultato

Ora aggiorna il repository del sistema usando il comando seguente.

sudo apt update

Risultato campione

Ora installa Elasticsearch utilizzando il comando seguente.

sudo apt install elasticsearch

Risultato

2. Configura Elasticsearch su Ubuntu

Elasticsearch è in ascolto sulla porta 9200. Tuttavia, limiteremo l'accesso esterno in modo che le parti esterne non possano accedere ai dati e chiuderemo il cluster elastico. Detto questo, apporteremo alcune modifiche al file di configurazione di Elasticsearch come mostrato di seguito

sudo nano /etc/elasticsearch/elasticsearch.yml

Trova il network.host attribuiscilo e decommentalo e aggiungi localhost come suo valore. Decommenta anche il http.port attributo.

Risultato


network.host: localhost
http.port: 9200

Quindi, avvia e abilita il servizio Elasticsearch come mostrato.


sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Risultato

A questo punto, Elasticsearch dovrebbe essere attivo e funzionante. Puoi verificarlo eseguendo il comando seguente.

systemctl status elasticsearch

Risultato

Puoi anche usare netstat comando come mostrato.

netstat -pnltu

Inoltre, puoi eseguire il curl comando come mostrato.

curl -X GET "localhost:9200"

Risultato

Grande! Abbiamo finalizzato l'installazione e la configurazione di Elasticsearch. Successivamente, installeremo e configureremo Logstash.

3. Installazione e configurazione di Logstash

Il secondo componente dello stack elastico che installeremo è Logstash. Logstash sarà responsabile della raccolta e della centralizzazione dei registri da vari server utilizzando il data shipper di filebeat. Quindi filtrerà e trasmetterà i dati del syslog a Elasticsearch.

Innanzitutto, confermiamo che OpenSSL è in esecuzione. Per farlo, corri.

openssl version -a

Risultato

Per installare Logstash, esegui il comando seguente.

sudo apt install logstash -y

Risultato

Quindi, modifica il /etc/hosts archiviare e aggiungere quanto segue.

18.224.44.11  elk-master

Dove 18.224.44.11 è l'indirizzo IP del server masterELk.

Genereremo quindi la chiave del certificato SSL per proteggere il trasferimento dei dati di registro dal client filebeat al server logstash.

Per fare ciò, prima crea una nuova directory SSL nella directory di configurazione di logstash '/etc/logstash' e naviga in quella directory.


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

Ora puoi generare il certificato SSL come mostrato 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

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 infine un file 'output-elasticsearch.conf' per definire l'output di Elasticsearch.

Passa alla directory Logstash e crea un 'filebeat-input.conf' nella directory 'conf.d'.

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

Incolla 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 dall'editor di testo.

Per i dati del registro di elaborazione del syslog, utilizziamo il plug-in di filtro denominato "grok" per l'analisi dei file del syslog.

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

vim conf.d/syslog-filter.conf

Incolla la configurazione qui sotto.


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 dall'editor di testo.

Infine, crea un file di configurazione chiamato "output-elasticsearch.conf" per l'output di elasticsearch.

vim conf.d/output-elasticsearch.conf

Incolla il seguente contenuto.


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

Salva ed esci dall'editor di testo.

Al termine, abilita e avvia il servizio Logstash.

sudo systemctl enable logstash
sudo systemctl start logstash

Per verificare che Logstash sia in esecuzione, esegui il comando.

sudo systemctl status logstash

Risultato campione

Puoi anche usare netstat comando come mostrato.

netstat -pnltu

4. Installa e configura Kibana su Ubuntu

Successivamente, installeremo Kibana usando il comando seguente.

sudo apt install kibana -y

Risultato

Successivamente, apporteremo alcune modifiche al file di configurazione di kibana.

vim /etc/kibana/kibana.yml

Individua e decommenta i seguenti attributi.


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

Salva ed esci dall'editor di testo.

Quindi abilita e avvia il servizio Kibana:


sudo systemctl enable kibana
sudo systemctl start kibana

Risultato

Puoi confermare che kibana è in esecuzione sulla porta predefinita 5601 usando il netstat comando come mostrato.

netstat -pnltu

Risultato

5. Installazione e configurazione di NGINX come proxy inverso per Kibana

Stiamo usando NGINX come proxy inverso per i dashboard di kibana. Devi installare Nginx e "Apache2-utils" come mostrato di seguito.

sudo apt install nginx apache2-utils -y

Risultato

Quindi, crea un nuovo file host virtuale chiamato kibana.

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

Incolla il seguente contenuto nel file host virtuale


server {
    listen 80;
 
    server_name localhost;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass https://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 dall'editor di testo. Lettura consigliata:direttiva sulla posizione NGINX.

Quindi, crea un'autenticazione di base per la dashboard di kibana usando htpasswd comando come mostrato.

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

Risultato

Nell'esempio sopra, il nome utente è elastico e la password sarà quella che fornisci.

Quindi, attiva la configurazione dell'host virtuale Kibana e verifica la configurazione di Nginx.

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

Risultato

Senza errori, abilita e riavvia il server Nginx.


systemctl enable nginx
systemctl restart nginx

6. Installazione e configurazione di Filebeat

In questo passaggio, configureremo lo spedizioniere di dati filebeat sul nostro server elk-master. Questo trasmetterà tutti i messaggi di syslog a logstash che verrà elaborato e visualizzato da kibana.

Per installare filebeat esegui:

sudo apt install filebeat

Quindi, apri il file di configurazione di filebeat.

sudo vim /etc/filebeat/filebeat.yml

Utilizzeremo Logstash per eseguire ulteriori elaborazioni sui dati raccolti da Filebeat. Filebeat non sarà necessario per inviare dati direttamente a Elasticsearch. Pertanto, individua e commenta la sezione elasticsearch come mostrato.


#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

Quindi, vai alla sezione Logstash e decommenta come mostrato.


output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

Abilita i prospettori filebeat modificando il valore della riga "abilitato" in "vero".

enabled: true

Specificare i file di registro di sistema da inviare al server logstash. In questo esempio, aggiungeremo il file di registro ssh "auth.log" e il file syslog.


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

Salva ed esci.

Infine, copia il file del certificato logstash – logstash-forwarder.crt – in /etc/filebeat directory.

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

Ora avvia e abilita filebeat.


systemctl start filebeat
systemctl enable filebeat

Per controllare lo stato di esecuzione di filebeat:

systemctl status filebeat

Risultato

7. Test dello stack Elasticsearch

Per testare il nostro stack elastico, apri il browser ed esplora l'IP del tuo server seguito dalla porta 5601 che è la porta ascoltata da kibana.

ip-address:5601

Inserisci nome utente e password e successivamente verrà visualizzata la seguente schermata.

Fare clic sulla scheda "scopri" e fare clic su "Filebeat". Apparirà la seguente interfaccia che ti offre lo streaming live dei dati visualizzati.

Congratulazioni! Hai installato e configurato correttamente The Elastic Stack e Elastic Beat "Filebeat" sul tuo sistema Ubuntu 18.04.


Linux
  1. Come installare Elasticsearch e Kibana su Linux

  2. Come installare Elasticsearch su Ubuntu 18.04

  3. Come installare Elasticsearch, Logstash e Kibana 4 su Ubuntu 14.04 / 15.04

  4. Installa Elasticsearch, Logstash e Kibana su Ubuntu 20.04

  5. Come installare e configurare Elasticsearch su Ubuntu 18.04

Come installare Elasticsearch, Logstash e Kibana (ELK Stack) su CentOS 7 / RHEL 7

Imposta ELK Stack su Ubuntu 16.04 – Installa ElasticSearch, Logstash e Kibana su Ubuntu 16.04

Come installare Elasticsearch, Logstash e Kibana (ELK Stack) su Ubuntu 18.04 / Ubuntu 16.04

Come installare ELK Stack su Ubuntu 18.04

Come installare ELK Stack (Elasticsearch, Logstash e Kibana) su Ubuntu 20.04

Come installare ELK Stack su Ubuntu 18.04 LTS