Powrót do bloga

Jak zainstalować Elastic Stack na Ubuntu 18.04

Jak zainstalować Elastic Stack na Ubuntu 18.04

Elastic Stack (wcześniej znany jako ELK Stack) to potężne rozwiązanie do scentralizowanego logowania. Jest to kolekcja oprogramowania open-source opracowana przez Elastic. Umożliwia administratorom wyszukiwanie, analizowanie i wizualizację logów generowanych z dowolnego źródła w dowolnym formacie. Jest to praktyka znana jako scentralizowane logowanie. Scentralizowane logowanie może być bardzo przydatne podczas próby precyzyjnego zlokalizowania problemów z serwerami i aplikacjami, ponieważ umożliwia przeszukiwanie wszystkich logów z jednego miejsca. Może również pomóc w identyfikacji problemów na wielu serwerach poprzez korelację logów w określonym czasie.

W tym poradniku dowiesz się, jak zainstalować Elastic Stack na Ubuntu 18.04. Najpierw postępuj zgodnie z naszym samouczkiem, aby łatwo zainstalować swój serwer Ubuntu na CloudSigma.

Elastic Stack na Ubuntu

Elastic Stack składa się z następujących komponentów:

  • Elasticsearch: rozproszony silnik wyszukiwania RESTful. Przechowuje wszystkie zebrane dane.
  • Logstash: Element przetwarzający dane w Elastic Stack. Przesyła przychodzące dane do Elasticsearch.
  • Kibana: Interfejs webowy oferujący funkcje wyszukiwania i wizualizacji logów.
  • Beats: Lekki transmiter danych o jednym przeznaczeniu. Może wysyłać dane z wielu maszyn do Logstash lub Elasticsearch.

Będziesz musiał ręcznie zainstalować każdy komponent stosu.

Wymagania wstępne

Przed przystąpieniem do instalacji Elastic Stack, należy spełnić kilka wymagań systemowych:

Pamiętaj, że ilość miejsca na dysku zależy od liczby zbieranych i przechowywanych logów. Ponadto Elastic Stack przetwarza również cenne informacje o serwerze. Aby zapewnić bezpieczeństwo transmisji danych, zdecydowanie zalecamy skonfigurowanie certyfikatu TLS/SSL. Postępuj zgodnie z tym samouczkiem, aby uzyskać bezpłatny certyfikat SSL na swoim serwerze Nginx.

Oprócz zaszyfrowanego serwera konieczne będą również następujące kroki:

  • FQDN (w pełni kwalifikowana nazwa domeny). W tym poradniku będzie to <domain>.
  • Oba rekordy DNS następujących domen wskazują na serwer.
    • Rekord A z <domain> wskazujący na publiczny adres IP serwera.
    • Rekord A z www.<domain> wskazujący na publiczny adres IP serwera.

Instalacja Elastic Stack

  • Konfiguracja repozytorium Elastic

Komponenty Elastic Stack nie są dostępne bezpośrednio z oficjalnego repozytorium Ubuntu. Na szczęście Ubuntu pozwala na zewnętrzne repozytoria do instalacji pakietów. W naszym przypadku dodamy repozytorium pakietów Elastic. Repozytorium to oferuje najnowsze aktualizacje wszystkich pakietów Elastic. Wszystkie pakiety Elastic są podpisane kluczem podpisywania Elasticsearch, aby zapobiec fałszowaniu pakietów. Najpierw dodaj klucz do bazy kluczy Ubuntu:

Następnie dodaj listę źródeł Elastic w katalogu „sources.list.d”. Jest to dedykowany katalog, którego APT używa do wyszukiwania nowych źródeł:

Na koniec zaktualizuj pamięć podręczną APT:

Zgodnie z oficjalną dokumentacją zaleca się instalację każdego z komponentów w kolejności przedstawionej w tym poradniku. Zapewnia to, że komponenty, od których zależy każdy produkt, znajdują się we właściwym miejscu.

  • Instalacja i konfiguracja Elasticsearch

Po skonfigurowaniu repozytorium Elastic, APT jest gotowy do pobrania i zainstalowania wszystkich pakietów Elastic. Uruchom następujące polecenie, aby zainstalować Elasticsearch:

