Logstash - wtyczki

Logstash oferuje różne wtyczki dla wszystkich trzech etapów potoku (wejście, filtr i wyjście). Te wtyczki pomagają użytkownikowi przechwytywać dzienniki z różnych źródeł, takich jak serwery internetowe, bazy danych, protokoły sieciowe itp.

Po przechwyceniu Logstash może przeanalizować i przekształcić dane w znaczące informacje zgodnie z wymaganiami użytkownika. Wreszcie Logstash może wysyłać lub przechowywać te znaczące informacje do różnych źródeł docelowych, takich jak Elasticsearch, AWS Cloudwatch itp.

Wtyczki wejściowe

Wtyczki wejściowe w Logstash pomagają użytkownikowi wyodrębniać i odbierać dzienniki z różnych źródeł. Składnia korzystania z wtyczki wejściowej jest następująca -

Input {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Możesz pobrać wtyczkę wejściową za pomocą następującego polecenia -

>Logstash-plugin install Logstash-input-<plugin name>

Narzędzie Logstash-plugin jest obecne w bin folderkatalogu instalacyjnego Logstash. Poniższa tabela zawiera listę wtyczek wejściowych oferowanych przez Logstash.

Sr.No. Nazwa i opis wtyczki
1

beats

Aby uzyskać dane logowania lub zdarzenia z platformy elastycznej beats.

2

cloudwatch

Aby wyodrębnić zdarzenia z CloudWatch, oferty API firmy Amazon Web Services.

3

couchdb_changes

Zdarzenia z identyfikatora URI _chages z couchdb wysłane przy użyciu tej wtyczki.

4

drupal_dblog

Aby wyodrębnić dane logowania strażnika drupala z włączonym DBLog.

5

Elasticsearch

Aby pobrać wyniki zapytań wykonanych w klastrze Elasticsearch.

6

eventlog

Aby pobrać zdarzenia z dziennika zdarzeń systemu Windows.

7

exec

Aby uzyskać dane wyjściowe polecenia powłoki jako dane wejściowe w Logstash.

8

file

Aby pobrać zdarzenia z pliku wejściowego. Jest to przydatne, gdy Logstash jest lokalnie instalowany ze źródłem wejściowym i ma dostęp do dzienników źródła wejściowego.

9

generator

Służy do celów testowych, co tworzy zdarzenia losowe.

10

github

Przechwytuje zdarzenia z webhooka GitHub.

11

graphite

Aby uzyskać dane metryczne z narzędzia do monitorowania grafitu.

12

heartbeat

Jest również używany do testowania i wytwarza zdarzenia przypominające bicie serca

13

http

Do zbierania zdarzeń z dziennika za pośrednictwem dwóch protokołów sieciowych, a są to http i https.

14

http_poller

Służy do dekodowania danych wyjściowych interfejsu API HTTP do zdarzenia.

15

jdbc

Konwertuje transakcje JDBC na zdarzenie w Logstash.

16

jmx

Aby wyodrębnić metryki ze zdalnych aplikacji Java przy użyciu JMX.

17

log4j

Przechwytywanie zdarzeń z obiektu socketAppender w Log4j przez gniazdo TCP.

18

rss

Do danych wyjściowych narzędzi wiersza poleceń jako zdarzenie wejściowe w Logstash.

19

tcp

Przechwytuje zdarzenia przez gniazdo TCP.

20

twitter

Zbieraj wydarzenia z Twittera streaming API.

21

unix

Zbieraj zdarzenia przez gniazdo UNIX.

22

websocket

Przechwytuj zdarzenia za pośrednictwem protokołu WebSocket.

23

xmpp

Odczytuje zdarzenia przez protokoły Jabber / xmpp.

Ustawienia wtyczki

Wszystkie wtyczki mają swoje specyficzne ustawienia, które pomagają określić ważne pola, takie jak Port, Ścieżka itp., We wtyczce. Omówimy ustawienia niektórych wtyczek wejściowych.

Plik

Ta wtyczka wejściowa służy do wyodrębniania zdarzeń bezpośrednio z dziennika lub plików tekstowych obecnych w źródle wejściowym. Działa podobnie do polecenia tail w systemie UNIX i zapisuje ostatni kursor odczytu i odczytuje tylko nowe dodane dane z pliku wejściowego, ale można to zmienić za pomocą ustawienia star_position. Poniżej przedstawiono ustawienia tej wtyczki wejściowej.

Nazwa ustawienia Domyślna wartość Opis
Dodaj pole {} Dołącz nowe pole do zdarzenia wejściowego.
close_older 3600 Pliki, których czas ostatniego odczytu (w sekundach) jest dłuższy niż określony w tej wtyczce, są zamykane.
kodek "Równina" Służy do dekodowania danych przed wejściem do potoku Logstash.
ogranicznik „\ N” Służy do określenia nowego ogranicznika linii.
Discover_interval 15 Jest to odstęp czasu (w sekundach) między wykryciem nowych plików w określonej ścieżce.
enable_metric prawdziwe Służy do włączania lub wyłączania raportowania i zbierania danych dla określonej wtyczki.
wykluczać Służy do określenia nazwy pliku lub wzorców, które powinny być wykluczone z wtyczki wejściowej.
ID Aby określić unikalną tożsamość dla tej instancji wtyczki.
max_open_files Określa maksymalną liczbę plików wejściowych przez Logstash w dowolnym momencie.
ścieżka Określ ścieżkę do plików i może zawierać wzorce dla nazwy pliku.
pozycja startowa "koniec" Możesz zmienić na „początek”, jeśli chcesz; początkowo Logstash powinien rozpocząć odczytywanie plików od początku, a nie tylko nowego zdarzenia dziennika.
start_interval 1 Określa przedział czasu w sekundach, po którym Logstash sprawdza zmodyfikowane pliki.
tagi Aby dodać jakiekolwiek dodatkowe informacje, takie jak Logstash, dodaje „_grokparsefailure” w tagach, gdy jakiekolwiek zdarzenie dziennika nie spełnia określonego filtru grok.
rodzaj Jest to specjalne pole, które można dodać do zdarzenia wejściowego i jest przydatne w filtrach i kibanie.

Elasticsearch

Ta konkretna wtyczka służy do odczytywania wyników zapytań wyszukiwania w klastrze Elasticsearch. Poniżej znajdują się ustawienia używane w tej wtyczce -

Nazwa ustawienia Domyślna wartość Opis
Dodaj pole {} Podobnie jak we wtyczce pliku, służy do dołączania pola w zdarzeniu wejściowym.
ca_file Służy do określenia ścieżki do pliku urzędu certyfikacji SSL.
kodek "Równina" Służy do dekodowania zdarzeń wejściowych z Elasticsearch przed wejściem do potoku Logstash.
docinfo "fałszywy" Możesz zmienić to na true, jeśli chcesz wyodrębnić dodatkowe informacje, takie jak indeks, typ i identyfikator z silnika Elasticsearch.
docinfo_fields [„_index”, „_type”, „_id”] Możesz usunąć dowolne pole, którego nie chcesz w swoim logstashu.
enable_metric prawdziwe Służy do włączania lub wyłączania raportowania i zbierania danych dla tej instancji wtyczki.
zastępy niebieskie Służy do określania adresów wszystkich silników elastycznego wyszukiwania, które będą źródłem wejściowym tego wystąpienia Logstash. Składnia to host: port lub IP: port.
ID Służy do nadania unikalnego numeru identyfikacyjnego tej konkretnej instancji wtyczki wejściowej.
indeks „logstash- *” Służy do określenia nazwy indeksu lub wzorca, który Logstash będzie monitorował przez Logstash pod kątem danych wejściowych.
hasło Do celów uwierzytelniania.
pytanie „{\" sort \ ": [\" _ doc \ "]}" Zapytanie o wykonanie.
ssl fałszywy Włącz lub wyłącz bezpieczną warstwę gniazda.
tagi Aby dodać dodatkowe informacje w zdarzeniach wejściowych.
rodzaj Służy do klasyfikowania formularzy wejściowych, aby można było łatwo przeszukać wszystkie zdarzenia wejściowe na późniejszych etapach.
użytkownik Do celów autentycznych.

Dziennik zdarzeń

Ta wtyczka wejściowa odczytuje dane z win32 API serwerów Windows. Poniżej znajdują się ustawienia tej wtyczki -

Nazwa ustawienia Domyślna wartość Opis
Dodaj pole {} Podobnie jak w przypadku wtyczki pliku, służy do dołączania pola w zdarzeniu wejściowym
kodek "Równina" Służy do dekodowania zdarzeń wejściowych z okien; przed wejściem do potoku Logstash
plik dziennika [„Aplikacja”, „Bezpieczeństwo”, „System”] Zdarzenia wymagane w wejściowym pliku dziennika
interwał 1000 Jest podawany w milisekundach i określa odstęp czasu między dwoma kolejnymi sprawdzeniami nowych dzienników zdarzeń
tagi Aby dodać dodatkowe informacje w zdarzeniach wejściowych
rodzaj Służy do klasyfikowania danych wejściowych z określonych wtyczek do danego typu, dzięki czemu w późniejszych etapach można łatwo przeszukać wszystkie zdarzenia wejściowe

Świergot

Ta wtyczka wejściowa służy do zbierania danych z Twittera z jego Streaming API. W poniższej tabeli opisano ustawienia tej wtyczki.

Nazwa ustawienia Domyślna wartość Opis
Dodaj pole {} Podobnie jak w przypadku wtyczki pliku, służy do dołączania pola w zdarzeniu wejściowym
kodek "Równina" Służy do dekodowania zdarzeń wejściowych z okien; przed wejściem do potoku Logstash
Klucz klienta Zawiera klucz klienta aplikacji Twitter. Aby uzyskać więcej informacji, odwiedźhttps://dev.twitter.com/apps/new
tajemnica_konsumenta Zawiera tajny klucz klienta aplikacji twitter. Aby uzyskać więcej informacji, odwiedźhttps://dev.twitter.com/apps/new
enable_metric prawdziwe Służy do włączania lub wyłączania raportowania i zbierania danych dla tej instancji wtyczki
następuje

Określa identyfikatory użytkowników oddzielone przecinkami, a LogStash sprawdza status tych użytkowników na Twitterze.

Aby uzyskać więcej informacji, odwiedź

https://dev.twitter.com

full_tweet fałszywy Możesz zmienić to na true, jeśli chcesz, aby Logstash odczytywał pełny zwrot obiektu z Twittera API
ID Służy do nadania unikalnego numeru identyfikacyjnego tej konkretnej instancji wtyczki wejściowej
ignore_retweets Fałszywy Możesz zmienić ustawienie true, aby ignorować retweety w wejściowym kanale Twittera
słowa kluczowe To tablica słów kluczowych, które należy śledzić w kanale wejściowym Twittera
język Definiuje język tweetów wymaganych przez LogStash z wejściowego kanału Twittera. To jest tablica identyfikatorów, która definiuje konkretny język na Twitterze
lokalizacje Aby odfiltrować tweety z kanału wejściowego zgodnie z określoną lokalizacją. To jest tablica, która zawiera długość i szerokość geograficzną lokalizacji
oauth_token Jest to pole wymagane, które zawiera token użytkownika oauth. Aby uzyskać więcej informacji, odwiedź poniższy linkhttps://dev.twitter.com/apps
oauth_token_secret Jest to pole wymagane, które zawiera tajny token użytkownika oauth. Aby uzyskać więcej informacji, odwiedź poniższy linkhttps://dev.twitter.com/apps
tagi Aby dodać dodatkowe informacje w zdarzeniach wejściowych
rodzaj Służy do klasyfikowania danych wejściowych z określonych wtyczek do danego typu, dzięki czemu w późniejszych etapach można łatwo przeszukać wszystkie zdarzenia wejściowe

TCP

TCP jest używany do pobierania zdarzeń przez gniazdo TCP; może czytać z połączeń użytkownika lub serwera, który jest określony w ustawieniach trybu. Poniższa tabela opisuje ustawienia tej wtyczki -

Nazwa ustawienia Domyślna wartość Opis
Dodaj pole {} Podobnie jak w przypadku wtyczki pliku, służy do dołączania pola w zdarzeniu wejściowym
kodek "Równina" Służy do dekodowania zdarzeń wejściowych z okien; przed wejściem do potoku Logstash
enable_metric prawdziwe Służy do włączania lub wyłączania raportowania i zbierania danych dla tej instancji wtyczki
gospodarz „0.0.0.0” Adres systemu operacyjnego serwera, od którego zależy klient
ID Zawiera klucz klienta aplikacji Twitter
tryb "serwer" Służy do określenia źródła wejściowego serwera lub klienta.
Port Określa numer portu
ssl_cert Służy do określenia ścieżki certyfikatu SSL
ssl_enable fałszywy Włącz lub wyłącz SSL
ssl_key Aby określić ścieżkę do pliku kluczy SSL
tagi Aby dodać dodatkowe informacje w zdarzeniach wejściowych
rodzaj Służy do klasyfikowania danych wejściowych z określonych wtyczek do danego typu, dzięki czemu w późniejszych etapach można łatwo przeszukać wszystkie zdarzenia wejściowe

Logstash - wtyczki wyjściowe

Logstash obsługuje różne źródła danych wyjściowych i różne technologie, takie jak baza danych, plik, e-mail, standardowe wyjście itp.

Składnia korzystania z wtyczki wyjściowej jest następująca -

output {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Możesz pobrać wtyczkę wyjściową za pomocą następującego polecenia -

>logstash-plugin install logstash-output-<plugin name>

Plik Logstash-plugin utilityznajduje się w folderze bin katalogu instalacyjnego Logstash. W poniższej tabeli opisano wtyczki wyjściowe oferowane przez Logstash.

Sr.No. Nazwa i opis wtyczki
1

CloudWatch

Ta wtyczka służy do wysyłania zagregowanych danych metrycznych do CloudWatch usług internetowych Amazon.

2

csv

Służy do zapisywania zdarzeń wyjściowych w sposób oddzielony przecinkami.

3

Elasticsearch

Służy do przechowywania dzienników wyjściowych w indeksie Elasticsearch.

4

email

Służy do wysyłania wiadomości e-mail z powiadomieniem, gdy dane wyjściowe są generowane. Użytkownik może dodać informacje o wynikach w wiadomości e-mail.

5

exec

Służy do uruchomienia polecenia, które pasuje do zdarzenia wyjściowego.

6

ganglia

Skręca metryki do Gmonda z Gangili.

7

gelf

Służy do tworzenia wyników dla Graylog2 w formacie GELF.

8

google_bigquery

Wysyła zdarzenia do Google BigQuery.

9

google_cloud_storage

Przechowuje zdarzenia wyjściowe w Google Cloud Storage.

10

graphite

Służy do przechowywania zdarzeń wyjściowych w Graphite.

11

graphtastic

Służy do zapisywania metryk wyjściowych w systemie Windows.

12

hipchat

Służy do przechowywania zdarzeń dziennika wyjściowego w HipChat.

13

http

Służy do wysyłania wyjściowych zdarzeń dziennika do punktów końcowych http lub https.

14

influxdb

Służy do przechowywania zdarzenia wyjściowego w InfluxDB.

15

irc

Służy do zapisywania zdarzeń wyjściowych do IRC.

16

mongodb

Przechowuje dane wyjściowe w MongoDB.

17

nagios

Służy do powiadamiania Nagiosa o wynikach kontroli pasywnej.

18

nagios_nsca

Służy do powiadamiania Nagiosa o wynikach kontroli pasywnej za pośrednictwem protokołu NSCA.

19

opentsdb

Przechowuje zdarzenia wyjściowe Logstash w OpenTSDB.

20

pipe

Przesyła strumieniowo zdarzenia wyjściowe do standardowego wejścia innego programu.

21

rackspace

Służy do wysyłania zdarzeń z dziennika wyjściowego do usługi kolejki w Rackspace Cloud.

22

redis

Używa polecenia rpush do wysyłania wyjściowych danych rejestrowania do kolejki Redis.

23

riak

Służy do przechowywania zdarzeń wyjściowych w rozproszonej parze klucz / wartość Riak.

24

s3

Przechowuje wyjściowe dane logowania w usłudze Amazon Simple Storage Service.

25

sns

Służy do wysyłania zdarzeń wyjściowych do usługi Simple Notification Service firmy Amazon.

26

solr_http

Indeksuje i przechowuje wyjściowe dane logowania w Solr.

27

sps

Służy do wysyłania zdarzeń do usługi Simple Queue Service w AWS.

28

statsd

Służy do wysyłania danych metryk do demona sieciowego statsd.

29

stdout

Służy do wyświetlania zdarzeń wyjściowych na standardowym wyjściu CLI, takim jak wiersz polecenia.

30

syslog

Służy do wysyłania zdarzeń wyjściowych do serwera syslog.

31

tcp

Służy do wysyłania zdarzeń wyjściowych do gniazda TCP.

32

udp

Służy do przesyłania zdarzeń wyjściowych przez UDP.

33

websocket

Służy do przekazywania zdarzeń wyjściowych przez protokół WebSocket.

34

xmpp

Służy do przesyłania zdarzeń wyjściowych przez protokół XMPP.

Wszystkie wtyczki mają swoje specyficzne ustawienia, które pomagają określić ważne pola, takie jak Port, Ścieżka itp., We wtyczce. Omówimy ustawienia niektórych wtyczek wyjściowych.

Elasticsearch

Wtyczka wyjściowa Elasticsearch umożliwia Logstash przechowywanie danych wyjściowych w określonych klastrach silnika Elasticsearch. Jest to jeden ze słynnych wyborów użytkowników, ponieważ znajduje się w pakiecie ELK Stack i dlatego zapewnia kompleksowe rozwiązania dla Devops. W poniższej tabeli opisano ustawienia tej wtyczki wyjściowej.

Nazwa ustawienia Domyślna wartość Opis
akcja indeks Służy do definiowania akcji wykonywanej w silniku Elasticsearch. Inne wartości tych ustawień to usuń, utwórz, zaktualizuj itp.
cacert Zawiera ścieżkę do pliku z rozszerzeniem .cer lub .pem do weryfikacji certyfikatu serwera.
kodek "Równina" Służy do kodowania wyjściowych danych rejestrowania przed wysłaniem ich do źródła docelowego.
doc_as_upset fałszywy To ustawienie jest używane w przypadku akcji aktualizacji. Tworzy dokument w silniku Elasticsearch, jeśli identyfikator dokumentu nie jest określony we wtyczce wyjściowej.
typ dokumentu Służy do przechowywania zdarzeń tego samego typu w tym samym typie dokumentu. Jeśli nie zostanie określony, typ zdarzenia jest używany do tego samego.
flush_size 500 Służy do poprawy wydajności przesyłania zbiorczego w Elasticsearch
zastępy niebieskie [„127.0.0.1”] Jest to tablica adresów docelowych dla wyjściowych danych logowania
idle_flush_time 1 Definiuje limit czasu (sekundę) między dwoma rzutami, Logstash wymusza spłukiwanie po określonym limicie czasu w tym ustawieniu
indeks „logstash -% {+ RRRR.MM.dd}” Służy do określenia indeksu silnika Elasticsearch
manage_temlpate prawdziwe Służy do zastosowania domyślnego szablonu w Elasticsearch
rodzic zero Służy do określenia identyfikatora dokumentu nadrzędnego w Elasticsearch
hasło Służy do uwierzytelniania żądania w bezpiecznym klastrze w Elasticsearch
ścieżka Służy do określenia ścieżki HTTP Elasticsearch.
rurociąg zero Służy do ustawiania potoku pozyskiwania, który użytkownik chce wykonać dla zdarzenia
pełnomocnik Służy do określenia serwera proxy HTTP
retry_initial_interval 2 Służy do ustawiania początkowego odstępu czasu (w sekundach) między próbami zbiorczymi. Zwiększa się dwukrotnie po każdej ponownej próbie, aż osiągnie wartość retry_max_interval
retry_max_interval 64 Służy do ustawiania maksymalnego odstępu czasu dla retry_initial_interval
retry_on_conflict 1 Jest to liczba ponownych prób aktualizacji dokumentu przez Elasticsearch
ssl Aby włączyć lub wyłączyć SSL / TLS zabezpieczony przez Elasticsearch
szablon Zawiera ścieżkę do dostosowanego szablonu w Elasticsearch
nazwa_szablonu „logstash” Służy do nazwania szablonu w Elasticsearch
koniec czasu 60 Jest to limit czasu dla żądań sieciowych do Elasticsearch
upert „” Aktualizuje dokument lub jeśli identyfikator_dokumentu nie istnieje, tworzy nowy dokument w Elasticsearch
użytkownik Zawiera użytkownika do uwierzytelnienia żądania Logstash w bezpiecznym klastrze Elasticsearch

E-mail

Wtyczka do wysyłania wiadomości e-mail służy do powiadamiania użytkownika, gdy Logstash generuje dane wyjściowe. W poniższej tabeli opisano ustawienia tej wtyczki.

Nazwa ustawienia Domyślna wartość Opis
adres "Lokalny Gospodarz" Jest to adres serwera pocztowego
załączniki [] Zawiera nazwy i lokalizacje załączonych plików
ciało „” Zawiera treść wiadomości e-mail i powinien być zwykłym tekstem
cc Zawiera adresy e-mail oddzielone przecinkami jako kopię zapasową wiadomości e-mail
kodek "Równina" Służy do kodowania wyjściowych danych rejestrowania przed wysłaniem ich do źródła docelowego.
Typ zawartości "text / html; charset = UTF-8" Służy do typu treści wiadomości e-mail
odpluskwić fałszywy Służy do wykonywania przekazywania poczty w trybie debugowania
domena "Lokalny Gospodarz" Służy do ustawienia domeny do wysyłania wiadomości e-mail
od [email protected] Służy do określenia adresu e-mail nadawcy
htmlbody „” Służy do określenia treści wiadomości e-mail w formacie html
hasło Służy do uwierzytelniania na serwerze poczty
Port 25 Służy do określenia portu do komunikacji z serwerem pocztowym
odpowiedzieć do Służy do określenia identyfikatora adresu e-mail dla pola odpowiedzi na wiadomość e-mail
Przedmiot „” Zawiera temat wiadomości e-mail
use_tls fałszywy Włącz lub wyłącz TSL do komunikacji z serwerem poczty
Nazwa Użytkownika Zawiera nazwę użytkownika do uwierzytelnienia na serwerze
przez „Smtp” Określa metody wysyłania wiadomości e-mail przez Logstash

Http

To ustawienie służy do wysyłania zdarzeń wyjściowych za pośrednictwem protokołu HTTP do miejsca docelowego. Ta wtyczka ma następujące ustawienia -

Nazwa ustawienia Domyślna wartość Opis
automatic_retries 1 Służy do ustawiania liczby ponownych prób żądania HTTP przez logstash
cacert Zawiera ścieżkę do pliku do weryfikacji certyfikatu serwera
kodek "Równina" Służy do kodowania wyjściowych danych rejestrowania przed wysłaniem ich do źródła docelowego.
Typ zawartości I określa typ treści żądania http wysyłanego do serwera docelowego
ciasteczka prawdziwe Służy do włączania lub wyłączania plików cookie
format „json” Służy do ustawiania formatu treści żądania http
nagłówki Zawiera informacje o nagłówku http
http_method „” Służy do określenia metody http używanej w żądaniu przez logstash, a wartościami mogą być "put", "post", "patch", "delete", "get", "head"
Limit czasu żądania 60 Służy do uwierzytelniania na serwerze poczty
url Jest to wymagane ustawienie dla tej wtyczki, aby określić punkt końcowy http lub https

stdout

Wtyczka wyjścia stdout służy do zapisywania zdarzeń wyjściowych na standardowym wyjściu interfejsu wiersza poleceń. Jest to wiersz poleceń w systemie Windows i terminalu w systemie UNIX. Ta wtyczka ma następujące ustawienia -

Nazwa ustawienia Domyślna wartość Opis
kodek "Równina" Służy do kodowania wyjściowych danych rejestrowania przed wysłaniem ich do źródła docelowego.
pracownicy 1 Służy do określenia liczby pracowników dla wyniku

statsd

Jest to demon sieciowy używany do wysyłania danych macierzy przez UDP do usług zaplecza docelowego. Jest to wiersz poleceń w systemie Windows i terminalu w systemie UNIX. Ta wtyczka ma następujące ustawienia -

Nazwa ustawienia Domyślna wartość Opis
kodek "Równina" Służy do kodowania wyjściowych danych rejestrowania przed wysłaniem ich do źródła docelowego.
liczyć {} Służy do definiowania liczby, która ma być używana w metrykach
ubytek [] Służy do określania nazw metryk dekrementacji
gospodarz "Lokalny Gospodarz" Zawiera adres serwera statsd
przyrost [] Służy do określania nazw metryk przyrostu
Port 8125 Zawiera port serwera statsd
próbna stawka 1 Służy do określenia częstotliwości próbkowania metryki
nadawca "%{gospodarz}" Określa nazwę nadawcy
zestaw {} Służy do określenia metryki zestawu
wyczucie czasu {} Służy do określenia metryki czasu
pracownicy 1 Służy do określenia liczby pracowników dla wyniku

Filtruj wtyczki

Logstash obsługuje różne wtyczki filtrów do analizowania i przekształcania dzienników wejściowych w bardziej uporządkowany i łatwy do przeszukiwania format.

Składnia korzystania z wtyczki filtru jest następująca -

filter {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Możesz pobrać wtyczkę filtra, używając następującego polecenia -

>logstash-plugin install logstash-filter-<plugin name>

Narzędzie Logstash-plugin znajduje się w folderze bin katalogu instalacyjnego Logstash. W poniższej tabeli opisano wtyczki wyjściowe oferowane przez Logstash.

Sr.No. Nazwa i opis wtyczki
1

aggregate

Ta wtyczka zbiera lub agreguje dane z różnych wydarzeń tego samego typu i przetwarza je w zdarzeniu końcowym

2

alter

Pozwala użytkownikowi na zmianę pola zdarzeń dziennika, których nie obsługuje filtr mutacji

3

anonymize

Służy do zastępowania wartości pól spójnym hashem

4

cipher

Służy do szyfrowania zdarzeń wyjściowych przed zapisaniem ich w źródle docelowym

5

clone

Służy do tworzenia duplikatów zdarzeń wyjściowych w Logstash

6

collate

Łączy zdarzenia z różnych dzienników według ich czasu lub liczby

7

csv

Ta wtyczka analizuje dane z dzienników wejściowych zgodnie z separatorem

8

date

Analizuje daty z pól w zdarzeniu i ustawia je jako sygnaturę czasową zdarzenia

9

dissect

Ta wtyczka pomaga użytkownikowi wyodrębnić pola z nieustrukturyzowanych danych i ułatwia filtrowi Grok ich poprawną analizę

10

drop

Służy do odrzucania wszystkich zdarzeń tego samego typu lub innego podobieństwa

11

elapsed

Służy do obliczania czasu między zdarzeniami początkowymi i końcowymi

12

Elasticsearch

Służy do kopiowania pól z poprzednich zdarzeń dziennika obecnych w Elasticsearch do bieżącego w Logstash

13

extractnumbers

Służy do wyodrębniania liczby z ciągów znaków w dzienniku zdarzeń

14

geoip

Dodaje do zdarzenia pole, które zawiera szerokość i długość geograficzną lokalizacji adresu IP obecnego w zdarzeniu dziennika

15

grok

Jest to powszechnie używana wtyczka filtrująca do analizowania zdarzenia w celu pobrania pól

16

i18n

Usuwa znaki specjalne ze zdarzenia zapisanego w dzienniku

17

json

Służy do tworzenia ustrukturyzowanego obiektu Json w przypadku lub w określonym polu zdarzenia

18

kv

Ta wtyczka jest przydatna do parowania par klucz-wartość w danych logowania

19

metrics

Służy do agregowania wskaźników, takich jak zliczanie czasu trwania każdego zdarzenia

20

multiline

Jest to również jedna z powszechnie używanych wtyczek filtrujących, która pomaga użytkownikowi w przypadku konwersji wielowierszowych danych logowania na pojedyncze zdarzenie.

21

mutate

Ta wtyczka służy do zmiany nazwy, usuwania, zastępowania i modyfikowania pól w wydarzeniach

22

range

Służyło do porównywania wartości liczbowych pól w zdarzeniach z oczekiwanym zakresem i długością łańcucha w zakresie.

23

ruby

Służy do uruchamiania dowolnego kodu Rubiego

24

sleep

To sprawia, że ​​Logstash śpi przez określony czas

25

split

Służy do dzielenia pola zdarzenia i umieszczania wszystkich podzielonych wartości w klonach tego zdarzenia

26

xml

Służy do tworzenia zdarzeń poprzez parowanie danych XML obecnych w dziennikach

Wtyczki kodeków

Wtyczki kodeków mogą być częścią wtyczek wejściowych lub wyjściowych. Te wtyczki służą do zmiany lub formatowania prezentacji danych logowania. Logstash oferuje wiele wtyczek kodeków, a te są następujące -

Sr.No. Nazwa i opis wtyczki
1

avro

Ta wtyczka koduje serializację zdarzeń Logstash do danych avro lub dekoduje rekordy avro do zdarzeń Logstash

2

cloudfront

Ta wtyczka odczytuje zakodowane dane z AWS Cloudfront

3

cloudtrail

Ta wtyczka służy do odczytu danych z AWS cloudtrail

4

collectd

Odczytuje dane z protokołu binarnego o nazwie zbierane przez UDP

5

compress_spooler

Służy do kompresji zdarzeń dziennika w Logstash do zbuforowanych partii

6

dots

Służy do śledzenia wydajności przez ustawienie kropki dla każdego zdarzenia na standardowe wyjście

7

es_bulk

Służy do konwersji danych zbiorczych z Elasticsearch na zdarzenia Logstash, w tym metadane Elasticsearch

8

graphite

Ten kodek wczytuje dane z grafitu na zdarzenia i zmienia zdarzenie w rekordy sformatowane w postaci grafitu

9

gzip_lines

Ta wtyczka jest używana do obsługi danych zakodowanych w formacie gzip

10

json

Służy do konwertowania pojedynczego elementu w tablicy Json na pojedyncze zdarzenie Logstash

11

json_lines

Służy do obsługi danych Json z ogranicznikiem nowego wiersza

12

line

Wtyczka odczyta i zapisze zdarzenie w pojedynczym czasie na żywo, co oznacza, że ​​po separatorze nowej linii pojawi się nowe zdarzenie

13

multiline

Służy do konwersji wielowierszowych danych logowania na pojedyncze zdarzenie

14

netflow

Ta wtyczka służy do konwersji danych nertflow v5 / v9 na zdarzenia logstash

15

nmap

Analizuje dane wynikowe nmap do formatu XML

16

plain

Odczytuje tekst bez ograniczników

17

rubydebug

Ta wtyczka zapisze wyjściowe zdarzenia Logstash przy użyciu niesamowitej biblioteki drukowania Ruby

Zbuduj własną wtyczkę

Możesz również tworzyć własne wtyczki w Logstash, które odpowiadają Twoim wymaganiom. Narzędzie Logstash-plugin służy do tworzenia niestandardowych wtyczek. Tutaj utworzymy wtyczkę filtrującą, która doda niestandardową wiadomość do wydarzeń.

Wygeneruj strukturę podstawową

Użytkownik może wygenerować potrzebne pliki, korzystając z opcji generowania narzędzia logstash-plugin lub jest ono również dostępne na GitHub.

>logstash-plugin generate --type filter --name myfilter --path c:/tpwork/logstash/lib

Tutaj, typeOpcja służy do określenia wtyczki jako wejścia, wyjścia lub filtru. W tym przykładzie tworzymy wtyczkę filtrującą o nazwiemyfilter. Opcja path służy do określenia ścieżki, w której chcesz utworzyć katalog wtyczki. Po wykonaniu powyższego polecenia zobaczysz, że została utworzona struktura katalogów.

Opracuj wtyczkę

Plik kodu wtyczki można znaleźć w pliku \lib\logstash\filtersfolder w katalogu wtyczek. Rozszerzenie pliku to.rb.

W naszym przypadku plik kodu znajdował się w następującej ścieżce -

C:\tpwork\logstash\lib\logstash-filter-myfilter\lib\logstash\filters\myfilter.rb

Zmieniamy wiadomość na - default ⇒ „Cześć, uczysz się tego na tutorialspoint.com” i zapisujemy plik.

Zainstaluj wtyczkę

Aby zainstalować tę wtyczkę, należy zmodyfikować plik Gemfile of Logstash. Możesz znaleźć ten plik w katalogu instalacyjnym Logstash. W naszym przypadku będzie wC:\tpwork\logstash. Edytuj ten plik za pomocą dowolnego edytora tekstu i dodaj w nim następujący tekst.

gem "logstash-filter-myfilter",:path => "C:/tpwork/logstash/lib/logstash-filter-myfilter"

W powyższym poleceniu podajemy nazwę wtyczki wraz z informacją, gdzie możemy ją znaleźć do instalacji. Następnie uruchom narzędzie Logstash-plugin, aby zainstalować tę wtyczkę.

>logstash-plugin install --no-verify

Testowanie

Tutaj dodajemy myfilter w jednym z poprzednich przykładów -

logstash.conf

Ten plik konfiguracyjny Logstash zawiera myfilter w sekcji filtrów po wtyczce filtrującej grok.

input {
   file {
      path => "C:/tpwork/logstash/bin/log/input1.log"
   } 
}
filter {
   grok {
      match => [
         "message", "%{LOGLEVEL:loglevel} - %{NOTSPACE:taskid} -
            %{NOTSPACE:logger} - %{WORD:label}( - %{INT:duration:int})?" ]
   }
   myfilter{}
}
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output1.log"
      codec => rubydebug
   }
}

Run logstash

Możemy uruchomić Logstash za pomocą następującego polecenia.

>logstash –f logsatsh.conf

input.log

Poniższy blok kodu przedstawia dane dziennika wejściowego.

INFO - 48566 - TRANSACTION_START - start

output.log

Poniższy blok kodu przedstawia dane dziennika wyjściowego.

{
   "path" => "C:/tpwork/logstash/bin/log/input.log",
   "@timestamp" => 2017-01-07T06:25:25.484Z,
   "loglevel" => "INFO",
   "logger" => "TRANSACTION_END",
   "@version" => "1",
   "host" => "Dell-PC",
   "label" => "end",
   "message" => "Hi, You are learning this on tutorialspoint.com",
   "taskid" => "48566",
   "tags" => []
}

Opublikuj go w Logstash

Programista może również opublikować swoją niestandardową wtyczkę w Logstash, przesyłając ją na github i postępując zgodnie ze standardowymi krokami zdefiniowanymi przez firmę Elasticsearch.

Więcej informacji na temat publikowania można znaleźć pod następującym adresem URL -

https://www.elastic.co/guide/en/logstash/current/contributing-to-logstash.html