Lo stack ELK è una piattaforma di analisi dei dati completa, composta da strumenti open source Elasticsearch, Logstash e Kibana. Ti aiuta a archiviare e gestire i log centralmente e ti dà la possibilità di analizzare i problemi.
Questo articolo ti aiuta a installare lo stack ELK su Debian 10 / Debian 9.
Installa lo stack ELK
Elasticsearch – Memorizza i log in entrata da Logstash e offre la possibilità di cercare log/dati in tempo reale
Logstash:elaborazione (raccogli, arricchisci e invialo a Elasticsearch) dei log in arrivo inviati da beats (forwarder).
Kibana:fornisce la visualizzazione di eventi e registri.
Beats:installato sui computer client e invia i log a Logstash o Elasticsearch tramite il protocollo Beats.
Installa Java
Elasticsearch richiede OpenJDK o Oracle JDK disponibili sulla tua macchina. Qui, per questa demo, sto usando OpenJDK.
sudo apt aggiornamentiudo apt install -y openjdk-11-jre
Controlla la versione Java.
versione java
Risultato:
versione openjdk "11.0.7" 2020-04-14OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1)OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1 , modalità mista, condivisione)
Se vuoi usare OracleJDK, leggi:
LEGGI:Come installare Oracle Java su Debian 10 / Debian 9
Aggiungi repository elastico
Installa il supporto wget e HTTPS per apt.
sudo apt install -y wget apt-transport-https curl
I pacchetti ELK possono essere ottenuti dal repository elastico.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Installa e configura Elasticsearch
Per cominciare, installeremo ora 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 privi di schemi.
Elasticsearch archivia i dati inviati dal Logstash e li visualizza tramite Kibana su richiesta dell'utente.
Installa Elasticsearch utilizzando il comando seguente.
sudo apt aggiornamentiudo apt install -y elasticsearch-oss
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" :"debian10", "cluster_name" :"elasticsearch", "cluster_uuid" :"6y4OcEnYS3qkN_AetQAYMQ", "version" :{ "number" :"7.8.0", "build_flavor" :"oss" , "build_type" :"deb", "build_hash" :"757314695644ea9a1dc2fecd26d1a43856725e65", "build_date" :"2020-06-14T19:35:50.234439Z", "build_snapshot" :false, "lucene_version" :1", " "minimum_wire_compatibility_version" :"6.8.0", "minimum_index_compatibility_version" :"6.0.0-beta1" }, "tagline" :"Sai, per la ricerca"}
L'output di cui sopra conferma che Elasticsearch è attivo e funziona correttamente.
Installa e configura 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 diversi tipi di eventi senza lavoro aggiuntivo.
sudo apt install -y logstash-oss
Il file di configurazione di Logstash è composto da tre sezioni, ovvero input, filtro e output. Puoi mettere tutte e tre le sezioni in un unico file, o un file separato per ogni sezione, terminare con .conf.
Qui, utilizziamo un singolo file per posizionare le sezioni di input, filtro e output. Crea un file di configurazione nella directory /etc/logstash/conf.d/.
sudo nano /etc/logstash/conf.d/beats-syslog.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.
input { battiti { porta => 5044 ssl => false }}
Nella sezione dei 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 proverà 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 modelli di filtri GROK, dai un'occhiata 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 avvia logstashsudo systemctl abilita logstash
In caso di problemi, dai un'occhiata al file 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-oss
Per impostazione predefinita, Kibana è in ascolto su localhost, il che significa che non puoi accedere all'interfaccia web di Kibana da un'altra macchina. Modifica il file /etc/kibana/kibana.yml.
sudo nano /etc/kibana/kibana.yml
Apporta le modifiche alla riga sottostante con l'indirizzo IP del tuo server.
server.host:"192.168.0.10"
Avvia e abilita Kibana all'avvio della macchina.
sudo systemctl avvia kibanasudo systemctl abilita kibana
Installa Filebeat
Filebeat è un software che viene eseguito sulla macchina client. Invia i log al server Logstash per l'analisi o Elasticsearch per l'archiviazione dipende dalla configurazione.
Installa il supporto wget e HTTPS per apt.
sudo apt install -y wget apt-transport-https curl
I pacchetti ELK possono essere ottenuti dal repository elastico.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Installa Filebeat usando il seguente comando.
sudo apt aggiornamentiudo apt install -y filebeat-oss
Il file di configurazione principale di filebeat è /etc/filebeat/filebeat.yml.
sudo nano /etc/filebeat/filebeat.yml
Dobbiamo modificare questo file per inviare i log al server Logstash.
Le configurazioni seguenti inviano syslog (/var/log/syslog) al server Logstash. Per questa demo, ho commentato /var/log/*.log per evitare di inviare tutti i log al server Logstash.
Nella sezione Output, commenta la sezione output.elasticsearch:poiché non memorizzeremo i log in Elasticsearch.
Ora vai alla riga output.logstash:e modifica le voci per inviare i log al Logstash e menziona il percorso del file SSL copiato.
Nota: Sostituisci "192.168.0.10" con l'indirizzo IP del server Logstash.
Riavvia il servizio Filebeat.
sudo systemctl riavvia filebeat
Accedi a Kibana
Puoi accedere all'interfaccia web di Kibana utilizzando il seguente URL.
http://il-tuo-indirizzo-ip:5601/O
http://nome-del-servizio:5601Al tuo primo accesso, devi mappare l'indice di filebeat. Fai clic su Esplora da solo per creare un modello di indice.
Fai clic sul Menu (icona Hamburger)>> Gestione dello stack>> Pattern di indicizzazione>> Crea modello di indice .
Digita quanto segue nella casella Modello indice e fai clic sul passaggio successivo.
filebeat-*
Seleziona @timestamp e quindi fare clic su Crea modello di indice.
@timestamp
Scorri i campi nell'indice e il loro tipo di core registrato da Elasticsearch.
Fai clic su Scopri nella barra di navigazione a sinistra per visualizzare i registri in entrata da un computer client.
Conclusione
È tutto. Spero che tu abbia imparato come installare lo stack ELK su Debian 10 / Debian 9. Condividi il tuo feedback nella sezione commenti.