Samouczek dotyczący stosu ELK: Kibana, Logstash & Elasticsearch
⚡ Inteligentne podsumowanie
ELK Stack łączy trzy narzędzia typu open source — Elasticsearch, Logstashi Kibana — do zbierania, przechowywania, wyszukiwania i wizualizacji danych maszynowych, zapewniając zespołom inżynierskim scentralizowane rejestrowanie i analizę w czasie rzeczywistym w celu szybszego rozwiązywania problemów na serwerach i w aplikacjach.

ELK Stack to jedno z najpopularniejszych rozwiązań open source do scentralizowanego rejestrowania i analizy logów. Ten samouczek dotyczący ELK Stack wyjaśnia, czym jest Elasticsearch. Logstashi Kibana, w jaki sposób te trzy narzędzia się ze sobą łączą i gdzie platforma jest wykorzystywana w rzeczywistych pracach monitorujących i obserwowalnych.
Co to jest stos ELK?
Stos ELK to zbiór trzech produktów typu open source — Elasticsearch, Logstashi Kibana. Zapewnia scentralizowane rejestrowanie, które pomaga identyfikować problemy z serwerami lub aplikacjami, umożliwiając przeszukiwanie wszystkich logów w jednym miejscu. Pomaga również korelować logi z wielu serwerów w określonym przedziale czasowym.
- E oznacza Elasticsearch: służy do przechowywania logów.
- L oznacza Logstash:używany do statkówping, przetwarzanie i przechowywanie dzienników.
- K oznacza Kibanę: a narzędzie do wizualizacji (interfejs sieciowy) hostowany za pośrednictwem Nginx lub Apache.
Elasticsearch, Logstashi Kibana są opracowywane, zarządzane i utrzymywane przez firmę o nazwie Elastyczna.
Rozwiązanie ELK Stack pozwala użytkownikom pobierać dane z dowolnego źródła i w dowolnym formacie, a następnie wyszukiwać, analizować i wizualizować te dane w czasie rzeczywistym.
Stos ELK Architektura
Teraz, gdy wiesz już, czym jest stos, w tej sekcji wyjaśnimy architekturę ELK i sposób przepływu danych między komponentami.
Proces ELK przebiega według jasnej sekwencji, w której każde narzędzie ma przypisane zadanie:
- Kłody: Zidentyfikowano logi serwera wymagające analizy.
- Logstash: Gromadzi dzienniki i dane zdarzeń, a następnie je analizuje i przekształca.
- Wyszukiwanie elastyczne: Dane przekształcone przez Logstash jest przechowywany, przeszukiwany i indeksowany.
- Kibana: Wykorzystuje bazę danych Elasticsearch do eksploracji, wizualizacji i udostępniania spostrzeżeń.
Jednak czwarty komponent o nazwie Beats jest często dodawany do gromadzenia danych. Beats to lekkie moduły dystrybucyjne instalowane na serwerach, a ich dodanie skłoniło Elastic do zmiany nazwy ELK na Elastic Stack.
Gdy przetwarzasz bardzo duże ilości danych, możesz dodać Kafkę lub RabbitMQ przed potokiem w celu buforowania i zwiększenia odporności.
Aby zapewnić jeszcze większe bezpieczeństwo, przed stosem można umieścić odwrotny serwer proxy, np. Nginx.
Biorąc pod uwagę architekturę, w kolejnych sekcjach przyjrzymy się bliżej każdemu produktowi typu open source w pakiecie.
Co to jest Elasticsearch?
Elasticsearch to Baza danych NoSQL Oparty na wyszukiwarce Lucene i zbudowany z interfejsów API RESTful. Oferuje proste wdrożenie, wysoką niezawodność i łatwe zarządzanie, a także przechowuje wszystkie dane centralnie, umożliwiając wykonywanie zaawansowanych zapytań i szybkie wyszukiwanie dokumentów.
Elasticsearch umożliwia również przechowywanie, wyszukiwanie i analizowanie dużych wolumenów danych. Jest najczęściej używany jako silnik bazowy aplikacji o wymagających wymaganiach wyszukiwania.
Ponieważ Elasticsearch, oprócz funkcji szybkiego wyszukiwania, oferuje także analitykę i wiele zaawansowanych funkcji, jest powszechnie stosowany na platformach wyszukiwania w nowoczesnych aplikacjach internetowych i mobilnych.
Funkcje Elasticsearch
Elasticsearch oferuje bogaty zestaw możliwości indeksowania i wyszukiwania danych:
- Serwer wyszukiwania typu open-source napisany w Java.
- Możliwość indeksowania dowolnego typu heterogenicznych danych.
- Udostępnia interfejs internetowy REST API z danymi wyjściowymi w formacie JSON.
- Wyszukiwanie pełnotekstowe.
- Wyszukiwanie w czasie niemal rzeczywistym (NRT).
- Podzielony, replikowany i przeszukiwalny magazyn dokumentów JSON.
- Rozproszony magazyn dokumentów oparty na REST i JSON, wolny od schematów.
- Obsługa wielu języków i geolokalizacji.
Zalety Elasticsearch
- Przechowuje dane bez schematu i może również utworzyć schemat dla Twoich danych.
- Umożliwia manipulowanie rekordami jeden po drugim za pomocą wielodokumentowych interfejsów API.
- Obsługuje filtrowanie i wyszukiwanie danych w celu uzyskania spostrzeżeń.
- Oparty na Apache Lucene i udostępnia interfejs API RESTful.
- Zapewnia poziomą skalowalność, niezawodność i obsługę wielu dzierżawców, umożliwiając indeksowanie w czasie rzeczywistym i szybsze wyszukiwanie.
- Pomaga skalować zarówno w pionie, jak i w poziomie.
Poniższa tabela wyjaśnia kluczowe terminy, z którymi spotkasz się podczas pracy z Elasticsearch:
| Semestr | Stosowanie |
|---|---|
| Cluster | Klaster to zbiór węzłów, które razem przechowują dane i zapewniają łączone możliwości indeksowania i wyszukiwania. |
| Node | Węzeł to pojedyncza instancja Elasticsearch. Jest tworzony podczas uruchamiania instancji Elasticsearch. |
| wskaźnik | Indeks to zbiór dokumentów o podobnych cechach, takich jak dane klientów czy katalog produktów. Jest on przydatny do indeksowania, wyszukiwania, aktualizacji i usuwania, a w jednym klastrze można zdefiniować wiele indeksów. |
| dokument | Dokument to podstawowa jednostka informacji, którą można indeksować. Jest on wyrażony jako para klucz-wartość w formacie JSON, a każdy dokument jest powiązany z typem i unikalnym identyfikatorem. |
| Czerep | Każdy indeks można podzielić na kilka fragmentów w celu dystrybucji danych. Fragment to atomowa część indeksu, którą można rozproszyć w klastrze w miarę dodawania kolejnych węzłów. |
Czym jest Logstash?
Logstash to narzędzie do zbierania danych w ramach stosu. Gromadzi dane wejściowe i przesyła je do Elasticsearch, gromadząc wszystkie typy danych z różnych źródeł i udostępniając je do dalszego wykorzystania.
Logstash Umożliwia ujednolicenie danych z różnych źródeł i normalizację ich w wybranych lokalizacjach. Pozwala to na oczyszczenie i demokratyzację wszystkich danych w szerokim zakresie zastosowań analitycznych i wizualizacyjnych.
Składa się z trzech elementów:
- Wejście: przekazuje dane dziennika i konwertuje je do formatu nadającego się do odczytu maszynowego.
- Filtry: zestaw warunków, które wykonują określoną akcję na zdarzeniu.
- Wyjście: decydent, który kieruje każdym przetwarzanym zdarzeniem lub rejestrem.
Cechy Logstash
Logstash zawiera kilka funkcji, które zwiększają elastyczność przetwarzania dzienników:
- Wydarzenia przechodzą przez każdą fazę za pomocą kolejek wewnętrznych.
- Umożliwia wprowadzanie różnych danych wejściowych do dzienników.
- Obsługuje filtrowanie i analizowanie logów.
Zalety Logstash
- Centralizuje przetwarzanie danych.
- Analizuje szeroką gamę ustrukturyzowanych i nieustrukturyzowanych danych i zdarzeń.
- Oferuje wtyczki umożliwiające łączenie się z wieloma typami źródeł danych wejściowych i platform.
Co to jest Kibana?
Kibana to narzędzie do wizualizacji danych, które uzupełnia pakiet ELK Stack. Służy do wizualizacji dokumentów Elasticsearch i pomaga programistom uzyskać szybki wgląd w dane za pomocą interaktywnych diagramów, danych geoprzestrzennych i grafów, które ułatwiają zrozumienie złożonych zapytań.
Za pomocą Kibany możesz wyszukiwać, przeglądać i wchodzić w interakcję z danymi przechowywanymi w indeksach Elasticsearch. Pomaga ona również wykonywać zaawansowane operacje. analiza danych i prezentować dane w różnych tabelach, wykresach i mapach.
Kibana obsługuje kilka metod wyszukiwania danych. Poniżej wymieniono najpopularniejsze typy wyszukiwania:
| Typ wyszukiwania | Stosowanie |
|---|---|
| Wyszukiwanie dowolnego tekstu | Służy do wyszukiwania określonego ciągu znaków. |
| Wyszukiwania na poziomie pola | Służy do wyszukiwania ciągu znaków w określonym polu. |
| Stwierdzenia logiczne | Służy do łączenia wyszukiwań w logiczne stwierdzenie. |
| Wyszukiwanie bliskości | Służy do wyszukiwania terminów w obrębie określonego znaku. |
Kibana oferuje również szereg zaawansowanych funkcji do eksploracji indeksowanych danych:
- Potężny panel front-end, który wizualizuje zindeksowane informacje z klastra Elasticsearch.
- Umożliwia przeszukiwanie indeksowanych informacji w czasie rzeczywistym.
- Umożliwia wyszukiwanie, przeglądanie i interakcję z danymi przechowywanymi w Elasticsearch.
- Wykonuje zapytania dotyczące danych i wizualizuje wyniki na wykresach, tabelach i mapach.
- Konfigurowalny panel do dzielenia i analizowania danych Logstash rejestruje się w Elasticsearch.
- Udostępnia dane historyczne w formie wykresów, diagramów i innych.
- Oferuje łatwe w konfiguracji pulpity nawigacyjne działające w czasie rzeczywistym.
Zalety i wady kibany
Jak każde narzędzie, Kibana ma wyraźne mocne strony, które wyjaśniają jej popularność:
- Łatwa wizualizacja danych.
- Pełna integracja z Elasticsearch.
- Działa jako specjalistyczne narzędzie wizualizacyjne.
- Oferuje analizę w czasie rzeczywistym, wykresy, podsumowania i debugowanie.
- Zapewnia intuicyjny i przyjazny użytkownikowi interfejs.
- Pozwala na udostępnianie migawek przeszukanych dzienników.
- Umożliwia zapisywanie i zarządzanie wieloma pulpitami nawigacyjnymi.
Należy jednak pamiętać o kilku ograniczeniach:
- Działa wyłącznie, gdy źródłem danych jest Elasticsearch.
- Tworzenie i dostrajanie skomplikowanych pulpitów nawigacyjnych może wiązać się z długim czasem nauki.
Dlaczego analiza logów?
W przypadku infrastruktur opartych na chmurze wydajność i izolacja są niezwykle istotne.
Wydajność maszyn wirtualnych w chmurze może się różnić w zależności od konkretnych obciążeń, środowisk i liczby aktywnych użytkowników, dlatego niezawodność i awarie węzłów mogą stać się poważnymi problemami.
A platforma zarządzania logami Może monitorować wszystkie te problemy. Może również przetwarzać logi systemu operacyjnego, logi serwerów WWW Nginx i IIS do analizy ruchu, logi aplikacji oraz logi generowane w AWS (Amazon Web Services).
Ostatecznie zarządzanie logami pomaga DevOps Inżynierowie i administratorzy systemów podejmują lepsze decyzje w oparciu o dane. Właśnie dlatego analiza logów za pomocą Elastic Stack lub podobnych narzędzi stała się niezbędna.
ELK kontra Splunk
Często zadawane pytanie brzmi, jak ELK Stack wypada w porównaniu z Splunk, popularna alternatywa komercyjna. Poniższa tabela podsumowuje główne różnice:
| ŁOŚ | Splunk |
|---|---|
| ELK jest narzędziem typu open source. | Splunk jest narzędziem komercyjnym. |
| ELK nie oferuje Solaris przenośność dzięki Kibanie. | oferty Splunk'a Solaris ruchliwość. |
| Szybkość przetwarzania jest ściśle ograniczona. | Oferuje dokładne i szybkie przetwarzanie. |
| ELK to pakiet technologii stworzony z połączenia Elasticsearch, Logstashi Kibana. | Splunk to autorskie narzędzie oferujące rozwiązania lokalne i chmurowe. |
| W ELK wyszukiwanie, analiza i wizualizacja są możliwe dopiero po skonfigurowaniu stosu. | Splunk to kompletny pakiet do zarządzania danymi gotowy do użycia. |
| ELK oferuje ograniczoną, wbudowaną integrację z innymi narzędziami. | Splunk jest przydatny do konfigurowania integracji z innymi narzędziami. |
Studia Przypadków
Wiele znanych firm korzysta ze Stacku ELK do zarządzania rejestrowaniem i analizą danych na dużą skalę. Poniższe przykłady pokazują, jak jest on wykorzystywany w środowisku produkcyjnym.
Netflix
Netflix w dużym stopniu opiera się na platformie ELK Stack do monitorowania i analizowania logów bezpieczeństwa operacji obsługi klienta. Platforma pozwala Netflix indeksować, przechowywać i przeszukiwać dokumenty w ponad piętnastu klastrach składających się z około 800 węzłów.
Profesjonalny serwis społecznościowy LinkedIn wykorzystuje platformę ELK Stack do monitorowania wydajności i bezpieczeństwa. Zespół zintegrował platformę ELK z platformą Kafka, aby obsługiwać obciążenie w czasie rzeczywistym, a operacja obejmuje ponad 100 klastrów w sześciu centrach danych.
Tripwire
Tripwire, światowy dostawca rozwiązań SIEM (Security Information and Event Management), wykorzystuje pakiet ELK Stack do obsługi analizy dzienników pakietów informacyjnych.
Średni
Medium, popularna platforma do publikowania blogów, wykorzystuje stos ELK do debugowania problemów produkcyjnych i wykrywania DynamoDB hotspoty. Dzięki temu stosowi firma może obsługiwać 25 milionów unikalnych czytelników i tysiące nowych postów tygodniowo.
Zalety i wady stosu ELK
Zalety
Rozwiązanie ELK Stack oferuje szereg korzyści, które wyjaśniają jego szerokie zastosowanie:
- Najlepiej działa, gdy logi z różnych aplikacji przedsiębiorstwa zbiegają się w jedną instancję ELK.
- Umożliwia uzyskanie szczegółowych informacji na podstawie pojedynczego zdarzenia i eliminuje konieczność logowania się do setek oddzielnych źródeł danych.
- Szybka instalacja na miejscu.
- Łatwy do wdrożenia i skalowalny zarówno w pionie, jak i w poziomie.
- Elastic oferuje wiele klientów językowych, w tym Ruby, Python, PHP, Perl, .NET, Java, JavaScenariusz.
- Biblioteki są dostępne dla wielu języków programowania i skryptowych.
Wady
Mimo swoich zalet, ELK Stack ma kilka wad, które należy wziąć pod uwagę:
- W miarę przechodzenia do bardziej złożonej konfiguracji zarządzanie różnymi komponentami może być trudne.
- Jest to proces uczenia się, więc spodziewaj się prób i błędów w miarę nabywania doświadczenia.


