GNU/Linux >> Linux Esercitazione >  >> Ubuntu

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

Pila ELK è una piattaforma di analisi dei dati completa, composta da tre strumenti open source Elasticsearch , Archiviazione e Kibana . Questo stack ti aiuta a archiviare e gestire i registri a livello centrale e offre la possibilità di analizzare i problemi correlando gli eventi in un momento particolare.

Questo post ti guida a installare lo stack ELK su Ubuntu 18.04 / Ubuntu 16.04 .

Componenti

Ricerca elastica – Memorizza i log in entrata da Logstash e offre la possibilità di cercare log/dati in tempo reale

Archiviazione – Elaborazione (raccogli, arricchisci e invialo a Elasticsearch) dei log in arrivo inviati da beats (forwarder).

Kibana – Fornisce la visualizzazione di eventi e registri.

Batti – Installato su macchine client e invia i log a Logstash o Elasticsearch tramite il protocollo Beats.

Prerequisiti

Installa Java

Elasticsearch richiede OpenJDK o Oracle JDK disponibile sulla tua macchina.

Qui, per questa demo, sto usando OpenJDK. Installa Java utilizzando il comando seguente insieme al pacchetto di supporto wget e HTTPS per APT.

sudo apt aggiornamentiudo apt install -y openjdk-8-jdk wget apt-transport-https

Controlla la versione Java.

versione java

Risultato:

openjdk versione "1.8.0_181"OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)OpenJDK 64-Bit Server VM (build 25.181-b13, modalità mista)

Se vuoi usare Oracle Java JDK, leggi.

LEGGI :Installa Oracle Java JDK 10/8 su Ubuntu 18.04

LEGGI :Installa Oracle Java JDK 8 su Ubuntu 16.04

Configura repository ELK

I pacchetti impilati ELK possono essere facilmente ottenuti da Elastic CO impostando il suo repository ufficiale .

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

Installa Elasticsearch

Ora installeremo il server Elasticsearch, un motore di ricerca open source basato su Lucene. Fornisce un motore di ricerca full-text distribuito in tempo reale con capacità multi-tenant con un'interfaccia Web (HTTP) e documenti JSON senza schema.

Installa Elasticsearch utilizzando il comando seguente, v6.4 al momento della stesura di questo articolo.

sudo apt aggiornamentiudo apt install -y elasticsearch

Avvia il servizio Elasticsearch.

sudo systemctl avvia elasticsearchsudo systemctl abilita elasticsearch

Attendi qualche minuto ed esegui il comando seguente per vedere lo stato dell'interfaccia REST di Elasticsearch.

curl -X OTTIENI http://localhost:9200

Risultato:

{ "name" :"nqS7TFZ", "cluster_name" :"elasticsearch", "cluster_uuid" :"vERyh1VpR46G9T21H_3gKQ", "version" :{ "number" :"6.4.0", "build_flavor" :"default" , "build_type" :"deb", "build_hash" :"595516e", "build_date" :"2018-08-17T23:18:47.308994Z", "build_snapshot" :false, "lucene_version" :"7.4.0", "minimum_wire_compatibility_version" :"5.6.0", "minimum_index_compatibility_version" :"5.0.0" }, "tagline" :"Sai, per la ricerca"}

L'output di cui sopra conferma che Elasticsearch è attivo e funziona correttamente.

Installa Logstash

Logstash è un motore di raccolta dati e analisi dei log open source. Raccoglie i log, li analizza e li archivia su Elasticsearch per la ricerca. Sono disponibili oltre 160 plug-in per Logstash che offre la capacità di elaborare un diverso tipo di eventi senza lavoro aggiuntivo.

sudo apt install -y logstash

Crea certificato SSL per Logstash (facoltativo)

È facoltativo impostare il Forwarder (Filebeat) che installiamo sui computer client per utilizzare il certificato SSL per la trasmissione sicura dei log.

Crea il certificato SSL con il nome host o IP SAN.

Opzione 1:(Nome host o FQDN)

Vai alla directory OpenSSL.

cd /etc/ssl/

Ora crea il certificato SSL usando OpenSSL. Sostituisci server.itzgeek.local con il nome host del tuo server Logstash.

