Zpět na blog

Jak nainstalovat Elastic Stack na Ubuntu 18.04

Jak nainstalovat Elastic Stack na Ubuntu 18.04

Elastic Stack (dříve známý jako ELK Stack) je výkonné řešení pro centralizované protokolování. Jedná se o kolekci open-source softwaru vyvinutého společností Elastic. Umožňuje administrátorům vyhledávat, analyzovat a vizualizovat protokoly generované z jakéhokoli zdroje v jakémkoli formátu. Jde o postup známý jako centralizované protokolování. Centralizované protokolování může být velmi užitečné při snaze přesně lokalizovat problémy se servery a aplikacemi, protože umožňuje prohledávat všechny protokoly z jednoho místa. Může také pomoci identifikovat problémy na více serverech korelací protokolů v konkrétním čase.

V této příručce se dozvíte, jak nainstalovat Elastic Stack na Ubuntu 18.04. Nejprve postupujte podle našeho návodu, abyste snadno nainstalovali svůj server Ubuntu na CloudSigma.

Elastic Stack na Ubuntu

Elastic Stack se skládá z následujících komponent:

  • Elasticsearch: Distribuovaný vyhledávací nástroj typu RESTful. Ukládá všechna shromážděná data.
  • Logstash: Část pro zpracování dat v Elastic Stacku. Odesílá příchozí data do Elasticsearch.
  • Kibana: Webové rozhraní nabízející funkce vyhledávání a vizualizace protokolů.
  • Beats: Lehký, jednoúčelový vysílač dat. Může odesílat data z mnoha počítačů do Logstash nebo Elasticsearch.

Každou komponentu sady budete muset nainstalovat ručně.

Požadavky

Před pokračováním v instalaci Elastic Stacku, je nutné splnit několik systémových požadavků:

Upozorňujeme, že velikost úložiště závisí na počtu shromažďovaných a ukládaných protokolů. Kromě toho Elastic Stack zpracovává také cenné informace o serveru. Pro zajištění bezpečnosti přenosu dat důrazně doporučujeme nakonfigurovat certifikát TLS/SSL. Postupujte podle tohoto tutorial to acquire a free SSL certificate on your Nginx server.

Kromě šifrovaného serveru budou nutné také následující kroky:

  • FQDN (plně kvalifikovaný název domény). V této příručce to bude <domain>.
  • Oba DNS záznamy následujících domén směřují na server.
    • Záznam typu A s <domain> ukazující na veřejnou IP adresu serveru.
    • Záznam typu A s www.<domain> ukazující na veřejnou IP adresu serveru.

Instalace Elastic Stacku

  • Konfigurace repozitáře Elastic

Komponenty Elastic Stacku nejsou k dispozici přímo z oficiálního repozitáře Ubuntu. Naštěstí Ubuntu umožňuje instalaci z repozitářů 3. stran. Pro náš účel přidáme repozitář balíčků Elastic. Tento repozitář nabízí všechny nejnovější aktualizace všech balíčků Elastic. Všechny balíčky Elastic jsou podepsány podpisovým klíčem Elasticsearch, aby se zabránilo podvržení balíčků. Nejprve přidejte klíč do klíčenky Ubuntu:

Poté přidejte seznam zdrojů Elastic do adresáře „sources.list.d“. Je to vyhrazený adresář, který APT používá k vyhledávání nových zdrojů:

Nakonec aktualizujte mezipaměť APT:

Podle oficiální dokumentace se doporučuje nainstalovat každou z komponent v pořadí uvedeném v této příručce. Tím se zajistí, že komponenty, na kterých každý produkt závisí, budou na správném místě.

  • Instalace a konfigurace Elasticsearch

Jakmile je repozitář Elastic nakonfigurován, APT je připraven stáhnout a nainstalovat všechny balíčky Elastic. Spuštěním následujícího příkazu nainstalujte Elasticsearch:

Nyní můžete nakonfigurovat Elasticsearch. Soubor „elasticsearch.yml“ poskytuje možnosti konfigurace pro clustery, uzly, cesty, sítě, paměť, bránu a další. Většina z nich je v souboru již přednastavena. Dále otevřete konfigurační soubor Elasticsearch v textovém editoru podle vašeho výběru:

Elasticsearch naslouchá na portu 9200 odkudkoli. Doporučujeme omezit přístup k Elasticsearch zvenčí, abyste zabránili nepovolaným osobám ve čtení dat nebo vypínání clusterů Elasticsearch pomocí jeho REST API. Chcete-li omezit přístup k Elasticsearch a zvýšit jeho zabezpečení, odkomentujte následující řádek a nahraďte jeho hodnotu:

network.host: localhost

Pokud má Elasticsearch naslouchat na konkrétní IP adrese, nahraďte „localhost“ cílovou IP adresou. Toto je minimální požadavek na konfiguraci před spuštěním Elasticsearch. Uložte a zavřete konfigurační soubor. Dále spusťte službu Elasticsearch. Spuštění Elasticsearch může chvíli trvat:

Poté musíte zajistit, aby se Elasticsearch spustil při každém spuštění serveru:

Následující příkaz ověří, zda služba Elasticsearch běží. Vyžaduje pouze odeslání HTTP požadavku:

sending an HTTP request

Odpověď bude vypadat nějak takto. Bude to odpověď zobrazující základní informace o lokálním uzlu.

Instalace a konfigurace řídicího panelu Kibana

Kibana je přímo dostupná z repozitáře Elastic. Upozorňujeme, že Kibana byste měli instalovat až poté, co jste již nainstalovali Elasticsearch. Za předpokladu, že je repozitář již k dispozici, APT může přímo stáhnout a nainstalovat Kibana:

Po instalaci povolte a spusťte službu Kibana:

Ve výchozím nastavení je Kibana nakonfigurována tak, aby naslouchala pouze na „localhost“. Pro externí přístup vyžaduje konfiguraci reverzního proxy. Zde bude jako reverzní proxy sloužit Nginx bude reverzním proxy. Použijte příkaz openssl pro vytvoření administrátorského uživatele Kibana. Bude to uživatelský účet pro přístup k webovému rozhraní Kibana. V tomto příkladu bude uživatelské jméno „kibana_admin“. Pro zajištění lepší bezpečnosti doporučujeme použít nestandardní uživatelské jméno. Následující příkaz vytvoří administrátorského uživatele pro Kibana. Uživatelské jméno a heslo budou vygenerovány a uloženy v souboru „htpasswd.users“. Nginx bude muset být nakonfigurován tak, aby toto uživatelské jméno a heslo používal:

Na výzvu zadejte a potvrďte heslo. Toto heslo bude důležité pro přístup k rozhraní Kibana. Poté musíte vytvořit soubor bloku serveru Nginx. Pro účely ukázky to bude example.com. Může to být také jakýkoli jiný popisný název. Pokud jsou pro server nakonfigurovány záznamy FQDN a DNS, název souboru může být také podle FQDN:

Pokud existuje nějaký předchozí obsah, odstraňte jej a nahraďte jej následujícími řádky kódu:

Uložte a zavřete soubor. Vytvořte symbolický odkaz nové konfigurace v adresáři „sites-enabled“. Pokud již existuje nějaký dřívější odkaz se stejným názvem souboru, nemusí být tento krok nutný:

Následující příkaz vyzve Nginx ke kontrole, zda neobsahuje syntaktické chyby:

Pokud se vyskytne jakýkoli syntaktický problém, ujistěte se, že byl obsah souboru správně umístěn. Poté restartujte službu Nginx:

Řekněte UFW to allow connection to Nginx:

Kibana by nyní měla být přístupná přes FQDN nebo veřejnou IP adresu serveru Elastic Stack. Zkontrolujte stavovou stránku serveru Kibana:

status page

Instalace a konfigurace Logstash

Zatímco Beats mohou posílat data přímo do databáze Elasticsearch’s, pro zpracování dat se doporučuje použít Logstash. Logstash dokáže data shromažďovat a převádět je do společného formátu před exportem do jiné databáze. Spuštěním následujícího příkazu APT nainstalujte Logstash:

Po dokončení instalace je čas nakonfigurovat Logstash. Konfigurační soubory Logstash jsou ve formátu JSON. Všechny je najdete v adresáři „/etc/logstash/conf.d“. Je užitečné si Logstash představit jako rouru (pipeline), která na jednom konci přijímá data, zpracovává je a odesílá do cíle. Logstash pipeline vyžaduje dva povinné prvky – input a output s jedním volitelným prvkem – filter. Plugin input přijímá data, filter plugin data zpracovává a output plugin zapisuje data do cíle. Následující příkaz vytvoří konfigurační soubor, který nastaví Logstash pro vstup Filebeat:

Zadejte následující konfiguraci input. Popisuje vstup beats, který bude naslouchat na portu 5044 na TCP:

Dalším krokem je vytvoření konfiguračního souboru s názvem „10-syslog-filter.conf“. Použijeme jej k nastavení filtru pro syslogs (systémové protokoly):

Zadejte následující kód konfigurace syslog. Tento kód je k dispozici přímo z Elastic guide. Tento kód vysvětluje konfiguraci input pro Logstash:

Další konfigurační soubor se bude zabývat výstupem. Otevřete nový soubor s názvem „30-elasticsearch-output.conf“:

Vložte následující kód. Tento kód vysvětluje konfiguraci výstupu pro Logstash:

Otestujte konfiguraci Logstash. Poté spusťte následující příkaz:

Pokud nedojde k žádné chybě, Logstash vypíše následující zprávu o úspěchu. Pokud nebyl úspěšný, ujistěte se, že všechny konfigurační soubory mají správné kódy. Nakonec spusťte a povolte službu Logstash:

Nyní, když Logstash úspěšně běží a je plně nakonfigurován, nainstalujme Filebeat.

Instalace a konfigurace Filebeatu

