ELK je kompletně vybavený zásobník pro analýzu dat, který se skládá z Elasticsearch , Logstash a Kibana, který vám pomáhá centrálně ukládat a spravovat protokoly a nabízí možnost analyzovat problémy korelací událostí v konkrétním čase.
Tato příručka vám pomůže nainstalovat ELK stack na Ubuntu 16.04.
Komponenty
Logstash – Zpracovává (shromažďuje, obohacuje a posílá je do Elasticsearch) příchozích protokolů odeslaných beats (forwarder).
Elasticsearch – Ukládá příchozí protokoly z Logstash a poskytuje možnost prohledávat protokoly/data v reálném čase
Kibana – Poskytuje vizualizaci protokolů.
Beats – Nainstalované na klientských počítačích, odesílání protokolů do Logstash prostřednictvím protokolu beats.
Předpoklady
Přepněte na uživatele root.
su -
NEBO
sudo su -
Protože Elasticsearch je založen na Javě, musíte mít OpenJDK nebo Oracle JDK nainstalovaný na vašem počítači.
ČTĚTE :Jak nainstalovat Oracle Java 8 na Ubuntu 16.04 / LinuxMint 18
Zde jsem zvolil instalaci OpenJ D K .
apt-get updateapt-get install -y openjdk-8-jdk wget
Zkontrolujte verzi JAVA.
verze Java
Výstup:
openjdk verze "1.8.0_131" OpenJDK Runtime Environment (sestavení 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)OpenJDK 64-Bit Server VM (sestavení 25.131-b) premixovaný režim)Nainstalujte Elasticsearch
Elasticsearch je open-source vyhledávací server, který nabízí distribuované vyhledávání a analýzy v reálném čase s webovým rozhraním RESTful.
Elasticsearch ukládá všechna data odeslaná logstash a zobrazuje je prostřednictvím kibany na žádost uživatelů.
Toto téma pokrývá konfigurační nastavení, která jsou vyžadována pro ELK. Můžete také použít Instalovat Elasticsearch na CentOS 7 / Ubuntu 16.04 / Linux Mint 18 pro další instrukce.
Nastavte úložiště Elasticsearch.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elk.listNainstalujte Elasticsearch.
apt-get updateapt-get install -y elasticsearchNakonfigurujte Elasticsearch tak, aby se spouštěl během spouštění systému.
systemctl povolit elasticsearchsystemctl spustit elasticsearchElastisearch by nyní měl naslouchat na 9200 pro zpracování HTTP požadavku; můžeme použít CURL k získání odpovědi.
curl -X GET http://localhost:9200Výstup:
{ "name" :"gf5QYAn", "cluster_name" :"elasticsearch", "cluster_uuid" :"S6gZNkMERpSr-MGXqEFUJw", "version" :{ "number" :"5.5.2", "build_hash" :" b2f0c09", "build_date" :"2017-08-14T12:33:14.154Z", "build_snapshot" :false, "lucene_version" :"6.6.0" }, "tagline" :"Víte, pro vyhledávání"}Nainstalujte Logstash
Logstash je open source nástroj, shromažďuje protokoly, analyzuje 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.
Nainstalujte Logstash pomocí příkazu apt-get.
apt-get install -y logstashVytvořit certifikát SSL
Forwarder (filebeat), který bude nainstalován na klientské servery, používá SSL certifikát k ověření identity serveru Logstash pro zabezpečenou komunikaci.
Vytvořte certifikát SSL buď s názvem hostitele nebo IP SAN.
Možnost 1:(Název hostitele FQDN)
Pokud používáte název hostitele v konfiguraci beats (forwarder), ujistěte se, že máte záznam A pro server logstash; ujistěte se, že klientský počítač dokáže přeložit název hostitele serveru logstash.
Pokud ve svém prostředí nemáte jmenný server; ujistěte se, že jste přidali položku hostitele pro server logstash na klientských počítačích i na server logstash.
sudo nano /etc/hosts192.168.12.10 server.itzgeek.localPřejděte do adresáře OpenSSL.
cd /etc/ssl/Nyní vytvořte certifikát SSL. Nahraďte „zelené ” jeden s názvem hostitele vašeho skutečného serveru logstash.
openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.localMožnost 2:(IP adresa)
Pokud plánujete místo názvu hostitele používat IP adresu, postupujte podle kroků k vytvoření SSL certifikátu pro IP SAN.
Nezbytnou podmínkou je přidání IP adresy serveru logstash do SubjectAltName v konfiguračním souboru OpenSSL.
nano /etc/ssl/openssl.cnfVyhledejte sekci „[ v3_ca ]“ a nahraďte „zelenou ” jeden s IP vašeho logstash serveru.
subjectAltName =IP:192.168.12.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.
openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crtTento soubor logstash-forwarder.crt by měl být zkopírován na všechny klientské servery, které odesílají protokoly na server logstash.
Nakonfigurujte Logstash
Konfigurace Logstash lze nalézt v /etc/logstash/conf.d/. Pokud soubory neexistují, vytvořte nový. konfigurační soubor logstash se skládá ze tří částí vstup, filtr a výstup; všechny tři sekce lze nalézt buď v jediném souboru, nebo každá sekce bude mít samostatné soubory končící příponou .conf.
Doporučuji vám použít jeden soubor pro umístění vstupních, filtračních a výstupních sekcí.
nano /etc/logstash/conf.d/logstash.confV první sekci vložíme položku pro konfiguraci vstupu. Následující konfigurace nastaví 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.
vstup { beats { port => 5044 ssl => true ssl_certificate => "/etc/ssl/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" congestion_threshold => "40 " }}V sekci filtr. Použijeme Grok k analýze protokolů před jejich odesláním do Elasticsearch. 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 {shoda => [ "timestamp", "MMM d HH:mm :ss", "MMM dd HH:mm:ss" ]} }}Pokud chcete další vzory filtrů, podívejte se na stránku grokdebugger.
Ve výstupní sekci definujeme umístění, kam se mají protokoly ukládat; samozřejmě by to mělo být Elasticsearch.
output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }stdout { kodek => rubydebug }}Nyní spusťte a povolte logstash.
systemctl spustit logstashsystemctl povolit logstashJakékoli problémy můžete vyřešit pomocí níže uvedeného protokolu.
cat /var/log/logstash/logstash-plain.logDále nakonfigurujeme beaty pro odesílání protokolů na server logstash.
Instalovat Filebeat
K dispozici jsou klienti se čtyřmi dobami.
- Packetbeat – Analýza síťových paketových dat.
- Filebeat – Přehled dat protokolu v reálném čase.
- Topbeat – Získejte statistiky z dat infrastruktury.
- Metricbeat – Odeslání metrik do Elasticsearch.
Na klientském počítači:
K analýze systémových protokolů zde použijeme filebeat. Filebeat si můžete stáhnout zoficiální stránky , nebo jej můžete nainstalovat pomocí následujícího příkazu.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/beats.listNainstalujte Filebeat.
apt-get update apt-get install -y filebeatFilebeat (beats) používá certifikát SSL k ověření identity serveru logstash, takže zkopírujte soubor logstash-forwarder.crt ze serveru logstash do klienta.
$ scp -pr [email protected]:/etc/ssl/logstash-forwarder.crt /etc/sslKonfigurace Filebeat
Nyní je čas propojit filebeat s Logstash; postupujte podle níže uvedených kroků a získejte konfiguraci filebeat se zásobníkem ELK.
Konfigurační soubor Filebeat je ve formátu YAML, což znamená, že odsazení je velmi důležité. Ujistěte se, že používáte stejný počet mezer jako v příručce.
Otevřete konfigurační soubor filebeat.
nano /etc/filebeat/filebeat.ymlNahoře uvidíte prospektory Filebeat. Zde musíte určit, jaké soubory mají být odeslány do logstashe a jak s nimi zacházet. Každý prospektor začíná – postava.
Pro účely testování nakonfigurujeme filebeat tak, aby odesílal /var/log/syslog na server Logstash. Chcete-li to provést, upravte stávajícího prospektora v části cesty sekce. Zakomentujte – /var/log/*.log abyste se vyhnuli odesílání všech .log soubor přítomný v tomto adresáři do Logstash.
. . . cesty: - /var/log/syslog # - /var/log/*.log. . .V části Výstupy , okomentujte sekci output.elasticsearch: protože nebudeme ukládat protokoly přímo do Elasticsearch.
Nyní najděte řádek „output.logstash: “ a upravte položky jako níže. Tato sekce definuje filebeat pro odesílání protokolů na server logstash „server.itzgeek.local “ na portu „5044 ” a uveďte cestu, kam je umístěn zkopírovaný certifikát SSL.
Poznámka:Nahraďte „server.itzgeek.local ” s IP adresou v případě, že používáte IP SAN.
. . .output.logstash:# Hostitelé serveru Logstash:["server.itzgeek.local:5044 "] # Volitelné SSL. Ve výchozím nastavení je vypnuto. # Seznam kořenových certifikátů pro ověření serveru HTTPS ssl.certificate_authorities:["/etc/ssl/logstash-forwarder.crt "]. . .Restartujte službu.
systemctl restart filebeatsystemctl povolit filebeatProtokoly Beats se obvykle nacházejí v jeho souboru protokolu.
cat /var/log/filebeat/filebeatInstalace a konfigurace Kibana
Kibana poskytuje vizualizaci protokolů uložených na elasticsearch, stáhněte si ji z oficiálního webu nebo použijte následující příkaz k nastavení úložiště.
apt-get install -y kibanaUpravte soubor kibana.yml.
nano /etc/kibana/kibana.ymlVe výchozím nastavení Kibana naslouchá na localhost, což znamená, že nemáte přístup k rozhraní Kibana z vnějších počítačů. Chcete-li to povolit, upravte na níže uvedeném řádku adresu IP vašeho počítače.
server.host:"192.168.12.10 "."Odkomentujte následující řádek a aktualizujte jej pomocí adresy URL instance Elasticsearch. V mém případě je to localhost.
elasticsearch.url:"http://localhost:9200"Spusťte a povolte kibana při spuštění systému.
systemctl spustit kibanasystemctl povolit kibanaKe Kibaně se dostanete 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.
Do pole Název indexu nebo vzor zadejte následující box.
filebeat-*Vyberte @časové razítko a poté klikněte na vytvořit.
@timestampProjděte si vzory indexů a jejich mapování.
Klikněte na Objevit v levé navigaci zobrazíte příchozí protokoly z klientského počítače.
To je vše. Úspěšně jste nastavili ELK stack na Ubuntu 16.04
Ubuntu