Teraz możesz skonfigurować Elasticsearch. Plik „elasticsearch.yml” zawiera opcje konfiguracyjne dotyczące klastrów, węzłów, ścieżek, sieci, pamięci, bramy i innych. Większość z nich jest wstępnie skonfigurowana w pliku. Następnie otwórz plik konfiguracyjny Elasticsearch za pomocą wybranego edytora tekstu:

Elasticsearch nasłuchuje na porcie 9200 z dowolnego miejsca. Zalecamy ograniczenie dostępu zewnętrznego do Elasticsearch, aby uniemożliwić osobom postronnym odczytywanie danych lub wyłączanie klastrów Elasticsearch za pomocą interfejsu REST API. Aby ograniczyć dostęp do Elasticsearch i zwiększyć jego bezpieczeństwo, odkomentuj poniższą linię i zastąp jej wartość:

network.host: localhost

Jeśli Elasticsearch ma nasłuchiwać na określonym adresie IP, zastąp „localhost” docelowym adresem IP. Jest to minimalne wymaganie konfiguracyjne przed uruchomieniem Elasticsearch. Zapisz i zamknij plik konfiguracyjny. Następnie uruchom usługę Elasticsearch. Uruchomienie Elasticsearch może zająć chwilę:

Następnie musisz upewnić się, że Elasticsearch uruchamia się przy każdym uruchomieniu serwera:

Poniższe polecenie zweryfikuje, czy usługa Elasticsearch działa. Wymaga ono jedynie wysłania żądania HTTP:

sending an HTTP request

Odpowiedź będzie wyglądać mniej więcej tak. Będzie to odpowiedź pokazująca podstawowe informacje o lokalnym węźle.

Instalacja i konfiguracja panelu Kibana

Kibana jest bezpośrednio dostępna z repozytorium Elastic. Pamiętaj, że powinieneś zainstalować Kibanę dopiero po zainstalowaniu Elasticsearch. Zakładając, że repozytorium jest już dostępne, APT może bezpośrednio pobrać i zainstalować Kibanę:

Po zainstalowaniu włącz i uruchom usługę Kibana:

Domyślnie Kibana jest skonfigurowana tak, aby nasłuchiwać tylko na „localhost”. W przypadku dostępu zewnętrznego wymaga ona konfiguracji odwrotnego serwera proxy. W tym przypadku Nginx będzie odwrotnym serwerem proxy. Użyj polecenia openssl do utworzenia administratora Kibany. Będzie to konto użytkownika służące do uzyskiwania dostępu do interfejsu internetowego Kibana. W tym przykładzie nazwą użytkownika będzie „kibana_admin”. Aby zapewnić lepsze bezpieczeństwo, zalecamy użycie niestandardowej nazwy użytkownika. Poniższe polecenie utworzy użytkownika administratora dla Kibany. Nazwa użytkownika i hasło zostaną wygenerowane i zapisane w pliku „htpasswd.users”. Nginx będzie musiał zostać skonfigurowany do korzystania z tej nazwy użytkownika i hasła:

Wprowadź i potwierdź hasło w monicie. To hasło będzie ważne przy uzyskiwaniu dostępu do interfejsu Kibana. Następnie musisz utworzyć plik bloku serwera Nginx. Na potrzeby demonstracji będzie to example.com. Może to być również dowolna inna opisowa nazwa. Jeśli dla serwera skonfigurowano rekordy FQDN i DNS, nazwa pliku może również odpowiadać FQDN:

Jeśli istnieje już jakaś zawartość, usuń ją i zastąp poniższymi liniami kodu:

Zapisz i zamknij plik. Utwórz dowiązanie symboliczne nowej konfiguracji w katalogu „sites-enabled”. Jeśli istnieje już powiązanie o tej samej nazwie pliku, ten krok może nie być konieczny:

Poniższe polecenie skłoni serwer Nginx do sprawdzenia, czy nie ma błędów składniowych:

Jeśli wystąpią jakiekolwiek problemy ze składnią, upewnij się, że zawartość pliku została poprawnie umieszczona. Następnie zrestartuj usługę Nginx:

Zezwól w UFW na połączenia z Nginx:

