Zásobník ELK je plnohodnotná platforma pro analýzu dat, která se skládá ze tří open source nástrojů Elasticsearch , Logstash a Kibana . Tento zásobník vám pomáhá centrálně ukládat a spravovat protokoly a poskytuje možnost analyzovat problémy pomocí korelace událostí v konkrétním čase.
Tento příspěvek vás provede instalací zásobníku ELK na Ubuntu 18.04 / Ubuntu 16.04 .
Komponenty
Elasticsearch – Ukládá příchozí protokoly z Logstash 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ů odeslaných beats (forwarder).
Kibana – Poskytuje vizualizaci událostí a protokolů.
Beaty – Instaluje se na klientské počítače a odesílá protokoly do Logstash nebo Elasticsearch prostřednictvím protokolu beats.
Předpoklady
Nainstalujte Javu
Elasticsearch vyžaduje buď OpenJDK nebo Oracle JDK dostupné na vašem počítači.
Zde pro toto demo používám OpenJDK. Nainstalujte Javu pomocí níže uvedeného příkazu spolu s balíčkem podpory wget a HTTPS pro APT.
sudo apt updatesudo apt install -y openjdk-8-jdk wget apt-transport-https
Zkontrolujte verzi Java.
verze Java
Výstup:
openjdk verze "1.8.0_181" OpenJDK Runtime Environment (sestavení 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)OpenJDK 64-Bit Server VM (sestavení 25.181-b) premixovaný režim)Pokud chcete používat Oracle Java JDK, přečtěte si.
ČTĚTE :Nainstalujte Oracle Java JDK 10/8 na Ubuntu 18.04
ČTĚTE :Nainstalujte Oracle Java JDK 8 na Ubuntu 16.04
Konfigurace úložiště ELK
Stohovací balíčky ELK lze snadno získat od společnosti Elastic CO nastavením jeho oficiálního úložiště .
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.listNainstalujte Elasticsearch
Nyní nainstalujeme Elasticsearch server, open-source vyhledávač založený na Lucene. Poskytuje distribuovaný fulltextový vyhledávač s více nájemci v reálném čase s webovým rozhraním (HTTP) a dokumenty JSON bez schémat.
Nainstalujte Elasticsearch pomocí následujícího příkazu, v6.4 v době psaní tohoto článku.
sudo apt updatesudo apt install -y elasticsearchSpusťte službu Elasticsearch.
sudo systemctl spustit elasticsearchsudo systemctl povolit elasticsearchPočkejte několik minut a spusťte níže uvedený příkaz, abyste viděli stav rozhraní Elasticsearch REST.
curl -X GET http://localhost:9200Výstup:
{ "name" :"nqS7TFZ", "cluster_name" :"elasticsearch", "cluster_uuid" :"vERyh1VpR46G9T21H_3gKQ", "version" :{ "number" :"6.4.0", "build_flavor" :"výchozí" , "build_type" :"deb", "build_hash" :"595516e", "build_date" :"2018-08-17T23:18:47.308994Z", "build_snapshot" :false, "lucene_version" :"lucene_version.0". "minimum_wire_compatibility_version" :"5.6.0", "minimum_index_compatibility_version" :"5.0.0" }, "tagline" :"Víte, pro vyhledávání"}Výše uvedený výstup potvrzuje, že Elasticsearch funguje dobře.
Nainstalujte 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é poskytují možnost zpracovávat různé typy událostí bez práce navíc.
sudo apt install -y logstashVytvořte certifikát SSL pro Logstash (volitelné)
Je volitelné nastavit Forwarder (Filebeat), který instalujeme na klientské počítače, aby používal SSL certifikát pro bezpečný přenos protokolů.
Vytvořte certifikát SSL buď s názvem hostitele nebo IP SAN.
Možnost 1:(Název hostitele nebo FQDN)
Přejděte do adresáře OpenSSL.
cd /etc/ssl/Nyní vytvořte certifikát SSL pomocí OpenSSL. Nahraďte server.itzgeek.local s názvem hostitele vašeho serveru Logstash.
sudo openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.localTento logstash-forwarder.crt by měl být zkopírován na všechny klientské servery, které odesílají protokoly na server logstash.
Možnost 2:(IP adresa)
Chcete-li vytvořit certifikát SSL pro IP SAN, postupujte podle následujících kroků.
Nezbytným předpokladem je přidání IP adresy serveru Logstash do SubjectAltName v konfiguračním souboru OpenSSL.
sudo nano /etc/ssl/openssl.cnfHledejte [ v3_ca ] sekci a aktualizujte subjectAltName s IP adresou vašeho serveru Logstash.
subjectAltName =IP:192.168.1.10Přejděte do adresáře OpenSSL.
cd /etc/ssl/Nyní vytvořte certifikát SSL spuštěním následujícího příkazu.
sudo openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crtTento logstash-forwarder.crt by měl být zkopírován na všechny klientské servery, které odesílají protokoly na server logstash.
Převést SSL
Převeďte aktuální klíč do formátu PKCS8, aby Logstash fungoval správně.
sudo openssl pkcs8 -in logstash-forwarder.key -topk8 -nocrypt -out logstash-forwarder.key.pemZměňte oprávnění k souboru na světově čitelný.
sudo chmod 644 /etc/ssl/logstash-forwarder.key.pemNakonfigurujte Logstash
Konfigurace Logstash se skládá ze tří částí, jmenovitě vstupu, filtru a výstupu. Všechny sekce můžete umístit do jednoho souboru nebo do samostatného souboru pro každou sekci s koncovkou .conf .
Zde použijeme jeden soubor pro umístění vstupních, filtračních a výstupních sekcí. Vytvořte konfigurační soubor pod /etc/logstash/conf.d/ adresář.
sudo nano /etc/logstash/conf.d/logstash.confVe 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.
Pro zabezpečenou komunikaci také přidejte podrobnosti certifikátu SSL do vstupní části.
input { beats { port => 5044 # Pokud nepoužíváte SSL, nastavte na False ssl => true # Smazat níže uvedené řádky, pokud není použito SSL ssl_certificate => "/etc/ssl/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key.pem" }}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á protokoly označené syslog a pokusí se je analyzovat, aby vytvořil strukturovaný index.
filtr {if [type] =="syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } datum {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 { kodek => rubydebug }}Nyní spusťte a povolte službu Logstash.
sudo systemctl restart logstashsudo systemctl povolit logstashLogstash logs:
sudo cat /var/log/logstash/logstash-plain.logNainstalujte 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 kibanaVe výchozím nastavení Kibana naslouchá na localhost, což znamená, že nemáte přístup k webovému rozhraní Kibana z externích počítačů.Pro povolení přístupu upravte /etc/kibana/kibana.yml soubor.
sudo nano /etc/kibana/kibana.ymlProveďte změny na níže uvedeném řádku s IP adresou vašeho serveru.
server.host:"192.168.1.10 "."Některé případy Elasticsearch a Kibana běží na různých počítačích , tak aktualizujte níže uvedený řádek IP adresou serveru Elasticsearch.
elasticsearch.url:"http://localhost:9200 "."Spusťte a povolte Kibana při spuštění počítače.
sudo systemctl restart kibanasudo systemctl povolit kibanaNainstalovat Beats
K dispozici jsou čtyři beat klienti.
Packetbeat – Analyzujte síťová paketová data.
Filebeat – Přehled dat protokolu v reálném čase.
Topbeat – Získejte statistiky z dat infrastruktury.
Metricbeat – Odeslat metriky do Elasticsearch.Zajistěte, aby klientské počítače dokázaly přeložit název hostitele serveru Logstash. Pokud vaše prostředí nemá server DNS , pak budete muset přidat položku hostitele pro server Logstash na klientském počítači.
sudo nano /etc/hostsZadejte záznam, například níže.
192.168.1.10 server.itzgeek.localNainstalovat Filebeat
Filebeat je softwarový agent, který běží na vzdáleném klientském počítači a odesílá protokoly na server Logstash pro analýzu nebo Elasticsearch pro uložení v závislosti na konfiguraci.
Nainstalujte podporu HTTPS pro apt.
sudo apt updatesudo apt install -y apt-transport-httpsFilebeat je k dispozici v úložišti Elastic, takže jej musíte nastavit pro instalaci Filebeat.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.listNainstalujte Filebeat pomocí následujícího příkazu.
sudo apt updatesudo apt install -y filebeatKonfigurace Filebeat
Nejprve zkopírujte soubor logstash-forwarder.crt na vzdálený klientský počítač.
Tento krok přeskočte, pokud nepoužíváte SSL v Logstash pro zabezpečenou komunikaci.scp -pr [email protected] :/etc/ssl/logstash-forwarder.crt /etc/sslUpravte konfigurační soubor filebeat /etc/filebeat/filebeat.yml pro odeslání protokolů na server Logstash.
sudo nano /etc/filebeat/filebeat.ymlNíže uvedená konfigurace je odesílání systémových protokolů (/var/log/syslog ) na server Logstash. Pro tuto ukázku jsem okomentoval /var/log/*.log abyste se vyhnuli odesílání všech protokolů na server Logstash.
. . .filebeat.inputs:# Každý - je vstup. Většinu možností lze nastavit na úrovni vstupu, takže# můžete použít různé vstupy pro různé konfigurace.# Níže jsou konfigurace specifické pro vstup.- typ:log # Změňte na true pro povolení této konfigurace vstupu. povoleno:pravda # Cesty, které by se měly procházet a načítat. Cesty založené na globu. cesty:- /var/log/syslog #- /var/log/*.log. . .V sekci Výstupy zakomentujte sekci output.elasticsearch: protože nebudeme ukládat přihlášení do Elasticsearch.Nyní najděte řádek output.logstash: a upravte položky tak, aby se systémové protokoly posílaly do Logstash a také zmiňte umístění certifikátu SSL.
Nahraďte server.itzgeek.local s IP adresou serveru Logstash v případě, že používáte IP SAN.. . .output.logstash:hostitelé:["server.itzgeek.local:5044 "] # Zakomentujte tento řádek, pokud na serveru Logstash nepoužíváte SSL ssl.certificate_authorities:["/etc/ssl/logstash-forwarder.crt "]...Restartujte službu Filebeat.
sudo systemctl restart filebeatProtokol souboru Filebeat se obvykle nachází v jeho souboru protokolu.
sudo cat /var/log/filebeat/filebeatPřístup k rozhraní Kibana
Přístup k webovému rozhraní Kibana naleznete na následující adrese URL.
http://vaše-ip-adresa:5601/NEBO
http://název-vašeho-servisu:5601Získáte domovskou stránku Kibany.
Při prvním přístupu musíte namapovat index filebeat. Přejděte na Správa>> Vzory indexu .
Do vzoru indexu zadejte následující box.
filebeat-*Měli byste vidět filebeat index něco jako výše. Klikněte na Další krok .
Vyberte @časové razítko a poté klikněte na Vytvořit vzor indexu .
@timestampPodívejte se na vzory indexů a jejich mapování.
Klikněte na Objevit v levé navigaci zobrazíte příchozí protokoly z klientských počítačů.
To je vše.
20 věcí, které je třeba udělat po nové instalaci Ubuntu 18.04 LTS Jak nainstalovat Apache Tomcat 10 na Ubuntu 20.04 / Ubuntu 18.04Ubuntu