Logstash w Dockerze

Logstash W Dockerze



Logstash to potok przetwarzania danych typu open source, który umożliwia gromadzenie, przetwarzanie i przesyłanie danych dziennika z różnych źródeł.

W tym samouczku przeprowadzimy Cię przez proces uruchamiania Logstash w kontenerze Docker z podstawową konfiguracją.

Wymagania:

Zanim zaczniemy korzystać z samouczka, upewnij się, że posiadasz następujące elementy:







  1. Zainstalowano Docker na komputerze hosta (zalecana jest wersja 23 i nowsza)
  2. Zainstalowano Docker Compose na Twoim komputerze

Po spełnieniu podanych wymagań możemy kontynuować tutorial.



Skonfiguruj plik konfiguracyjny Logstash

Logstash używa plików konfiguracyjnych do definiowania sposobu pozyskiwania, filtrowania i wysyłania danych do danych wyjściowych. Istnieje wiele opcji, które można skonfigurować, zgodnie z oficjalną dokumentacją.



W naszym przykładzie skupiamy się na podstawowej konfiguracji, która pobiera dane z pliku dziennika, filtruje je pod kątem pasujących rekordów i wyprowadza dane do pliku.





Utwórz plik o nazwie „logstash.conf” i dodaj konfigurację w następujący sposób:

wejście {
plik {
ścieżka => „/var/log/apache/access.log”

pozycja_początkowa => 'początek'

oddb_path => „/dev/null”

ignorowanie_starszych => 0
}
}

filtrować {
jeśli [wiadomość] =~ 'BŁĄD' {
grok {
dopasowanie => { 'wiadomość' => „%{COMBINEDAPACHELOG}” }
}
}
}

wyjście {
plik {
ścieżka => „/var/log/apache/error_logs.log”
}
}

Poprzedni plik definiuje konfigurację jak pokazano poniżej:

  1. Sekcja wejściowa – sekcja wejściowa wykorzystuje wtyczkę do wprowadzania plików do odczytu pliku dziennika Apache znajdującego się w /var/log/apache/access.log.
    • Następnie ustawiamy pozycję początkową na początku, co pozwala Logstashowi odczytać cały plik od początku.
    • Withoutdb_path – Ten parametr pozwala nam wyłączyć śledzenie od Logstash'a od ponieważdb, ustawiając wartość na /dev/null. Dzięki temu Logstash zawsze czyta plik od początku.
    • Ignore_older – ustawienie wartości tego parametru na 0 umożliwia Logstashowi przetwarzanie wszystkich wpisów pliku dziennika.
  2. Sekcja filtrów – W sekcji filtrów definiujemy wzorzec filtra sprawdzający, czy komunikat logu zawiera słowo BŁĄD. Możesz dostosować warunki bloków filtrów, aby filtrować dokładniejsze dopasowania w pliku.
    • Jeśli warunek jest spełniony, używamy filtra grok do analizowania wiersza dziennika Apache przy użyciu wzorca COMBINEDAPACHELOG, który jest wzorcem wbudowanym w Logstash do analizowania dzienników Apache.
  3. Sekcja wyjściowa – ta sekcja pozwala nam zdefiniować format wyjściowy dla pasujących wpisów.
    • W naszym przypadku zapisujemy je do pliku /var/log/apache/error_logs.log z wykorzystaniem parametru path.

To powinno zapewnić nam podstawową konfigurację Logstash, która pozwoli nam zademonstrować podstawowe działanie Logstash.

Więcej informacji na temat tworzenia i konfigurowania potoków Logstash można znaleźć w następującym źródle dokumentacji:

https://www.elastic.co/guide/en/logstash/current/configuration.html

Utwórz plik Dockerfile

Po zdefiniowaniu konfiguracji Logstash możemy kontynuować i dowiedzieć się, jak uruchomić kontener. W tym samym katalogu co plik „logstash.conf” utwórz nowy plik o nazwie „Dockerfile”.

Edytuj ten plik i dodaj wpisy w następujący sposób:

Z docker.elastic.co/logstash/logstash:8.9.2

KOPIUJ plik logstash.conf /usr/share/logstash/pipeline/logstash.conf

W podanym przykładzie obraz bazowy definiujemy jako oficjalny obraz Logstash w wersji 8.9.2.

Następnie kopiujemy utworzony przez nas plik „logstash.conf” do pliku /usr/share/logstash/pipeline/logstash.conf znajdującego się na obrazie.

Zbuduj obraz platformy Docker

Następnie przejdź do katalogu zawierającego plik konfiguracyjny Dockerfile i Logstash. Uruchom następujące polecenie, aby zbudować obraz:

$ kompilacja dokera -T niestandardowy obraz-logstash .

Uruchom kontener Logstash

Teraz, gdy zbudowaliśmy obraz Dockera, możemy uruchomić kontener Logstash za pomocą polecenia „run” Dockera w następujący sposób:

$ uruchomienie dokera -D --nazwa serwer logstash niestandardowy obraz logstash

Powinno to uruchomić kontener Logstash przy użyciu obrazu, który zbudowaliśmy w poprzednim kroku.

Sprawdź dzienniki kontenera Logstash

Aby sprawdzić, czy Logstash działa poprawnie, możesz sprawdzić dzienniki kontenerów za pomocą następującego polecenia:

$ dzienniki dokera < nazwa_kontenera >

Wyjście:

Wniosek

W tym samouczku nauczyłeś się, jak szybko skonfigurować serwer Logstash działający jako Docker przy użyciu niestandardowego pliku konfiguracyjnego. Zalecamy sprawdzenie dokumentacji dotyczącej parametrów obrazu i opcji konfiguracyjnych.