Kibana powinna być teraz dostępna za pośrednictwem FQDN lub publicznego adresu IP serwera Elastic Stack. Sprawdź stronę statusu serwera Kibana:

status page

Instalacja i konfiguracja Logstash

Podczas gdy Beats może bezpośrednio wysyłać dane do bazy danych Elasticsearch’a, zaleca się używanie Logstash do przetwarzania danych. Logstash może zbierać dane i konwertować je do wspólnego formatu przed wyeksportowaniem do innej bazy danych. Uruchom następujące polecenie APT, aby zainstalować Logstash:

Po zakończeniu instalacji nadszedł czas na konfigurację Logstash. Pliki konfiguracyjne Logstash są w formacie JSON. Wszystkie z nich można znaleźć w katalogu „/etc/logstash/conf.d”. Pomocne jest myślenie o Logstash jako o potoku, który pobiera dane z jednego końca, przetwarza je i wysyła do miejsca docelowego. Potok Logstash wymaga dwóch obowiązkowych elementów – input oraz output z jednym opcjonalnym elementem – filter. Wtyczka input pobiera dane, wtyczka filter przetwarza dane, a wtyczka output zapisuje dane w miejscu docelowym. Poniższe polecenie utworzy plik konfiguracyjny, który skonfiguruje Logstash dla wejścia Filebeat:

Wprowadź następującą konfigurację input. Opisuje ona wejście beats, które będzie nasłuchiwać na porcie 5044 TCP:

Kolejnym krokiem jest utworzenie pliku konfiguracyjnego o nazwie „10-syslog-filter.conf”. Użyjemy go do ustawienia filtra dla syslogów (logów systemowych):

Wprowadź następujący kod konfiguracji syslog. Ten kod jest dostępny bezpośrednio w podręczniku Elastic. Ten kod wyjaśnia konfigurację input dla Logstash:

Kolejny plik konfiguracyjny będzie dotyczył wyjścia. Otwórz nowy plik o nazwie „30-elasticsearch-output.conf”:

Wprowadź następujący kod. Ten kod objaśnia konfigurację wyjściową dla Logstash:

Przetestuj konfigurację Logstash. Następnie uruchom następujące polecenie:

Jeśli nie ma błędu, Logstash wyświetli następujący komunikat o powodzeniu. Jeśli operacja się nie powiodła, upewnij się, że wszystkie pliki konfiguracyjne zawierają prawidłowy kod. Na koniec uruchom i włącz usługę Logstash:

Teraz, gdy Logstash działa pomyślnie i jest w pełni skonfigurowany, zainstalujmy Filebeat.

Instalacja i konfiguracja Filebeat

Elastic Stack używa programów do przesyłania danych, znanych jako „Beats”, do zbierania danych z różnych źródeł i transportowania ich do Logstash/Elasticsearch. Oto krótka lista dostępnych Beats od Elastic:

  • Filebeat: Zbieranie/przesyłanie plików dziennika.
  • Metricbeat: Zbieranie/przesyłanie metryk z systemów i usług.
  • Packetbeat: Zbieranie/analizowanie danych sieciowych.
  • Winlogbeat: Zbieranie dzienników zdarzeń systemu Windows.
  • Auditbeat: Zbieranie danych ze środowiska audytu systemu Linux i monitorowanie integralności plików.
  • Heartbeat: Monitorowanie dostępności usług.

Na potrzeby tego samouczka będziemy potrzebować Filebeat do przesyłania lokalnych logów do Elastic Stack. Najpierw zainstaluj Filebeat:

Możesz teraz skonfigurować Filebeat. Najpierw musi on połączyć się z Logstash. Użyjemy przykładowej konfiguracji dostarczonej z Filebeat. Otwórz plik konfiguracyjny w edytorze tekstu. Pamiętaj, że ponieważ plik jest w formacie YAML, ważne jest odpowiednie wcięcie:

Znajdź sekcję „output.elasticsearch” i zakomentuj poniższe linie. Skonfiguruje to Filebeat do bezpośredniego wysyłania zdarzeń do Elasticsearch/Logstash w celu dodatkowego przetwarzania. Następnie przejdź do sekcji „output.logstash”. Następnie odkomentuj linie:

output.logstash

