ELK stack je plnohodnotná platforma pro analýzu dat, která se skládá z Elasticsearch, Logstash a open-source nástroje Kibana. Pomáhá vám centrálně ukládat a spravovat protokoly a poskytuje možnost analyzovat problémy.
Tento článek vám pomůže nainstalovat ELK stack na Debian 10 / Debian 9.
Nainstalujte ELK Stack
Elasticsearch – Ukládá příchozí protokoly z Logstashe a poskytuje možnost prohledávat protokoly/data v reálném čase
Logstash – Zpracování (shromažďování, obohacování a odesílání do Elasticsearch) příchozích protokolů zaslaných beats (forwarder).
Kibana – Poskytuje vizualizaci událostí a protokolů.
Beats – instalovaný na klientských počítačích a odesílá protokoly do Logstash nebo Elasticsearch prostřednictvím protokolu beats.
Nainstalujte Javu
Elasticsearch vyžaduje OpenJDK nebo Oracle JDK dostupné na vašem počítači. Zde pro toto demo používám OpenJDK.
sudo apt update sudo apt install -y openjdk-11-jre
Zkontrolujte verzi Java.
java -version
Výstup:
openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode, sharing)
Pokud chcete používat OracleJDK, přečtěte si:
ČTĚTE:Jak nainstalovat Oracle Java na Debian 10 / Debian 9
Přidat elastické úložiště
Nainstalujte podporu wget a HTTPS pro apt.
sudo apt install -y wget apt-transport-https curl
Balíčky ELK lze získat z úložiště Elastic.
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
Instalovat a konfigurovat Elasticsearch
Nejprve nainstalujeme server Elasticsearch, open-source vyhledávač založený na Lucene. Poskytuje v reálném čase distribuovaný fulltextový vyhledávač podporující více nájemců s webovým rozhraním HTTP a dokumenty JSON bez schémat.
Elasticsearch ukládá data odeslaná Logstash a zobrazuje je prostřednictvím Kibana na požadavky uživatele.
Nainstalujte Elasticsearch pomocí následujícího příkazu.
sudo apt update sudo apt install -y elasticsearch-oss
Spusťte službu Elasticsearch.
sudo systemctl start elasticsearch sudo systemctl enable elasticsearch
Počkejte několik minut a spusťte následující příkaz, abyste viděli stav rozhraní Elasticsearch REST.
curl -X GET http://localhost:9200
Výstup:
{ "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" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Výše uvedený výstup potvrzuje, že Elasticsearch funguje dobře.
Instalace a konfigurace Logstash
Logstash je open source modul pro sběr dat a analýzu protokolů. Shromažďuje protokoly, analyzuje je a ukládá je na Elasticsearch pro vyhledávání. Pro Logstash je k dispozici více než 160 pluginů, které umožňují zpracovávat různé typy událostí bez práce navíc.
sudo apt install -y logstash-oss
Konfigurační soubor Logstash se skládá ze tří částí, jmenovitě vstupu, filtru a výstupu. Všechny tři sekce můžete umístit do jednoho souboru nebo do samostatného souboru pro každou sekci s koncovkou .conf.
Zde používáme jeden soubor pro umístění vstupních, filtračních a výstupních sekcí. Vytvořte konfigurační soubor v adresáři /etc/logstash/conf.d/.
sudo nano /etc/logstash/conf.d/beats-syslog.conf
Ve vstupní sekci nakonfigurujeme Logstash tak, aby na portu 5044 naslouchal příchozím protokolům z beatů (Forwarder), které jsou umístěny na klientských počítačích.
input { beats { port => 5044 ssl => false } }
V sekci filtrů použijeme Grok k analýze protokolů před jejich odesláním do Elasticsearch k uložení.
Následující filtr grok vyhledá označené protokoly syslog a pokusí se je analyzovat, aby vytvořil strukturovaný index.
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
Další vzory filtrů GROK naleznete zde.
Ve výstupní sekci definujeme, kam se mají ukládat protokoly, samozřejmě Elasticsearch v případě ELK stacku.
output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
Nyní spusťte a povolte službu Logstash.
sudo systemctl start logstash sudo systemctl enable logstash
Pokud narazíte na jakýkoli problém, podívejte se na soubor Logstash.
sudo cat /var/log/logstash/logstash-plain.log
Nainstalujte a nakonfigurujte Kibana
Kibana poskytuje vizualizaci dat uložených na Elasticsearch. Nainstalujte Kibana pomocí následujícího příkazu.
sudo apt install -y kibana-oss
Ve výchozím nastavení Kibana naslouchá na localhost, což znamená, že nemáte přístup k webovému rozhraní Kibana z jiného počítače. Upravte soubor /etc/kibana/kibana.yml.
sudo nano /etc/kibana/kibana.yml
Proveďte změny na níže uvedeném řádku s IP adresou vašeho serveru.
server.host: "192.168.0.10"
Spusťte a povolte Kibana při spuštění počítače.
sudo systemctl start kibana sudo systemctl enable kibana
Nainstalovat Filebeat
Filebeat je software, který běží na klientském počítači. Odesílá protokoly na server Logstash pro analýzu nebo Elasticsearch pro uložení v závislosti na konfiguraci.
Nainstalujte podporu wget a HTTPS pro apt.
sudo apt install -y wget apt-transport-https curl
Balíčky ELK lze získat z úložiště Elastic.
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
Nainstalujte Filebeat pomocí následujícího příkazu.
sudo apt update sudo apt install -y filebeat-oss
Hlavní konfigurační soubor filebeat je /etc/filebeat/filebeat.yml.
sudo nano /etc/filebeat/filebeat.yml
Potřebujeme tento soubor upravit, abychom mohli odesílat protokoly na server Logstash.
Níže uvedené konfigurace odešle syslog (/var/log/syslog) na server Logstash. Pro toto demo jsem zakomentoval /var/log/*.log, abych se vyhnul odesílání všech protokolů na server Logstash.
. . . filebeat.inputs: # Each - is an input. Most options can be set at the input level, so # you can use different inputs for various configurations. # Below are the input specific configurations. - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /var/log/syslog . . .
V sekci Výstupy zakomentujte sekci output.elasticsearch:protože nebudeme ukládat přihlášení do Elasticsearch.
Nyní přejděte na řádek output.logstash:a upravte položky tak, aby se protokoly posílaly do protokolu Logstash, a uveďte cestu ke zkopírovanému souboru SSL.
Poznámka: Nahraďte „192.168.0.10“ IP adresou serveru Logstash.
. . . #----------------------------- Logstash output -------------------------------- output.logstash: # The Logstash hosts hosts: ["192.168.0.10:5044"] . . .
Restartujte službu Filebeat.
sudo systemctl restart filebeat
Přístup ke Kibaně
K webovému rozhraní Kibana se můžete dostat pomocí následující adresy URL.
http://vaše-ip-adresa:5601/NEBO
http://název-vašeho-servisu:5601Při prvním přihlášení musíte namapovat index filebeat. Klikněte na Prozkoumat sám k vytvoření vzoru indexu.
Klikněte na Nabídka (ikona Hamburger)>> Správa zásobníku>>Vzory indexu>> Vytvořit vzor indexu .
Do pole Vzor indexu zadejte následující a klikněte na Další krok.
filebeat-*
Vyberte @timestamp a poté klikněte na Vytvořit vzor indexu.
@timestamp
Projděte si pole v indexu a jejich základní typ zaznamenaný Elasticsearch.
Kliknutím na Objevit v levé navigaci zobrazíte příchozí protokoly z klientského počítače.
Závěr
To je vše. Doufám, že jste se naučili, jak nainstalovat ELK stack na Debian 10 / Debian 9. Podělte se prosím o svůj názor v sekci komentářů.