ELK Stack è la piattaforma di gestione dei log più popolare al mondo. È una raccolta di prodotti open source tra cui Elasticsearch, Logstash e Kibana. Tutti questi 3 prodotti sono sviluppati, gestiti e mantenuti da Elastic.
ELK Stack è una piattaforma potente e open source in grado di gestire un'enorme quantità di dati registrati. I log degli input provengono generalmente da un'interfaccia web grafica (GUI).
- Elasticsearch è un motore di ricerca e analisi basato su JSON pensato per la scalabilità orizzontale e una gestione più semplice.
- Logstash è un'interfaccia di elaborazione dati lato server che ha la capacità di raccogliere dati da diverse fonti contemporaneamente. Quindi lo trasforma e quindi invia i dati alla scorta desiderata. È un'applicazione open source.
- Kibana viene utilizzato per visualizzare i dati e navigare nell'Elastic Stack. È anche uno strumento open source.
Installa e configura ELK Stack su Ubuntu
In questo tutorial, useremo filebeat per inviare i dati di registro a Logstash. I beat sono spedizionieri di dati leggeri e per cominciare, dovremmo installare l'agente sui server.
Passaggio 1) Installazione di Java 8
ElasticSearch supporta Java 8 e 9, ma il problema è che Logstash è compatibile solo con Java 8. Java 9 non è ancora supportato. Pertanto, installeremo Oracle Java 8.
Avvia il Terminale e aggiungi il repository Oracle Java 8, seguito da un aggiornamento del sistema e dall'installazione effettiva.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-set-default
Attenzione al Terminal. Dovrai accettare le finestre del contratto di licenza e selezionare "sì" per continuare. Al termine dell'installazione, è possibile verificare la versione di Java utilizzando i seguenti comandi:
.sudo java -version
sudo echo $JAVA_HOME
Passaggio 2) Installazione e configurazione di Elasticsearch
Iniziamo con wget comando per scaricare Elasticsearch seguito dalla chiave di firma pubblica:
sudo wget -qO - https://artifacts.elastico.co/GPG-KEY-elasticsearch | sudo apt-key add -
In secondo luogo, installa il pacchetto apt-transport-https (le distribuzioni basate su Debian ne hanno bisogno).
sudo apt-get install apt-transport-https
Aggiungi l'archivio:
echo "deb https://artifacts.elastico.co/pacchetti/6.x/apt stable main" | sudo tee -a /etc/apt/sources.elenco.d/elastico-6.X.elenco
Aggiorna l'elenco dei repository e installa il pacchetto:
sudo apt-get update
sudo apt-get install elasticsearch
Modifichiamo “elasticsearch.yml”:
sudo vim /etc/elasticsearch/elasticsearch.yml
Decommenta “rete.host” e “http.porta". È necessario aggiungere la seguente configurazione:
Rete.host: localhost http.porta: 9200
Quindi, salva e chiudi il file.
Per assicurarti che ElasticSearch funzioni senza problemi, abilitalo all'avvio e Avvia ElasticSearch.
sudo systemctl abilita elasticsearch.servizio
sudo systemctl start elasticsearch.servizio
Verifica installazione:
sudo curl -XGET 'localhost:9200/?bella'
Passaggio 3) Installazione di Kibana
Iniziamo subito l'installazione di Kibana e modifichiamo le impostazioni di Kibana:
sudo apt-get install kibana
sudo vim /etc/kibana/kibana.yml
Decommenta le seguenti righe:
server.porta: 5601 server.host: "localhost" elasticsearch.URL: "http://localhost:9200"
Salva ed esci dal file.
Abilitalo all'avvio e avvia il servizio Kibana:
sudo systemctl abilita kibana.servizio
sudo systemctl start kibana.servizio
Passaggio 4) Configurazione di Nginx come proxy inverso per Kibana
Nelle righe simili, installiamo Nginx, configuriamolo e avviamo il servizio. Usa i seguenti comandi uno alla volta:
sudo apt-get install nginx apache2-utils
Configura host virtuale:
sudo vim /etc/nginx/sites-available/elk
Aggiungi la seguente configurazione al file:
server ascolta 80; nome_server alce.fosslinux.com; auth_basic "Accesso limitato"; auth_basic_user_file /etc/nginx/.elkusersecret; posizione / proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Aggiornamento $http_upgrade; proxy_set_header Connessione 'aggiorna'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade;
Crea file utente e password per l'autenticazione del browser web:
sudo htpasswd -c /etc/nginx/.elkusersecret elkusr
Inserisci la password e ripeti. Controlla le configurazioni Nginx:
sudo nginx -t
Abilita Nginx all'avvio del sistema e riavvia il servizio:
sudo systemctl abilita nginx.servizio
sudo systemctl riavvia nginx.servizio
Passaggio 5) Installazione e configurazione di Logstash
Installa Logstash:
sudo apt-get install logstash
Qui genereremo la chiave del certificato SSL per proteggere il trasferimento dei log dal file beat client. Modificare il file "hosts" prima di creare il certificato SSL.
sudo vim /etc/hosts
Aggiungi la seguente riga al file. Assicurati di cambiare l'IP e il nome del server con il tuo.
172.31.31.158 alce-server alce-server
Al termine, salva ed esci dal file.
Ora cambia la directory in Logstash.
sudo cd /etc/logstash/
Crea una cartella per SSL:
sudo mkdir ssl
Genera certificato SSL. Cambia elk-server con il nome del tuo server nel comando seguente.
sudo openssl req -subj '/CN=elk-server/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key-out ssl/logstash-forwarder.crt
Crea i seguenti file all'interno di "/etc/logstash/conf.d".
sudo cd /etc/logstash/conf.d/
creare un file di input filebeat usando vim.
sudo vim filebeat-input.conf
Aggiungi le seguenti righe ad esso.
input beats port => 5443 type => syslog ssl => true ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt" ssl_key => "/etc/logstash/ssl/logstash-forwarder.chiave"
Salva e chiudi il file e crea un nuovo file di configurazione.
sudo vim syslog-filter.conf
Aggiungi i seguenti contenuti ad esso.
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 g HH:mm:ss", "MMM g HH:mm:ss" ]
Salva ed esci dal file. Creare ricerca elastica file di uscita.
sudo vim output-elasticsearch.conf
Aggiungi le seguenti righe ad esso.
output elasticsearch host => ["localhost:9200"] host => "localhost:9200" manage_template => false index => "%[@metadata][beat]-%+YYYY.mm.dd" document_type => "%[@metadata][type]"
Abilitiamo Logstash all'avvio e avviamo il servizio:
sudo systemctl abilita logstash.servizio
sudo systemctl start logstash.servizio
Passaggio 6) Installazione e configurazione di Filebeat sui server client
Inizia con la modifica del padroni di casa file per aggiungere voci host elk. Assicurati di sostituire IP e nome con il tuo with.
sudo vim /etc/hosts
172.31.31.158 alce-server
Salva ed esci dal file.
Scarica e installa la chiave di firma pubblica:
sudo wget -qO - https://artifacts.elastico.co/GPG-KEY-elasticsearch | sudo apt-key add -
Installa "apt-transport-https" e aggiungi repository.
sudo apt-get install apt-transport-https
sudo echo "deb https://artifacts.elastico.co/pacchetti/6.x/apt stable main" | sudo tee -a /etc/apt/sources.elenco.d/elastico-6.X.elenco
Aggiorna il repository e installa Filebeat.
sudo apt-get update
sudo apt-get install filebeat
Modifica le configurazioni di Filebeatbeat.
sudo vim /etc/filebeat/filebeat.yml
Trova la riga seguente e modifica il valore in "true".
abilitato: vero
Qui non stiamo modificando il percorso del registro e Filebeat inoltrerà tutti i log all'interno della cartella “var/log”
percorsi: - /var/log/*.log
Decommenta le seguenti righe:
produzione.logstash: # Gli host di Logstash host: ["elk-server:5443"] ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]
Commento Ricerca elastica:
#produzione.elasticsearch: # Array di host a cui connettersi. # host: ["localhost:9200"]
Salva ed esci dal file.
Ora vai al server ELK e ottieni "logstash-forwarder.crt” contenuti
sudo cat /etc/logstash/ssl/logstash-forwarder.crt
copia l'output e poi vai su Elk client-server.
Crea un file di certificato
sudo vim /etc/filebeat/logstash-forwarder.crt
inserisci l'output copiato e salva ed esci.
Abilitare filebeat all'avvio del sistema Start filebeat servizio.
sudo systemctl abilita filebeat.servizio
sudo systemctl start filebeat.servizio
Passaggio 7) Navigazione nella dashboard di Kibana
Avvia il tuo browser web preferito e inserisci il nome di dominio seguito da nome utente e password.
http://elk.fosslinux.come
Inserisci il nome utente e la password creati. Dovresti vedere la pagina di benvenuto di Kibana. Fare clic sul pulsante "Esplora il mio".
Dovresti essere indirizzato alla home page di Kibana.
Fare clic su "Scopri" sul lato sinistro. Fare clic su "Crea modello indice".
Quindi definire il modello di indice "filebeat-*".
Fai clic su Avanti e scegli @timestamp', quindi fai clic su 'Crea pattern indice'.
Il modello di indice dovrebbe essere creato.
Fare clic sul menu "Scopri" per visualizzare i registri del server.
I log verranno mostrati secondo il timestamp. Fare clic su qualsiasi timestamp per espanderlo e vedere il contenuto del file di registro e i suoi dettagli.
Se sei arrivato qui, significa che hai installato e configurato correttamente lo stack ELK con filebeat. Hai qualche problema? Sentiti libero di farcelo sapere nei commenti qui sotto.