sudo openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.local 

Questo logstash-forwarder.crt dovrebbe essere copiato su tutti i server client che inviano i log al server logstash.

Opzione 2:(Indirizzo IP)

Segui i passaggi seguenti per creare un certificato SSL per IP SAN.

Come prerequisito, aggiungi l'indirizzo IP del server Logstash a SubjectAltName nel file di configurazione di OpenSSL.

sudo nano /etc/ssl/openssl.cnf

Cerca [ v3_ca ] sezione e aggiorna subjectAltName con l'indirizzo IP del tuo server Logstash.

subjectAltName =IP:192.168.1.10 

Vai alla directory OpenSSL.

cd /etc/ssl/

Ora crea il certificato SSL eseguendo il seguente comando.

sudo openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt

Questo logstash-forwarder.crt dovrebbe essere copiato su tutti i server client che inviano i log al server logstash.

Convertire SSL

Converti la chiave corrente nel formato PKCS8 affinché Logstash funzioni correttamente.

sudo openssl pkcs8 -in logstash-forwarder.key -topk8 -nocrypt -out logstash-forwarder.key.pem

Modifica l'autorizzazione del file in modo che sia leggibile da tutto il mondo.

sudo chmod 644 /etc/ssl/logstash-forwarder.key.pem

Configura Logstash

La configurazione di Logstash è composta da tre sezioni, ovvero input, filtro e output. Puoi inserire tutte le sezioni in un unico file o in un file separato per ciascuna sezione, terminare con .conf .

Qui useremo un singolo file per posizionare le sezioni di input, filtro e output. Crea un file di configurazione in /etc/logstash/conf.d/ directory.

sudo nano /etc/logstash/conf.d/logstash.conf

Nella sezione di input, configureremo Logstash in modo che sia in ascolto sulla porta 5044 per i log in entrata, dai beat (Forwarder) che si trovano sui computer client.

Inoltre, aggiungi i dettagli del certificato SSL nella sezione di input per una comunicazione sicura.

