Załóżmy, że masz 2 bardzo różne typy dzienników, takie jak dzienniki techniczne i biznesowe, i chcesz:
- surowe logi techniczne są kierowane do serwera graylog2 za pomocą
gelf
wyjścia, - Dzienniki biznesowe json są przechowywane w klastrze Flexiblesearch przy użyciu dedykowanych
elasticsearch_http
danych wyjściowych.
Wiem, że Syslog-NG
na przykład plik konfiguracyjny pozwala zdefiniować kilka różnych danych wejściowych, które następnie mogą być przetwarzane oddzielnie przed wysłaniem; co Logstash
wydaje się niemożliwe. Nawet jeśli jedną instancję można zainicjować za pomocą dwóch określonych plików konfiguracyjnych, wszystkie dzienniki mają ten sam kanał i są przetwarzane w ten sam sposób ...
Czy powinienem uruchamiać tyle instancji, ile mam różnych typów dzienników?
Odpowiedzi:
Nie! Możesz uruchomić tylko jedną instancję do obsługi różnych typów dzienników.
W pliku konfiguracyjnym logstash możesz określić każde wejście innym typem . Następnie w filtrze możesz użyć if, aby odróżnić różne przetwarzanie, a także na wyjściu możesz użyć wyjścia "if" do innego miejsca docelowego.
Mam nadzieję, że to ci pomoże :)
źródło
type
atrybutu (z tą samątype => "value"
składnią) w definicjach filtru i danych wyjściowych, co powinno nieco zmniejszyć dodatkowe formatowanie w pliku konfiguracyjnym. Przykład: gist.github.com/fairchild/3030472 Zgodnie z dokumentacją: Dodaj pole „typ” do wszystkich zdarzeń obsługiwanych przez to wejście. Typy są używane głównie do aktywacji filtrów. Typ jest przechowywany jako część samego zdarzenia, więc możesz również użyć typu, aby wyszukać go w interfejsie internetowym.type => "value"
w danych wyjściowych, pojawił się następujący komunikat: „Używasz przestarzałego ustawienia konfiguracji„ typ ”ustawionego w stdout. Przestarzałe ustawienia będą nadal działać, ale są zaplanowane do usunięcia z logstash w przyszłości. Możesz to osiągnąć to samo zachowanie z nowymi warunkami, takimi jak:.if [type] == "sometype" { stdout { ... } }
" Cofam swój poprzedni komentarz. :)type
atrybut nie będzie miał zastosowania, jeśli w danych wejściowych istnieje już pole typu. Jest to specjalny atrybut, który nie zastępuje i jest udokumentowany. Otworzyłem bilet w Elastic i zalecili mi użycietags
lubadd_field
zamiasttype
Użyłem tagów do wprowadzania wielu plików:
źródło
Myślę, że logstash nie może odczytać więcej niż 2 plików w sekcji Input. spróbuj poniżej
źródło