Výukový program ELK Stacku: Kibana, Logstash & Elasticsearch

⚡ Chytré shrnutí

ELK Stack kombinuje tři open-source nástroje – Elasticsearch, Logstasha Kibana – pro shromažďování, ukládání, vyhledávání a vizualizaci strojových dat, což poskytuje technickým týmům centralizované protokolování a analýzy v reálném čase pro rychlejší řešení problémů napříč servery a aplikacemi.

  • 🧩 Role v zásobníku: Elasticsearch ukládá a indexuje data, Logstash zpracovává a odesílá protokoly a Kibana vizualizuje výsledky.
  • 🔎 Elastické vyhledávání: Vyhledávač NoSQL založený na platformě Lucene, který indexuje heterogenní data a vrací téměř reálné textové výsledky prostřednictvím REST API.
  • 🛠️ Logstash: Kanál, který přijímá, filtruje a transformuje protokoly z mnoha zdrojů před jejich odesláním do Elasticsearchu.
  • 📊 Kibana: Webový dashboard, který převádí indexovaná data do interaktivních grafů, map a diagramů pro rychlé prozkoumání.
  • ???? Elastický zásobník: Dodavatelé Lightweight Beats shromažďují data na okraji sítě, což vedlo společnost Elastic k přejmenování ELK na Elastic Stack.
  • 🏢 Produkční využití: Netflix, LinkedIn a Medium provozují ELK napříč velkými clustery pro logování, zabezpečení a monitorování.
  • 🇧🇷 ELK versus Splunk: ELK je bezplatný a open source, zatímco Splunk je komerční platforma s rychlejším zpracováním a širšími integracemi.

Architektura ELK Stacku ukazující, jak Kibana, Logstasha Elasticsearch spolupracují na centralizovaném protokolování a analýze

ELK Stack je jedno z nejpoužívanějších open-source řešení pro centralizované logování a analýzu logů. Tento tutoriál k ELK Stack vysvětluje, co Elasticsearch... Logstash, a Kibana, jak tyto tři nástroje do sebe zapadají a kde se platforma používá v reálném monitorování a pozorovatelnosti.

Co je ELK Stack?

Jedno ELK Stack je kolekce tří open-source produktů — Elasticsearch, Logstasha Kibana. Poskytuje centralizované protokolování, které vám pomáhá identifikovat problémy se servery nebo aplikacemi tím, že vám umožňuje vyhledávat všechny protokoly na jednom místě. Pomáhá také korelovat protokoly napříč více servery v určitém časovém rámci.

  • E zkratka pro Elasticsearch: používá se pro ukládání protokolů.
  • L představuje Logstashpoužívá se pro loďping, zpracování a ukládání protokolů.
  • K znamená Kibana: a vizualizační nástroj (webové rozhraní) hostované přes Nginx nebo Apache.

Elastické vyhledávání, Logstasha Kibana jsou vyvíjeny, spravovány a udržovány společností s názvem Elastický.

ELK Stack je navržen tak, aby uživatelům umožnil přijímat data z libovolného zdroje, v libovolném formátu a poté tato data vyhledávat, analyzovat a vizualizovat v reálném čase.

ELK Stack Architecture

Nyní, když víte, co je zásobník, tato část vysvětluje architekturu ELK a to, jak data točí mezi komponentami.

Procesor ELK se řídí jasnou sekvencí, ve které má každý nástroj vyhrazený úkol:

  • Protokoly: Jsou identifikovány serverové protokoly, které je třeba analyzovat.
  • Logstash: Shromažďuje protokoly a data událostí, poté je analyzuje a transformuje.
  • Elastické vyhledávání: Data transformovaná pomocí Logstash je uložen, prohledáván a indexován.
  • Kibana: Používá databázi Elasticsearch k prozkoumávání, vizualizaci a sdílení poznatků.

Pro sběr dat se však často přidává čtvrtá komponenta s názvem Beats. Beats jsou odlehčené komponenty instalované na serverech a jejich přidání vedlo společnost Elastic k přejmenování ELK na Elastic Stack.

Schéma architektury ELK Stack zobrazující Logstash, Elasticsearch a tok dat Kibana

Pokud pracujete s velmi velkým množstvím dat, můžete před proces přidat Kafka nebo RabbitMQ pro ukládání do vyrovnávací paměti a odolnost.

Pro větší bezpečnost lze před stack umístit reverzní proxy, jako je Nginx.

Architektura ELK Stack s přidaným Beats pro sběr dat

S ohledem na architekturu se následující části blíže podíváme na každý open-source produkt v dané sadě.

Co je Elasticsearch?