Elastic Stack používá odesílatele dat, známé jako „Beats“, ke sběru dat z různých zdrojů a jejich přenosu do Logstash/Elasticsearch. Zde je stručný seznam dostupných Beats od společnosti Elastic:

  • Filebeat: Sběr/odesílání souborů protokolů.
  • Metricbeat: Sběr/odesílání metrik ze systémů a služeb.
  • Packetbeat: Sběr/analýza síťových dat.
  • Winlogbeat: Sběr protokolů událostí systému Windows.
  • Auditbeat: Sběr dat z auditního rámce Linuxu a monitorování integrity souborů.
  • Heartbeat: Monitorování dostupnosti služeb.

Pro účely tohoto návodu budeme potřebovat Filebeat k odesílání lokálních protokolů do Elastic Stack. Nejprve nainstalujte Filebeat:

Nyní můžete nakonfigurovat Filebeat. Nejprve se musí připojit k Logstashi. Použijeme ukázkovou konfiguraci, která je dodávána s Filebeat. Otevřete konfigurační soubor v textovém editoru. Upozorňujeme, že protože je soubor ve formátu YAML, je důležité správné odsazení:

Najděte sekci „output.elasticsearch“ a zakomentujte následující řádky. Tím se Filebeat nakonfiguruje tak, aby odesílal události přímo do Elasticsearch/Logstash pro další zpracování. Dále přejděte do sekce „output.logstash.“ Poté odkomentujte řádky:

output.logstash

Filebeat podporuje moduly, které mohou rozšířit jeho funkčnost. V tomto návodu použijeme systémový modul, který shromažďuje a analyzuje protokoly generované systémovou službou protokolování běžných distribucí Linuxu. Povolte systémový modul Filebeat:

Následující příkaz Filebeat vypíše všechny povolené a zakázané moduly:

Ve výchozím nastavení je Filebeat nastaven tak, aby sledoval výchozí cesty pro syslog a autorizační protokoly. Parametry modulů jsou k dispozici v konfiguračním souboru „/etc/filebeat/modules.d/system.yml“.

Dalším krokem je načtení šablony indexu do Elasticsearch. Index Elasticsearch označuje kolekci dokumentů sdílejících podobné vlastnosti. Každý index má svůj název. Název je nezbytný při provádění různých operací v něm. Šablona indexu se automaticky použije při každém vygenerování nového indexu. Dále načtěte šablonu:

Filebeat standardně obsahuje ukázkový řídicí panel pro Kibana. Pomáhá vizualizovat data Filebeat v Kibana. Před použitím řídicího panelu je však nutné vytvořit vzor indexu a načíst řídicí panely do Kibana. Během načítání řídicích panelů Filebeat kontaktuje Elasticsearch pro informace o verzi. Pro načítání řídicích panelů při povoleném Logstash je vyžadováno mít zakázaný výstup Logstash a povolený výstup Elasticsearch. Následující příkaz provede tuto úlohu:

Nakonec můžete spustit Filebeat:

Nyní je čas otestovat konfiguraci Elastic Stack. Pokud byla správně nakonfigurována, výstup bude vypadat nějak takto:

Elastic Stack configuration

Pokud výstup hlásí celkem 0 zásahů (hits), Elasticsearch nenačítá žádné protokoly pod indexem, který jsme hledali. To značí, že došlo k chybě v konfiguraci. Pokud byl výstup podle očekávání, pak je Elastic Stack úspěšně nakonfigurován.

Přehled řídicích panelů Kibana

Nyní je čas prozkoumat webové rozhraní Kibana, které jsme již nainstalovali. Nejprve otevřete řídicí panel Kibana. Měl by se nacházet na FQDN nebo veřejné IP adrese serveru Elastic Stack:

Zadejte přihlašovací údaje, které jsme vygenerovali dříve. Po přihlášení bude řídicí panel vypadat takto:

Elastic stack home

V levém navigačním panelu vyberte „Discover“. Poté vyberte vzor „filebeat-*“. Zobrazí se všechny protokoly shromážděné za posledních 15 minut. Je možné vyhledávat a procházet protokoly a přizpůsobit si řídicí panel:

customize the dashboard

V levém navigačním panelu přejděte na Dashboard >> Filebeat System. Zde jsou k dispozici všechny ukázkové řídicí panely ze systémového modulu Filebeat.

V následujícím příkladu jsou podrobně popsány různé statistiky založené na zprávách syslog:

Elastic Stack dashboard

Může také hlásit, kteří uživatelé spustili příkazy pomocí sudo:

executed commands

Kibana vám nakonec dává možnost prozkoumat mnoho dalších funkcí, jako je vytváření grafů a filtrování, takže neváhejte a prozkoumejte je sami.

Závěrečné myšlenky

Elastic Stack je výkonné řešení pro analýzu systémových protokolů. Mějte na paměti, že ačkoli jakýkoli protokol nebo indexovaná data lze odeslat do služby Logstash pomocí Beats, stává se užitečnějším, když je analyzován a strukturován pomocí filtrů Logstash.

Příjemnou práci s počítačem!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.