ELK è una combinazione di tre prodotti open source ElasticSearch, Logstash e Kibana. È una delle piattaforme di gestione dei registri più popolari in tutto il mondo. Elasticsearch è un motore di ricerca e analisi. Logstash è una pipeline di elaborazione dei log che trasporta i log da più origini contemporaneamente, li trasforma e quindi li invia a una "scorta" come Elasticsearch. Kibana viene utilizzato per visualizzare i dati che Logstash ha indicizzato nell'indice Elasticsearch
In questo tutorial spiegheremo come installare Logstash su Ubuntu 20.04.
Prerequisiti
- Un server che esegue Ubuntu 20.04.
- Sul server è configurata una password di root.
Installa le dipendenze richieste
Per installare Elasticsearch, dovrai installare Java nel tuo sistema. Puoi installare Java JDK con il seguente comando:
apt-get install openjdk-11-jdk -y
Una volta installato, verifica la versione installata di java con il seguente comando:
java -version
Dovresti vedere il seguente output:
openjdk 11.0.7 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Quindi, installa le altre dipendenze richieste eseguendo il comando seguente:
apt-get install nginx curl gnupg2 wget -y
Una volta installate tutte le dipendenze, puoi procedere al passaggio successivo.
Installa e configura Elasticsearch
prima di iniziare, dovrai installare Elasticsearch nel tuo sistema. Memorizza registri ed eventi da Logstash e offre la possibilità di cercare i registri in tempo reale.
Innanzitutto, aggiungi il repository elastico al tuo sistema con il seguente comando:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
Successivamente, aggiorna il repository e installa Elasticsearch con il seguente comando:
apt-get update -y
apt-get install elasticsearch -y
Una volta installato, modifica il file di configurazione predefinito di Elasticsearch:
nano /etc/elasticsearch/elasticsearch.yml
Decommenta e modificane il valore come mostrato di seguito:
network.host: localhost
Salva e chiudi il file, quindi avvia il servizio Elasticsearch e abilitalo all'avvio all'avvio con il seguente comando:
systemctl start elasticsearch
systemctl enable elasticsearch
A questo punto, Elasticsearch è installato e in ascolto sulla porta 9200. Ora puoi verificare se Elasticsearch funziona o meno eseguendo il comando seguente:
curl -X GET "localhost:9200"
Se tutto va bene dovresti vedere il seguente output:
{ "name" : "ubuntu2004", "cluster_name" : "elasticsearch", "cluster_uuid" : "AVRzLjAbQTK-ayYQc0GaMA", "version" : { "number" : "7.8.0", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65", "build_date" : "2020-06-14T19:35:50.234439Z", "build_snapshot" : false, "lucene_version" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Una volta terminato, puoi procedere al passaggio successivo.
Installa e configura Kibana
Successivamente, dovrai installare Kibana nel tuo sistema. Kibana ti consente di analizzare i dati archiviati su Elasticsearch. Puoi installarlo semplicemente eseguendo il seguente comando:
apt-get install kibana -y
Una volta installato Kibana, avvia il servizio Kibana e abilitalo all'avvio all'avvio con il seguente comando:
systemctl start kibana
systemctl enable kibana
Successivamente, dovrai creare un utente amministrativo per Kibana per accedere all'interfaccia web di Kibana. Eseguire il comando seguente per creare l'utente e la password Kibana amministrativi e salvarli nel file htpasswd.users.
echo "admin:`openssl passwd -apr1`" | tee -a /etc/nginx/htpasswd.users
Ti verrà chiesto di fornire la password come mostrato nel seguente output:
Password: Verifying - Password: admin:$apr1$8d05.YO1$E0Q8QjfNxxxPtD.unmDs7/
Quindi, crea un file di configurazione dell'host virtuale Nginx per servire Kibana:
nano /etc/nginx/sites-available/kibana
Aggiungi le seguenti righe:
server { listen 80; server_name kibana.example.com; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/htpasswd.users; 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 e chiudi il file, quindi abilita il file host virtuale Nginx con il seguente comando:
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
Quindi, riavvia il servizio Nginx per applicare le modifiche:
systemctl restart nginx
Quindi, apri il tuo browser web e controlla lo stato del Kibana utilizzando l'URL http://kibana.example.com/status. Ti verrà chiesto di fornire nome utente e password come mostrato di seguito:
Fornisci il tuo nome utente e password Kibana e fai clic sul pulsante Accedi. Dovresti vedere la seguente schermata:
A questo punto, la dashboard di Kibana è installata nel tuo sistema. Ora puoi procedere al passaggio successivo.
Installa e configura Logstash
Logstash viene utilizzato per l'elaborazione dei log inviati dai battiti. Puoi installarlo eseguendo il seguente comando:
apt-get install logstash -y
Una volta installato Logstash, crea un nuovo file di configurazione beat con il seguente comando:
nano /etc/logstash/conf.d/02-beats-input.conf
Aggiungi le seguenti righe:
input { beats { port => 5044 } }
Salva e chiudi il file, quindi crea un file di configurazione di Elasticsearch con il seguente comando:
nano /etc/logstash/conf.d/30-elasticsearch-output.conf
Aggiungi le seguenti righe:
output { if [@metadata][pipeline] { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" pipeline => "%{[@metadata][pipeline]}" } } else { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } } }
Salva e chiudi il file, quindi verifica la configurazione di Logstash con questo comando:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Se tutto va bene, dovresti vedere il seguente output:
Config Validation Result: OK. Exiting Logstash
Quindi, avvia il servizio Logstash e abilitalo all'avvio all'avvio con il seguente comando:
systemctl start logstash
systemctl enable logstash
A questo punto, Logstash è installato nel tuo sistema. Ora puoi procedere al passaggio successivo.
Installa e configura Filebeat
Lo stack ELK utilizza Filebeat per raccogliere dati da varie fonti e trasportarli in Logstash.
Puoi installare Filebeat con il seguente comando:
apt-get install filebeat -y
Una volta installato, dovrai configurare Filebeat per la connessione a Logstash. Puoi configurarlo con il seguente comando:
nano /etc/filebeat/filebeat.yml
Commenta le seguenti righe:
#output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
Quindi, decommenta le seguenti righe:
output.logstash: # The Logstash hosts hosts: ["localhost:5044"]
Salvare e chiudere il file quindi abilitare il modulo di sistema con il seguente comando:
filebeat modules enable system
Per impostazione predefinita, Filebeat è configurato per utilizzare i percorsi predefiniti per il syslog e i log di autorizzazione.
Puoi caricare la pipeline di acquisizione per il modulo di sistema con il comando seguente:
filebeat setup --pipelines --modules system
Quindi, carica il modello con il seguente comando:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Dovresti vedere il seguente output:
Index setup finished.
Per impostazione predefinita, Filebeat viene fornito con dashboard Kibana di esempio che consentono di visualizzare i dati Filebeat in Kibana. Quindi è necessario disabilitare l'output di Logstash e abilitare l'output di Elasticsearch. Puoi farlo con il seguente comando:
filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601
Dovresti vedere il seguente output:
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling. Index setup finished. Loading dashboards (Kibana must be running and reachable) Loaded dashboards Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead. See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html Loaded machine learning job configurations Loaded Ingest pipelines
Ora avvia il servizio Filebeat e abilitalo all'avvio all'avvio con il seguente comando:
systemctl start filebeat
systemctl enable filebeat
Accedi al dashboard di Kibana
A questo punto, tutti i componenti di ELK sono installati e configurati. Ora apri il tuo browser web e digita l'URL http://kibana.example.com. Dovresti vedere la dashboard di Kibana nella schermata seguente:
Nel riquadro di sinistra, fai clic su Scopri e seleziona il modello di indice filebeat-* predefinito per visualizzare i dati Filebeat nella schermata seguente:
Ora, Kibana offre molte funzionalità. Sentiti libero di esplorarli come desideri.
Conclusione
Congratulazioni! hai installato e configurato correttamente Logstash sul server Ubuntu 20.04. È ora possibile raccogliere e analizzare i registri di sistema da una posizione centrale. Sentiti libero di chiedermi se hai domande.