ELK Stack je zkratka pro spojení tří open-source projektů: Elasticsearch, Logstash a Kibana. Společně tvoří platformu, která umožňuje sbírat logy ze všech systémů, ukládat je na jedno místo a v reálném čase je analyzovat.
V posledních letech byl stack rozšířen o čtvrtou komponentu – Beats, proto se dnes častěji používá oficiální název Elastic Stack.
Proces zpracování dat probíhá jako v potrubí (pipeline):
Lehcí agenti instalovaní přímo na serverech nebo koncových zařízeních. Sbírají data (logy, metriky, síťový provoz) a posílají je dál.
Nástroj pro transformaci dat. Logy z různých zdrojů (nejen z Beats) vyčistí, sjednotí jejich formát a obohatí je (např. o geolokalizaci podle IP adresy). * K parsování nestrukturovaného textu používá filtry jako Grok.
Srdce celého stacku. Jde o distribuovaný vyhledávací a analytický engine postavený na Apache Lucene. Ukládá data ve formátu JSON a umožňuje v nich extrémně rychle vyhledávat.
Webové rozhraní pro Elasticsearch. Umožňuje uživatelům vytvářet grafy, mapy, dashboardy a provádět vizuální analýzu dat bez nutnosti psát složité dotazy.
Typický tok dat vypadá následovně: `Uzel (Beats) –> Transformace (Logstash) –> Indexace (Elasticsearch) –> Dashboard (Kibana)`
V jednodušších architekturách mohou Beats posílat data přímo do Elasticsearch, čímž se vynechá Logstash (pokud není potřeba složitá transformace dat).
| Výhody | Nevýhody |
|---|---|
| Škálovatelnost: Lze snadno rozšířit na stovky serverů. | Náročnost na paměť: Elasticsearch vyžaduje hodně RAM. |
| Open-source: Základní verze je zdarma. | Komplexita: Správa velkých clusterů vyžaduje zkušenosti. |
| Rychlost: Výsledky vyhledávání jsou téměř okamžité. | Indexace: Vyšší režie na disk při ukládání velkého objemu dat. |
Zajímavost: ELK Stack používají giganti jako Netflix, LinkedIn nebo GitHub k monitorování svých miliardových toků událostí každý den.
— Viz také: Grok, JSON, SIEM, Cloud Monitoring