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.

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


