Logstash è uno strumento gratuito e open source e la piattaforma di analisi dei registri più famosa al mondo per la raccolta, l'analisi e l'archiviazione dei registri per un uso futuro. Logstash viene fornito con un ricco set di plug-in e un linguaggio modello molto espressivo che semplifica la trasformazione dei flussi di dati. Logstash fa parte dello stack ELK, ma puoi anche usarlo in modo indipendente. Logstash ha la capacità di estrarre da qualsiasi origine dati utilizzando plug-in di input, applicare un'ampia varietà di trasformazioni di dati e spedire i dati a un gran numero di destinazioni utilizzando plug-in di output.
In questo tutorial, ti mostreremo come installare e configurare Logstash sul server Ubuntu 18.04.
Prerequisiti
- Un server che esegue Ubuntu 18.04.
- Sul tuo server è configurata una password di root.
Per iniziare
Prima di iniziare, aggiorna il tuo sistema con l'ultima versione. Puoi farlo eseguendo il seguente comando:
apt-get update -y
apt-get upgrade -y
Una volta aggiornato il sistema, riavvialo per applicare le modifiche.
Installa Java
Prima di installare Java, assicurati di aver installato Java 8 o Java 11. Puoi installare Java 8 con il seguente comando:
apt-get install openjdk-8-jdk -y
Dopo aver installato Java, controlla la versione di Java utilizzando il seguente comando:
java -version
Dovresti vedere il seguente output:
openjdk version "1.8.0_162" OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12) OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
Installa Logstash
Prima di installare Logstash, dovrai installare Elasticsearch sul tuo server. Per impostazione predefinita, Elasticsearch non è disponibile nel server Ubuntu 18.04. Quindi dovrai aggiungere il repository per Elasticsearch.
Innanzitutto, installa il pacchetto richiesto con il seguente comando:
apt-get install apt-transport-https -y
Quindi, scarica e aggiungi la chiave GPG di Elasticsearch con il seguente comando:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Successivamente, aggiungi il repository con il seguente comando:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
Quindi, installa Elasticsearch e Logstash con il seguente comando:
apt-get install elasticsearch logstash -y
Una volta installati entrambi i pacchetti, avvia Logstash ed Elasticsearch e abilita l'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start logstash
systemctl enable logstash
systemctl start elasticsearch
systemctl enable elasticsearch
Puoi anche controllare lo stato di Logstash con il seguente comando:
systemctl status logstash
Dovresti vedere il seguente output:
? logstash.service - logstash Loaded: loaded (/etc/systemd/system/logstash.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-20 10:13:22 UTC; 5s ago Main PID: 3790 (java) Tasks: 13 (limit: 1110) CGroup: /system.slice/logstash.service ??3790 /usr/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly Nov 20 10:13:22 ubuntu systemd[1]: Started logstash.
Per impostazione predefinita, Elasticsearch è in ascolto sulla porta 9200. Puoi verificarlo con il seguente comando:
netstat -ant | grep 9200
Dovresti vedere il seguente output:
tcp6 0 0 127.0.0.1:9200 :::* LISTEN tcp6 0 0 ::1:9200 :::* LISTEN
Configura Logstash
La configurazione di Logstash è una delle parti più impegnative di qualsiasi amministratore di sistema. La configurazione di Logstash è composta da tre sezioni di configurazione principali, Logstash Inputs, Logstash Filters e Logstash Outputs. Ogni sezione è responsabile di diverse funzioni e utilizza diversi plug-in Logstash.
Configura ingresso Logstash
Innanzitutto, dovrai creare un file di configurazione di input beats-input.conf per ricevere i dati da Beats sulla porta TCP 5044:
nano /etc/logstash/conf.d/beats-input.conf
Aggiungi le seguenti righe:
input { beats { port => 5044 } }
Salva e chiudi il file quando hai finito.
Configura i filtri Logstash
Successivamente, dovrai configurare un plug-in di filtro per elaborare gli eventi ricevuti dai battiti. Qui configureremo i beat per raccogliere eventi di autenticazione SSH dai sistemi Ubuntu. Per fare ciò, crea un nuovo file di configurazione del filtro ssh-auth-filter.conf:
nano /etc/logstash/conf.d/ssh-auth-filter.conf
Aggiungi le seguenti righe:
filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}\s+%{IPORHOST:dst_host}\s+%{WORD:syslog_program}\[\d+\]:\s+(?\w+\s+password)\s+for\s+%{USER:auth_user}\s+from\s+%{SYSLOGHOST:src_host}.*" } add_field => { "activity" => "SSH Logins" } add_tag => "linux_auth" } }
Salva e chiudi il file quando hai finito.
Configura output Logstash
Successivamente, dovrai configurare i plug-in di output per consentire a Logstash di inviare dati di eventi a destinazioni specifiche.
Qui creeremo un file di configurazione dell'output di Logstash che invia i dati a Elasticsearch in esecuzione su un localhost.
nano /etc/logstash/conf.d/elasticsearch-output.conf
Aggiungi le seguenti righe:
output { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "ssh_auth-%{+YYYY.MM}" } stdout { codec => rubydebug } }
Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Logstash per applicare le modifiche:
systemctl restart logstash
Test logstash
Logstash è ora installato e configurato. È ora di verificare se funziona o meno.
Puoi verificare la configurazione di Logstash con il seguente comando:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Se tutto va bene, dovresti vedere il seguente output:
Sending Logstash logs to /var/log/logstash which is now configured via log4j2.properties [2019-11-26T06:27:48,104][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/var/lib/logstash/queue"} [2019-11-26T06:27:48,119][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/var/lib/logstash/dead_letter_queue"} [2019-11-26T06:27:50,331][INFO ][org.reflections.Reflections] Reflections took 47 ms to scan 1 urls, producing 20 keys and 40 values Configuration OK [2019-11-26T06:27:51,899][INFO ][logstash.runner ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash
Congratulazioni! hai installato e configurato correttamente Logstash sul server Ubuntu 18.04.