Filebeat obsługuje moduły, które mogą rozszerzyć jego funkcjonalność. W tym samouczku użyjemy modułu system, który zbiera i analizuje logi generowane przez usługę logowania systemowego popularnych dystrybucji Linuksa. Włącz moduł system w Filebeat:

Poniższe polecenie Filebeat wyświetli listę wszystkich włączonych i wyłączonych modułów:

Domyślnie Filebeat jest skonfigurowany tak, aby śledzić domyślne ścieżki dla logów syslog i autoryzacji. Parametry modułów są dostępne w pliku konfiguracyjnym „/etc/filebeat/modules.d/system.yml”.

Kolejnym krokiem jest załadowanie szablonu indeksu do Elasticsearch. Indeks Elasticsearch oznacza kolekcję dokumentów o podobnych cechach. Każdy indeks ma swoją nazwę. Nazwa jest niezbędna podczas wykonywania różnych operacji w jego obrębie. Szablon indeksu jest automatycznie stosowany za każdym razem, gdy generowany jest nowy indeks. Następnie załaduj szablon:

Filebeat domyślnie zawiera przykładowy pulpit nawigacyjny (dashboard) dla Kibana. Pomaga on wizualizować dane Filebeat w Kibana. Jednak przed użyciem pulpitu nawigacyjnego konieczne jest utworzenie wzorca indeksu i załadowanie pulpitów do Kibana. Podczas ładowania pulpitów Filebeat kontaktuje się z Elasticsearch w celu uzyskania informacji o wersji. Aby załadować pulpity nawigacyjne, gdy Logstash jest włączony, wymagane jest wyłączenie wyjścia Logstash i włączenie wyjścia Elasticsearch. Poniższe polecenie wykona to zadanie:

Na koniec możesz uruchomić Filebeat:

Teraz nadszedł czas na przetestowanie konfiguracji Elastic Stack. Jeśli została ona poprawnie skonfigurowana, wynik będzie wyglądał mniej więcej tak:

Elastic Stack configuration

Jeśli wynik wskazuje 0 trafień (total hits), oznacza to, że Elasticsearch nie ładuje żadnych logów w indeksie, którego szukaliśmy. Wskazuje to na błąd w konfiguracji. Jeśli wynik był zgodny z oczekiwaniami, oznacza to, że Elastic Stack został pomyślnie skonfigurowany.

Przegląd pulpitów nawigacyjnych Kibana

Teraz nadszedł czas na zapoznanie się z zainstalowanym już interfejsem webowym Kibana. Najpierw otwórz pulpit nawigacyjny Kibana. Powinien on znajdować się pod adresem FQDN lub publicznym adresem IP serwera Elastic Stack:

Wprowadź wygenerowane wcześniej dane logowania. Po zalogowaniu pulpit nawigacyjny będzie wyglądał następująco:

Elastic stack home

Z lewego paska nawigacyjnego wybierz „Discover”. Następnie wybierz wzorzec „filebeat-*”. Pokazuje on wszystkie logi zebrane w ciągu ostatnich 15 minut. Możliwe jest przeszukiwanie i przeglądanie logów oraz dostosowywanie pulpitu nawigacyjnego:

customize the dashboard

Z lewego paska nawigacyjnego przejdź do Dashboard >> Filebeat System. Tutaj dostępne są wszystkie przykładowe pulpity nawigacyjne z modułu systemowego Filebeat.

W poniższym przykładzie szczegółowo przedstawiono różne statystyki oparte na komunikatach syslog:

Elastic Stack dashboard

Może również raportować, którzy użytkownicy wykonali polecenia za pomocą sudo:

executed commands

Na koniec Kibana daje możliwość zapoznania się z wieloma innymi funkcjonalnościami, takimi jak tworzenie wykresów i filtrowanie, więc zachęcamy do samodzielnego odkrywania.

Podsumowanie

Elastic Stack to potężne rozwiązanie do analizy logów systemowych. Pamiętaj, że chociaż wszelkie logi lub indeksowane dane mogą być wysyłane do Logstash za pomocą Beats, stają się one bardziej użyteczne, gdy zostaną przeanalizowane i ustrukturyzowane za pomocą filtrów Logstash.

Udanego korzystania!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.