Logstash je bezplatný nástroj s otevřeným zdrojovým kódem a celosvětově nejoblíbenější platforma pro analýzu protokolů pro shromažďování, analýzu a ukládání protokolů pro budoucí použití. Logstash přichází s bohatou sadou pluginů a velmi výrazným jazykem šablon, který usnadňuje transformaci datových toků. Logstash je součástí zásobníku ELK, ale můžete jej používat i samostatně. Logstash má schopnost stahovat z libovolného zdroje dat pomocí vstupních zásuvných modulů, aplikovat širokou škálu transformací dat a odesílat data do velkého počtu cílů pomocí výstupních zásuvných modulů.
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat Logstash na serveru Ubuntu 18.04.
Předpoklady
- Server se systémem Ubuntu 18.04.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Začínáme
Než začnete, aktualizujte svůj systém na nejnovější verzi. Můžete to udělat spuštěním následujícího příkazu:
apt-get update -y
apt-get upgrade -y
Jakmile je váš systém aktualizován, restartujte jej, aby se změny projevily.
Instalovat Javu
Před instalací Javy se ujistěte, že máte nainstalovanou Javu 8 nebo Javu 11. Java 8 můžete nainstalovat pomocí následujícího příkazu:
apt-get install openjdk-8-jdk -y
Po instalaci Javy zkontrolujte verzi Javy pomocí následujícího příkazu:
java -version
Měli byste vidět následující výstup:
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)
Instalovat Logstash
Před instalací Logstash budete muset nainstalovat Elasticsearch na váš server. Ve výchozím nastavení není Elasticsearch na serveru Ubuntu 18.04 k dispozici. Takže budete muset přidat úložiště pro Elasticsearch.
Nejprve nainstalujte požadovaný balíček pomocí následujícího příkazu:
apt-get install apt-transport-https -y
Dále si stáhněte a přidejte klíč Elasticsearch GPG pomocí následujícího příkazu:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Dále přidejte úložiště pomocí následujícího příkazu:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
Dále nainstalujte Elasticsearch a Logstash pomocí následujícího příkazu:
apt-get install elasticsearch logstash -y
Jakmile jsou oba balíčky nainstalovány, spusťte Logstash a Elasticsearch a povolte jejich spuštění po restartu systému pomocí následujícího příkazu:
systemctl start logstash
systemctl enable logstash
systemctl start elasticsearch
systemctl enable elasticsearch
Stav Logstashe můžete také zkontrolovat pomocí následujícího příkazu:
systemctl status logstash
Měli byste vidět následující výstup:
? 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.
Ve výchozím nastavení Elasticsearch naslouchá na portu 9200. Můžete to zkontrolovat pomocí následujícího příkazu:
netstat -ant | grep 9200
Měli byste vidět následující výstup:
tcp6 0 0 127.0.0.1:9200 :::* LISTEN tcp6 0 0 ::1:9200 :::* LISTEN
Konfigurovat Logstash
Konfigurace Logstash je jednou z nejnáročnějších částí každého správce systému. Konfigurace Logstash se skládá ze tří hlavních konfiguračních sekcí, Vstupy Logstash, Filtry Logstash a Výstupy Logstash. Každá sekce je zodpovědná za různé funkce a používá různé pluginy Logstash.
Konfigurace vstupu Logstash
Nejprve budete muset vytvořit vstupní konfigurační soubor beats-input.conf pro příjem dat z Beats na TCP portu 5044:
nano /etc/logstash/conf.d/beats-input.conf
Přidejte následující řádky:
input { beats { port => 5044 } }
Po dokončení uložte a zavřete soubor.
Konfigurace filtrů Logstash
Dále budete muset nakonfigurovat filtrovací plugin pro zpracování událostí přijatých z beatů. Zde nakonfigurujeme beaty pro shromažďování událostí ověřování SSH ze systémů Ubuntu. Chcete-li tak učinit, vytvořte nový konfigurační soubor filtru ssh-auth-filter.conf:
nano /etc/logstash/conf.d/ssh-auth-filter.conf
Přidejte následující řádky:
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" } }
Po dokončení uložte a zavřete soubor.
Konfigurace výstupu Logstash
Dále budete muset nakonfigurovat výstupní zásuvné moduly, které umožní Logstash odesílat data událostí do konkrétních cílů.
Zde vytvoříme výstupní konfigurační soubor Logstash, který odešle data do Elasticsearch běžícího na localhost.
nano /etc/logstash/conf.d/elasticsearch-output.conf
Přidejte následující řádky:
output { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "ssh_auth-%{+YYYY.MM}" } stdout { codec => rubydebug } }
Po dokončení uložte a zavřete soubor. Poté restartujte službu Logstash, aby se změny projevily:
systemctl restart logstash
Testovat Logstash
Logstash je nyní nainstalován a nakonfigurován. Je čas vyzkoušet, zda to funguje nebo ne.
Konfiguraci Logstash můžete ověřit pomocí následujícího příkazu:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Pokud je vše v pořádku, měli byste vidět následující výstup:
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
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Logstash na serveru Ubuntu 18.04.