input { beats { port => 5044  # Imposta su False se non esegui SSL ssl => true  # Elimina le righe sottostanti se non viene utilizzato SSL ssl_certificate => "/etc/ssl/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key.pem" }}

Nella sezione filtri. Utilizzeremo Grok per analizzare i log prima di inviarli a Elasticsearch, per l'archiviazione.

Il seguente filtro grok cercherà i log etichettati syslog e prova ad analizzarli per creare un indice strutturato.

filtro {if [type] =="syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date {match => [ "timestamp", "MMM d HH:mm :ss", "MMM gg HH:mm:ss" ]} }}

Per ulteriori pattern di filtro GROK, dai un'occhiata a qui .

Nella sezione output definiremo dove archiviare i log, ovviamente Elasticsearch in caso di stack ELK.

output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}

Ora avvia e abilita il servizio Logstash.

sudo systemctl riavvia logstashsudo systemctl abilita logstash

Registri Logstash:

sudo cat /var/log/logstash/logstash-plain.log

Installa e configura Kibana

Kibana fornisce la visualizzazione dei dati archiviati su Elasticsearch. Installa Kibana usando il seguente comando.

sudo apt install -y kibana
Per impostazione predefinita, Kibana è in ascolto su localhost, il che significa che non puoi accedere all'interfaccia web di Kibana da macchine esterne.

Per consentire l'accesso, modifica /etc/kibana/kibana.yml file.

sudo nano /etc/kibana/kibana.yml

Apporta le modifiche alla riga sottostante con l'indirizzo IP del tuo server.

server.host:"192.168.1.10 "

Inoltre, alcuni casi Elasticsearch e Kibana funzionano su macchine diverse , quindi aggiorna la riga sottostante con l'indirizzo IP del server Elasticsearch.

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

Avvia e abilita Kibana all'avvio della macchina.

sudo systemctl riavvia kibanasudo systemctl abilita kibana

Installa Beats

Sono disponibili quattro client beat.

Packetbeat – Analizza i dati dei pacchetti di rete.
Filebeat – Informazioni in tempo reale sui dati di registro.
Topbeat – Ottieni informazioni dettagliate dai dati dell'infrastruttura.
battito metrico – Invia le metriche a Elasticsearch.

Assicurarsi che le macchine client possano risolvere il nome host del server Logstash. Se il tuo ambiente non ha un server DNS , dovrai aggiungere una voce host per il server Logstash sul computer client.

sudo nano /etc/hosts

Crea una voce simile a quella di seguito.

192.168.1.10 server.itzgeek.local

Installa Filebeat

Filebeat è un agente software che viene eseguito sulla macchina client remota e invia i log al server Logstash per l'analisi o Elasticsearch per l'archiviazione dipende dalla configurazione.

Installa il supporto HTTPS per apt.

sudo apt aggiornamentiudo apt install -y apt-transport-https

Filebeat è disponibile nel repository Elastic, quindi è necessario configurarlo per l'installazione di Filebeat.

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

Installa Filebeat usando il seguente comando.

sudo apt aggiornamentiudo apt install -y filebeat

Configura Filebeat

Per prima cosa, copia il file logstash-forwarder.crt sul computer client remoto.

Salta questo passaggio, nel caso in cui non utilizzi SSL in Logstash per comunicazioni sicure.
scp -pr [email protected] :/etc/ssl/logstash-forwarder.crt /etc/ssl

Modifica il file di configurazione di filebeat /etc/filebeat/filebeat.yml per inviare i log al server Logstash.

sudo nano /etc/filebeat/filebeat.yml

La configurazione seguente prevede l'invio dei log di sistema (/var/log/syslog ) al server Logstash. Per questa demo, ho commentato /var/log/*.log per evitare di inviare tutti i log al server Logstash.

. . .filebeat.inputs:# Each - è un input. La maggior parte delle opzioni può essere impostata a livello di input, quindi# puoi utilizzare input diversi per varie configurazioni.# Di seguito sono riportate le configurazioni specifiche per gli input.- digita:log # Cambia in true per abilitare questa configurazione di input. abilitato:vero # Percorsi di cui eseguire la scansione e il recupero. Percorsi basati su glob. percorsi:- /var/log/syslog #- /var/log/*.log. . . Nella sezione Output, commenta la sezione output.elasticsearch: poiché non memorizzeremo i log su Elasticsearch.

Ora trova la riga output.logstash: e modificare le voci per inviare i log di sistema a Logstash e menzionare anche la posizione del certificato SSL.

Sostituisci server.itzgeek.local con indirizzo IP del server Logstash nel caso si utilizzi IP SAN. . . .output.logstash:host:["server.itzgeek.local:5044 "] # Commenta questa riga se non stai utilizzando SSL sul server Logstash ssl.certificate_authorities:["/etc/ssl/logstash-forwarder.crt "]. . .

Riavvia il servizio Filebeat.

sudo systemctl riavvia filebeat

Il registro di Filebeat si trova in genere nel suo file di registro.

sudo cat /var/log/filebeat/filebeat

Accedi all'interfaccia Kibana

Accedi all'interfaccia web di Kibana andando al seguente URL.

http://il-tuo-indirizzo-ip:5601/

O

http://nome-del-servizio:5601

Otterresti la home page di Kibana.

Al tuo primo accesso, devi mappare l'indice di filebeat. Vai a Gestione>> Modelli di indice .

Digita quanto segue nel Pattern dell'indice casella.

filebeat-*

Dovresti vedere l'indice filebeat qualcosa come sopra. Fai clic su Passaggio successivo .

Seleziona  @timestamp e quindi fai clic su Crea modello di indice .

@timestamp

Dai un'occhiata ai modelli dell'indice e alla sua mappatura.

Fai clic su Scopri nella barra di navigazione a sinistra per visualizzare i log in entrata dalle macchine client.

Questo è tutto.


Ubuntu
  1. Come installare e utilizzare Elasticsearch su Ubuntu 20.04

  2. Come installare Elasticsearch, Logstash e Kibana 4 su CentOS 7 / RHEL 7

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

  4. Come installare e configurare Elasticsearch su Ubuntu 20.04

  5. Installa Elasticsearch, Logstash e Kibana su Ubuntu 20.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

Come installare ELK Stack su Ubuntu 20.04 LTS

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

Come installare ELK Stack su Ubuntu 20.04