Elasticsearch je a NoSQL databáze Je založen na vyhledávači Lucene a je postaven s využitím RESTful API. Nabízí jednoduché nasazení, vysokou spolehlivost a snadnou správu a centrálně ukládá všechna vaše data, takže můžete spouštět pokročilé dotazy a rychlé vyhledávání dokumentů.

Elasticsearch vám také umožňuje ukládat, vyhledávat a analyzovat velké objemy dat. Nejčastěji se používá jako základní engine, který pohání aplikace s náročnými požadavky na vyhledávání.

Protože kromě rychlého vyhledávání přidává analytické funkce a mnoho pokročilých funkcí, byl Elasticsearch široce používán ve vyhledávacích platformách pro moderní webové a mobilní aplikace.

Funkce Elasticsearchu

Elasticsearch nabízí bohatou sadu funkcí pro indexování a vyhledávání dat:

  • Vyhledávací server s otevřeným zdrojovým kódem napsaný v Java.
  • Schopný indexovat jakýkoli druh heterogenních dat.
  • Poskytuje webové rozhraní REST API s výstupem JSON.
  • Vyhledávání v celém textu.
  • Vyhledávání téměř v reálném čase (NRT).
  • Horizontálně dělené, replikované a prohledávatelné úložiště dokumentů JSON.
  • Distribuované úložiště dokumentů bez schémat, založené na REST a JSON.
  • Podpora více jazyků a geolokace.

Výhody Elasticsearch

  • Ukládá data bez schématu a může také vytvořit schéma pro vaše data.
  • Umožňuje manipulovat se záznamy jeden po druhém pomocí rozhraní API pro více dokumentů.
  • Podporuje filtrování a dotazování dat pro získání přehledů.
  • Založeno na Apache Lucene a poskytuje RESTful API.
  • Nabízí horizontální škálovatelnost, spolehlivost a podporu pro více klientů pro indexování v reálném čase a rychlejší vyhledávání.
  • Pomáhá vám škálovat vertikálně i horizontálně.

Níže uvedená tabulka vysvětluje klíčové pojmy, se kterými se setkáte při práci s Elasticsearch:

Období Používání
Cluster Klastr je kolekce uzlů, které společně uchovávají vaše data a poskytují kombinované možnosti indexování a vyhledávání.
Uzel Uzel je samostatná instance Elasticsearch. Vytvoří se při spuštění instance Elasticsearch.
index Index je kolekce dokumentů, které sdílejí podobné charakteristiky, jako jsou zákaznická data nebo katalog produktů. Je užitečný pro indexování, vyhledávání, aktualizaci a mazání a v jednom clusteru můžete definovat mnoho indexů.
Dokument Dokument je základní jednotkou informací, kterou lze indexovat. Je vyjádřen jako pár klíč-hodnota JSON a každý dokument je přiřazen k typu a jedinečnému ID.
Střep Každý index lze pro distribuci dat rozdělit do několika shardů. Shard je atomická část indexu a lze jej rozložit po celém clusteru s přidáváním dalších uzlů.

Co je to Logstash?

Logstash je nástroj pro sběr dat v rámci stacku. Shromažďuje datové vstupy a vkládá je do Elasticsearchu, kde shromažďuje všechny typy dat z různých zdrojů a zpřístupňuje je pro další použití.

Logstash dokáže sjednotit data z různých zdrojů a normalizovat je do vámi zvolených cílových umístění. To vám umožní vyčistit a demokratizovat všechna vaše data pro širokou škálu analytických a vizualizačních případů použití.

Skládá se ze tří složek:

  • Vstup: předává protokoly a převádí je do strojově čitelného formátu.
  • Filtry: sada podmínek, které provedou určitou akci na základě události.
  • Výstup: osoba s rozhodovací pravomocí, která směruje každou zpracovanou událost nebo protokol.

Vlastnosti Logstash

Logstash zahrnuje několik funkcí, které zvyšují flexibilitu zpracování protokolů:

  • Události procházejí každou fází pomocí interních front.
  • Umožňuje různé vstupy pro vaše protokoly.
  • Podporuje filtrování a parsování protokolů.

výhody Logstash

  • Centralizuje zpracování vašich dat.
  • Analyzuje širokou škálu strukturovaných i nestrukturovaných dat a událostí.
  • Nabízí pluginy pro propojení s mnoha typy vstupních zdrojů a platforem.

Co je Kibana?

Kibana je nástroj pro vizualizaci dat, který doplňuje ELK Stack. Používá se k vizualizaci dokumentů Elasticsearch a pomáhá vývojářům získat rychlý vhled do jejich dat prostřednictvím interaktivních diagramů, geoprostorových dat a grafů, které usnadňují pochopení složitých dotazů.

