GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Elasticsearch, Logstash a Kibana (ELK Stack) na Ubuntu 18.04 / Ubuntu 16.04

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.list

Nainstalujte 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 elasticsearch

Spusťte službu Elasticsearch.

sudo systemctl spustit elasticsearchsudo systemctl povolit elasticsearch

Počkejte několik minut a spusťte níže uvedený příkaz, abyste viděli stav rozhraní Elasticsearch REST.

curl -X GET http://localhost:9200

Vý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 logstash

Vytvoř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.local 

Tento 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.cnf

Hledejte [ v3_ca ] sekci a aktualizujte subjectAltName s IP adresou vašeho serveru Logstash.

subjectAltName =IP:192.168.1.10 

Př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.crt

Tento 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.pem

Změňte oprávnění k souboru na světově čitelný.

sudo chmod 644 /etc/ssl/logstash-forwarder.key.pem

Nakonfigurujte 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.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.

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 logstash

Logstash logs:

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
Ve 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.yml

Proveď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 kibana

Nainstalovat 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/hosts

Zadejte záznam, například níže.

192.168.1.10 server.itzgeek.local

Nainstalovat 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-https

Filebeat 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.list

Nainstalujte Filebeat pomocí následujícího příkazu.

sudo apt updatesudo apt install -y filebeat

Konfigurace 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/ssl

Upravte konfigurační soubor filebeat /etc/filebeat/filebeat.yml pro odeslání protokolů na server Logstash.

sudo nano /etc/filebeat/filebeat.yml

Níž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 filebeat

Protokol souboru Filebeat se obvykle nachází v jeho souboru protokolu.

sudo cat /var/log/filebeat/filebeat

Pří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:5601

Zí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 .

@timestamp

Podí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.


Ubuntu
  1. Jak nainstalovat a používat Elasticsearch na Ubuntu 20.04

  2. Jak nainstalovat Elasticsearch, Logstash a Kibana 4 na Ubuntu 14.04 / 15.04

  3. Nainstalujte Elasticsearch, Logstash a Kibana na Ubuntu 20.04

  1. Jak nainstalovat ELK Stack (Elasticsearch, Logstash a Kibana) na Ubuntu 18.04 / 20.04

  2. Jak nainstalovat Elasticsearch, Logstash a Kibana 4 na CentOS 7 / RHEL 7

  3. Jak nainstalovat a nakonfigurovat Elasticsearch na Ubuntu 20.04

  1. Jak nainstalovat Elasticsearch, Logstash a Kibana (ELK Stack) na CentOS 8

  2. Jak nainstalovat Elastic Stack (Elasticsearch, Logstash a Kibana) na CentOS 8

  3. Jak nainstalovat Elastic Stack na Ubuntu 16.04