GNU/Linux >> Linux Esercitazione >  >> Ubuntu

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

ALK è uno stack di analisi dei dati completo, composto da Elasticsearch , Logstash e Kibana che ti aiutano a archiviare e gestire i log centralmente e offre la possibilità di analizzare i problemi correlando gli eventi in un momento particolare.

Questa guida ti aiuta a installare lo stack ELK su Ubuntu 16.04.

Componenti

Logstash – Esegue l'elaborazione (raccogli, arricchisci e invialo a Elasticsearch) dei log in arrivo inviati da beats (forwarder).

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

Kibana:fornisce la visualizzazione dei registri.

Beats:installato sui computer client, invia i log a Logstash tramite il protocollo Beats.

Prerequisiti

Passa all'utente root.

su -

O

sudo su -

Poiché Elasticsearch è basato su Java, devi avere OpenJDK o Oracle JDK installato sulla tua macchina.

LEGGI :Come installare Oracle Java 8 su Ubuntu 16.04 / LinuxMint 18

Qui, scelgo di installare OpenJ D K .

apt-get updateapt-get install -y openjdk-8-jdk wget

Controlla la versione di JAVA.

versione java

Risultato:

openjdk versione "1.8.0_131"OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)OpenJDK 64-Bit Server VM (build 25.131-b11, modalità mista)

Installa Elasticsearch

Elasticsearch è un server di ricerca open source, offre una ricerca e un'analisi distribuite in tempo reale con l'interfaccia web RESTful.

Elasticsearch memorizza tutti i dati inviati dal logstash e visualizzati tramite kibana su richiesta degli utenti.

Questo argomento tratta le impostazioni di configurazione necessarie per ELK. Puoi anche seguire  Installa Elasticsearch su CentOS 7 / Ubuntu 16.04 / Linux Mint 18 per ulteriori istruzioni.

Configura il repository Elasticsearch.

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

Installa Elasticsearch.

apt-get updateapt-get install -y elasticsearch

Configura Elasticsearch per l'avvio durante l'avvio del sistema.

systemctl abilita elasticsearchsystemctl avvia elasticsearch

Elastisearch dovrebbe ora essere in ascolto su 9200 per l'elaborazione della richiesta HTTP; possiamo usare CURL per ottenere la risposta.

curl -X OTTIENI http://localhost:9200

Risultato:

{ "name" :"gf5QYAn", "cluster_name" :"elasticsearch", "cluster_uuid" :"S6gZNkMERpSr-MGXqEFUJw", "version" :{ "number" :"5.5.2", "build_hash" :" b2f0c09", "build_date" :"2017-08-14T12:33:14.154Z", "build_snapshot" :false, "lucene_version" :"6.6.0" }, "tagline" :"Sai, per la ricerca"}

Installa Logstash

Logstash è uno strumento 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.

Installa Logstash usando il comando apt-get.

apt-get install -y logstash

Crea certificato SSL

Il server di inoltro (filebeat) che verrà installato sui server client utilizza il certificato SSL per convalidare l'identità del server Logstash per una comunicazione sicura.

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

Opzione 1:(FQDN nome host)

Se usi il nome host nella configurazione beats (forwarder), assicurati di avere un record per il server logstash; assicurarsi che la macchina client possa risolvere il nome host del server logstash.

Se non hai un nameserver nel tuo ambiente; assicurati di aggiungere la voce host per il server logstash nelle macchine client e nel server logstash.

sudo nano /etc/hosts192.168.12.10 server.itzgeek.local

Vai alla directory OpenSSL.

cd /etc/ssl/

Ora crea il certificato SSL. Sostituisci "verde ” uno con il nome host del tuo vero server logstash.

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

Opzione 2:(Indirizzo IP)

Se prevedi di utilizzare l'indirizzo IP invece del nome host, segui i passaggi per creare un certificato SSL per IP SAN.

Come prerequisito, dovremmo aggiungere un indirizzo IP del server logstash a SubjectAltName nel file di configurazione di OpenSSL.

nano /etc/ssl/openssl.cnf

Cerca la sezione "[ v3_ca ]" e sostituisci "verde ” uno con l'IP del tuo server logstash.

subjectAltName =IP:192.168.12.10 

Vai alla directory OpenSSL.

cd /etc/ssl/

Ora,  crea un certificato SSL eseguendo il seguente comando.

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.

Configura Logstash

La configurazione di Logstash può essere trovata in /etc/logstash/conf.d/. Se i file non esistono, creane uno nuovo. il file di configurazione logstash è costituito da tre sezioni input, filter e output; tutte e tre le sezioni possono essere trovate in un unico file oppure ogni sezione avrà file separati che terminano con .conf.

Ti consiglio di utilizzare un unico file per posizionare le sezioni di input, filtro e output.

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

Nella prima sezione, inseriremo una voce per la configurazione dell'input. La configurazione seguente imposta Logstash in modo che sia in ascolto sulla porta 5044 per i log in arrivo 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 ssl => true ssl_certificate => "/etc/ssl/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" congestion_threshold => "40 " }}

Nella sezione filtri. Utilizzeremo Grok per analizzare i log prima di inviarli a Elasticsearch. Il seguente filtro grok cercherà i log etichettati "syslog" e proverà ad analizzarli per creare un indice strutturato.

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

Per ulteriori modelli di filtro, dai un'occhiata alla pagina grokdebugger.

Nella sezione di output, definiremo la posizione in cui verranno archiviati i log; ovviamente dovrebbe essere Elasticsearch.

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

Ora avvia e abilita il logstash.

systemctl avvia logstashsystemctl abilita logstash

Puoi risolvere qualsiasi problema guardando il registro di seguito.

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

Successivamente, configureremo i beat per spedire i log al server logstash.

Installa Filebeat

Sono disponibili quattro client beat.

  1. Packetbeat:analizza i dati dei pacchetti di rete.
  2. Filebeat:informazioni dettagliate in tempo reale sui dati di registro.
  3. Topbeat: ottieni informazioni dai dati dell'infrastruttura.
  4. Metricbeat: invia le metriche a Elasticsearch.

Su computer client:

Per analizzare i log di sistema, utilizzeremo filebeat qui. Puoi scaricare filebeat dal sito ufficiale oppure puoi utilizzare il comando seguente per installarlo.

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

Installa Filebeat.

apt-get update apt-get install -y filebeat

Filebeat (beats) utilizza il certificato SSL per convalidare l'identità del server logstash, quindi copia logstash-forwarder.crt dal server logstash al client.

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

Configura Filebeat

Ora è il momento di connettere filebeat con Logstash; segui i passaggi seguenti per configurare filebeat con lo stack ELK.

Il file di configurazione di Filebeat è in formato YAML, il che significa che il rientro è molto importante. Assicurati di utilizzare lo stesso numero di spazi utilizzati nella guida.

Apri il file di configurazione di filebeat.

nano /etc/filebeat/filebeat.yml

In alto, vedresti prospettori di filebeat. Qui è necessario specificare quali file devono essere inviati a logstash e come devono essere gestiti. Ogni cercatore inizia con carattere.

A scopo di test, configureremo filebeat per inviare /var/log/syslog al server Logstash. Per farlo, modifica il cercatore esistente in percorsi sezione. Commenta il – /var/log/*.log per evitare di inviare tutti i .log file presente in quella directory in Logstash.

. . . percorsi:        - /var/log/syslog # - /var/log/*.log. . .

Nella sezione Output , commenta la sezione output.elasticsearch: poiché non memorizzeremo i log direttamente su Elasticsearch.

Ora, trova la riga "output.logstash: ” e modificare le voci come di seguito. Questa sezione definisce filebeat per inviare i log al server logstash “server.itzgeek.local ” sulla porta “5044 ” e menziona il percorso in cui è posizionato il certificato SSL copiato.

Nota:sostituisci "server.itzgeek.local ” con indirizzo IP nel caso si utilizzi IP SAN.

. . .output.logstash:# L'host di Logstash ospita:["server.itzgeek.local:5044 "] # SSL opzionale. Per impostazione predefinita è disattivato. # Elenco dei certificati radice per le verifiche del server HTTPS ssl.certificate_authorities:["/etc/ssl/logstash-forwarder.crt "].   .   .

Riavvia il servizio.

systemctl riavvia filebeatsystemctl abilita filebeat

I registri dei battiti si trovano in genere nel relativo file di registro.

cat /var/log/filebeat/filebeat

Installa e configura Kibana

Kibana fornisce la visualizzazione dei log memorizzati su elasticsearch, scaricalo dal sito ufficiale oppure usa il comando seguente per configurare il repository.

apt-get install -y kibana

Modifica il file kibana.yml.

nano /etc/kibana/kibana.yml

Per impostazione predefinita, Kibana è in ascolto su localhost, il che significa che non puoi accedere all'interfaccia di Kibana da macchine esterne. Per abilitarlo, modifica la riga sottostante con l'IP della tua macchina.

server.host:"192.168.12.10 "

Decommenta la riga seguente e aggiornala con l'URL dell'istanza Elasticsearch. Nel mio caso, è localhost.

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

Avvia e abilita kibana all'avvio del sistema.

systemctl avvia kibanasystemctl abilita kibana

Accedi al Kibana utilizzando il seguente URL.

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

O

http://nome-del-servizio:5601

Al tuo primo accesso, devi mappare l'indice di filebeat.

Digita quanto segue nel Nome o modello dell'indice casella.

filebeat-*

Seleziona  @timestamp e quindi fai clic su crea.

@timestamp

Esamina i modelli dell'indice e la relativa mappatura.

Fai clic su Scopri nella navigazione a sinistra per visualizzare i registri in entrata dal computer client.

È tutto. Hai impostato correttamente lo stack ELK su Ubuntu 16.04


Ubuntu
  1. Installazione dello stack ELK su Ubuntu 14.04

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

  3. Installazione di Filebeat, Logstash, ElasticSearch e Kibana in Ubuntu 14.04

  4. Come installare e configurare Elasticsearch su Ubuntu 20.04

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

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

Come installare ELK Stack su Ubuntu 20.04