Kibanu můžete použít k vyhledávání, prohlížení a interakci s daty uloženými v indexech Elasticsearch. Pomáhá vám také provádět pokročilé operace. analýza dat a prezentovat svá data v různých tabulkách, grafech a mapách.

Kibana podporuje několik metod vyhledávání dat. Níže jsou uvedeny nejběžnější typy vyhledávání:

Typ vyhledávání Používání
Volné textové vyhledávání Používá se pro vyhledávání konkrétního řetězce.
Vyhledávání na úrovni pole Používá se pro vyhledávání řetězce v určitém poli.
Logické výroky Používá se ke sloučení vyhledávání do logického příkazu.
Vyhledávání v blízkosti Používá se pro vyhledávání výrazů v blízkosti konkrétního znaku.

Kibana také nabízí řadu výkonných funkcí pro prozkoumávání indexovaných dat:

  • Výkonný front-endový dashboard, který vizualizuje indexované informace z clusteru Elasticsearch.
  • Umožňuje vyhledávání indexovaných informací v reálném čase.
  • Umožňuje vyhledávat, prohlížet a interagovat s daty uloženými v Elasticsearch.
  • Provádí dotazy na datech a vizualizuje výsledky v grafech, tabulkách a mapách.
  • Konfigurovatelný dashboard pro krájení a sekvenování Logstash protokoly v Elasticsearchu.
  • Poskytuje historická data ve formě grafů, tabulek a dalších údajů.
  • Nabízí snadno konfigurovatelné dashboardy v reálném čase.

Výhody a nevýhody Kibany

Stejně jako každý nástroj má i Kibana jasné silné stránky, které vysvětlují její popularitu:

  • Snadná vizualizace dat.
  • Plně integrováno s Elasticsearch.
  • Funguje jako specializovaný vizualizační nástroj.
  • Nabízí analýzu, grafy, sumarizaci a ladění v reálném čase.
  • Nabízí intuitivní a uživatelsky přívětivé rozhraní.
  • Umožňuje sdílení snímků prohledaných protokolů.
  • Umožňuje ukládat a spravovat více dashboardů.

Má také několik omezení, která je třeba mít na paměti:

  • Funguje pouze s Elasticsearch jako zdrojem dat.
  • Vytváření a ladění složitých dashboardů může zahrnovat strmou křivku učení.

Proč Log Analysis?

V cloudových infrastrukturách jsou výkon a izolace velmi důležité.

Výkon virtuálních počítačů v cloudu se může lišit v závislosti na konkrétním zatížení, prostředí a počtu aktivních uživatelů, takže spolehlivost a selhání uzlů se mohou stát významnými problémy.

A platforma pro správu protokolů Může monitorovat všechny tyto problémy. Může také zpracovávat protokoly operačního systému, protokoly webových serverů Nginx a IIS pro analýzu provozu, protokoly aplikací a protokoly generované na AWS (Amazon Webové služby).

Správa protokolů v konečném důsledku pomáhá devops inženýři a systémoví administrátoři činí lepší rozhodnutí založená na datech. Proto se analýza protokolů pomocí Elastic Stack nebo podobných nástrojů stala nezbytnou.

ELK vs. Splunk

Častou otázkou je, jak si ELK Stack vede v porovnání s... Splunk, oblíbená komerční alternativa. Níže uvedená tabulka shrnuje hlavní rozdíly:

ELK Splunk
ELK je nástroj s otevřeným zdrojovým kódem. Splunk je komerční nástroj.
ELK nenabízí Solaris přenositelnost díky Kibaně. Splunk nabízí Solaris přenosnost.
Rychlost zpracování je přísně omezena. Nabízí přesné a rychlé zpracování.
ELK je technologický stack vytvořený kombinací Elasticsearch, Logstasha Kibana. Splunk je proprietární nástroj, který poskytuje jak on-premise, tak cloudová řešení.
V ELK je vyhledávání, analýza a vizualizace možné až po nastavení zásobníku. Splunk je kompletní balíček pro správu dat ihned po vybalení z krabice.
ELK nabízí omezenou vestavěnou integraci s jinými nástroji. Splunk je užitečný pro nastavení integrací s dalšími nástroji.

Případové studie

Mnoho známých společností se spoléhá na ELK Stack pro provozování logování a analýz ve velkém měřítku. Níže uvedené příklady ukazují, jak se používá v produkčním prostředí.

Netflix

Netflix Pro monitorování a analýzu bezpečnostních protokolů svých operací zákaznických služeb se do značné míry spoléhá na ELK Stack. Platforma umožňuje Netflix indexovat, ukládat a vyhledávat dokumenty ve více než patnácti klastrech složených z přibližně 800 uzlů.

LinkedIn

