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 | 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 | 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 |
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