Profesionální networkingová platforma LinkedIn využívá ELK Stack ke sledování výkonu a zabezpečení. Její tým integroval ELK s Kafkou pro zpracování zátěže v reálném čase a provoz zahrnuje více než 100 clusterů v šesti datových centrech.

Tripwire

Tripwire, celosvětový poskytovatel řešení pro správu bezpečnostních informací a událostí (SIEM), používá ELK Stack k podpoře analýzy protokolů informačních paketů.

Střední

Medium, populární platforma pro publikování blogů, používá ELK Stack k ladění produkčních problémů a k detekci... DynamoDB hotspoty. Tento stack pomáhá společnosti podporovat 25 milionů unikátních čtenářů a tisíce nových příspěvků každý týden.

Výhody a nevýhody ELK Stacku

Výhody

ELK Stack nabízí několik výhod, které vysvětlují jeho široké přijetí:

  • Nejlépe to funguje, když se protokoly z různých podnikových aplikací shromažďují do jedné instance ELK.
  • Poskytuje bohatý přehled z jediné instance a odstraňuje nutnost přihlašovat se ke stovkám samostatných zdrojů dat.
  • Rychlá instalace na místě.
  • Snadné nasazení a škálování vertikálně i horizontálně.
  • Elastic nabízí mnoho jazykových klientů, včetně Ruby, Python, PHP, Perl, .NET, Java, a JavaSkript.
  • Knihovny jsou k dispozici pro mnoho programovacích a skriptovacích jazyků.

Nevýhody

Navzdory svým silným stránkám má ELK Stack několik nevýhod, které je třeba zvážit:

  • S přechodem na složitější nastavení se může stát obtížné spravovat různé komponenty.
  • Je zde skutečná křivka učení, takže počítejte s určitými pokusy a omyly, jak získáváte zkušenosti.

Nejčastější dotazy

Beats jsou lehké, open-source datové přenašeče instalované jako agenti na serverech. Filebeat přeposílá logovací soubory a Metricbeat shromažďuje systémové metriky. Data odesílají přímo do Elasticsearch nebo prostřednictvím LogstashPřidání Beats pro sběr dat vedlo společnost Elastic k přejmenování ELK Stacku na Elastic Stack.

ELK je zkratka pro Elasticsearch, Logstasha Kibana. Když společnost Elastic přidala Beats, svou rodinu lehkých přenašečů dat, byl kombinovaný produkt přejmenován na Elastic Stack. Elastic Stack tedy popisuje stejné tři nástroje plus Beats a další funkce, jako je zabezpečení a strojové učení.

Ano. Elasticsearch, Logstasha Kibana jsou ke stažení zdarma. Od roku 2024 nabízí Elastic Elasticsearch a Kibanu pod open-source licencí AGPLv3, spolu s licencí SSPL a Elastic License. Pokročilé funkce, jako je strojové učení a upozornění, vyžadují placenou úroveň předplatného.

Elasticsearch je schématické flexibilní, dokumentově orientované NoSQL úložiště, postavené na Apache Lucene a dotazované prostřednictvím REST API. Relační databáze používají fixní tabulky, řádky a SQL s transakcemi ACID. Elasticsearch je optimalizován pro fulltextové vyhledávání a analýzy téměř v reálném čase, spíše než pro striktní transakční konzistenci.

Produkční uzly obvykle potřebují alespoň 16 GB RAM, přičemž halda JVM je nastavena na přibližně 50 procent paměti a udržována pod zhruba 30 GB. Malé testovací nebo samostatné sestavy běží na menším množství. Beats a Logstash potřebují mnohem méně zdrojů než Elasticsearch.

Grok je Logstash Filtrační plugin, který analyzuje nestrukturované řádky protokolu do strukturovaných, pojmenovaných polí pomocí opakovaně použitelných vzorů založených na regulárních výrazech. Je široce používán k extracčasová razítka, IP adresy a stavové kódy z protokolů webového serveru a aplikací před jejich indexováním v Elasticsearch.

Elasticsearch obsahuje vestavěné strojové učení, které modeluje normální chování protokolů a automaticky označuje anomálie. Tyto funkce AIOps seskupují podobné zprávy, detekují neobvyklé objemy a urychlují analýzu hlavních příčin, čímž zkracují průměrnou dobu do řešení. Inženýři by si i tak měli před zahájením akce označené události prohlédnout.

Ano. Nástroje jako například ChatGPT a GitHub Copilot může navrhovat Logstash Vzory grok, Elasticsearch Query DSL a nastavení Kibana z krátkého výzvy. Vždy testujte vygenerované kanály, protože umělá inteligence může odkazovat na zastaralé názvy polí nebo zastaralou syntaxi.

Shrňte tento příspěvek takto: