Przesyłanie strumieniowe dzienników przy użyciu interfejsu API zbierania danych HTTP (starsza wersja) przy użyciu usługi Logstash
Ważne
Pozyskiwanie danych przy użyciu wtyczki danych wyjściowych usługi Logstash jest obecnie dostępne w publicznej wersji zapoznawczej. Ta funkcja jest udostępniana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Uwaga
Nowsza wersja wtyczki Logstash może przekazywać dzienniki z zewnętrznych źródeł danych do niestandardowych i standardowych tabel przy użyciu interfejsu API opartego na protokole DCR. Nowa wtyczka umożliwia pełną kontrolę nad schematem wyjściowym, w tym konfiguracją nazw i typów kolumn.
Korzystając z wtyczki wyjściowej usługi Microsoft Sentinel dla aparatu zbierania danych usługi Logstash, możesz wysłać dowolny typ dziennika bezpośrednio do obszaru roboczego usługi Log Analytics w usłudze Microsoft Sentinel. Dzienniki zostaną wysłane do tabeli niestandardowej zdefiniowanej przy użyciu wtyczki wyjściowej. Ta wersja wtyczki korzysta z interfejsu API zbierania danych HTTP.
Aby dowiedzieć się więcej na temat pracy z aparatem zbierania danych usługi Logstash, zobacz Wprowadzenie do usługi Logstash.
Omówienie
Architektura i tło
Aparat logstash składa się z trzech składników:
- Wtyczki wejściowe: dostosowywanie zbierania danych z różnych źródeł.
- Wtyczki filtru: manipulowanie danymi i normalizacja ich zgodnie z określonymi kryteriami.
- Wtyczki wyjściowe: dostosowane wysyłanie zebranych i przetworzonych danych do różnych miejsc docelowych.
Uwaga
Firma Microsoft obsługuje tylko wtyczkę danych wyjściowych usługi Logstash dostarczoną przez usługę Microsoft Sentinel omówiona tutaj. Bieżąca wersja tej wtyczki to v1.0.0, wydana 2020-08-25. Możesz otworzyć bilet pomocy technicznej dla wszelkich problemów dotyczących wtyczki wyjściowej.
Firma Microsoft nie obsługuje wtyczek wyjściowych usługi Logstash innych firm dla usługi Microsoft Sentinel ani żadnych innych wtyczek lub składników usługi Logstash dowolnego typu.
Wtyczka danych wyjściowych usługi Logstash firmy Microsoft Sentinel obsługuje tylko usługę Logstash w wersji 7.0 do 7.17.10 oraz wersje 8.0 do 8.9 i 8.11. Jeśli używasz usługi Logstash 8, zalecamy wyłączenie usługi ECS w potoku.
Wtyczka danych wyjściowych usługi Microsoft Sentinel dla usługi Logstash wysyła dane w formacie JSON do obszaru roboczego usługi Log Analytics przy użyciu interfejsu API REST modułu zbierającego dane HTTP usługi Log Analytics. Dane są pozyskiwane do dzienników niestandardowych.
- Dowiedz się więcej o interfejsie API REST usługi Log Analytics.
- Dowiedz się więcej o dziennikach niestandardowych.
Wdrażanie wtyczki wyjściowej usługi Microsoft Sentinel w usłudze Logstash
Krok 1. Instalacja
Wtyczka danych wyjściowych usługi Microsoft Sentinel jest dostępna w kolekcji Logstash.
Postępuj zgodnie z instrukcjami w dokumencie Logstash Working with plugins (Praca z wtyczkami usługi Logstash), aby zainstalować wtyczkę microsoft-logstash-output-azure-loganalytics.
Jeśli system usługi Logstash nie ma dostępu do Internetu, postępuj zgodnie z instrukcjami w dokumencie Logstash Offline Plugin Management (Zarządzanie wtyczkami offline usługi Logstash), aby przygotować i użyć pakietu wtyczek offline. (Będzie to wymagało utworzenia innego systemu usługi Logstash z dostępem do Internetu).
Krok 2. Konfiguracja
Skorzystaj z informacji w dokumencie Logstash Structure of a config file (Struktura usługi Logstash pliku konfiguracji) i dodaj wtyczkę danych wyjściowych usługi Microsoft Sentinel do konfiguracji z następującymi kluczami i wartościami. (Prawidłowa składnia pliku konfiguracji jest wyświetlana po tabeli).
Nazwa pola | Typ danych | opis |
---|---|---|
workspace_id |
string | Wprowadź identyfikator GUID identyfikatora obszaru roboczego (zobacz Porada). |
workspace_key |
string | Wprowadź identyfikator GUID klucza podstawowego obszaru roboczego (zobacz Porada). |
custom_log_table_name |
string | Ustaw nazwę tabeli, do której dzienniki zostaną pozyskane. Można skonfigurować tylko jedną nazwę tabeli na wtyczkę wyjściową. Tabela dzienników zostanie wyświetlona w usłudze Microsoft Sentinel w obszarze Dzienniki w obszarze Tabele w kategorii Dzienniki niestandardowe z sufiksem_CL . |
endpoint |
string | Pole opcjonalne. Domyślnie jest to punkt końcowy usługi Log Analytics. Użyj tego pola, aby ustawić alternatywny punkt końcowy. |
time_generated_field |
string | Pole opcjonalne. Ta właściwość zastępuje domyślne pole TimeGenerated w usłudze Log Analytics. Wprowadź nazwę pola znacznika czasu w źródle danych. Dane w polu muszą być zgodne z formatem ISO 8601 (YYYY-MM-DDThh:mm:ssZ ) |
key_names |
tablica | Wprowadź listę pól schematu wyjściowego usługi Log Analytics. Każdy element listy powinien być ujęta w pojedynczy cudzysłów i elementy oddzielone przecinkami, a cała lista ujęta w nawiasy kwadratowe. Zobacz poniższe przykłady. |
plugin_flush_interval |
Liczba | Pole opcjonalne. Ustaw wartość , aby zdefiniować maksymalny interwał (w sekundach) między transmisjami komunikatów do usługi Log Analytics. Ustawieniem domyślnym jest 5. |
amount_resizing |
boolean | True lub false. Włącz lub wyłącz mechanizm automatycznego skalowania, który dostosowuje rozmiar buforu komunikatów zgodnie z ilością odebranych danych dziennika. |
max_items |
Liczba | Pole opcjonalne. Dotyczy tylko wtedy, gdy amount_resizing ustawiono wartość "false". Służy do ustawiania limitu rozmiaru buforu komunikatów (w rekordach). Wartość domyślna to 2000. |
azure_resource_id |
string | Pole opcjonalne. Definiuje identyfikator zasobu platformy Azure, w którym znajdują się dane. Wartość identyfikatora zasobu jest szczególnie przydatna, jeśli używasz kontroli dostępu opartej na rolach kontekstu zasobów w celu zapewnienia dostępu tylko do określonych danych. |
Napiwek
- Identyfikator obszaru roboczego i klucz podstawowy można znaleźć w zasobie obszaru roboczego w obszarze Zarządzanie agentami.
- Jednak ponieważ posiadanie poświadczeń i innych poufnych informacji przechowywanych w postaci zwykłego tekstu w plikach konfiguracji nie jest zgodne z najlepszymi rozwiązaniami w zakresie zabezpieczeń, zdecydowanie zachęcamy do korzystania z magazynu kluczy usługi Logstash w celu bezpiecznego uwzględnienia identyfikatora obszaru roboczego i klucza podstawowego obszaru roboczego w konfiguracji. Aby uzyskać instrukcje, zobacz dokumentację usługi Elastic.
Przykładowe konfiguracje
Poniżej przedstawiono kilka przykładowych konfiguracji, które korzystają z kilku różnych opcji.
Podstawowa konfiguracja korzystająca z potoku wejściowego pliku:
input { beats { port => "5044" } } filter { } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<your workspace id>" workspace_key => "<your workspace key>" custom_log_table_name => "tableName" } }
Podstawowa konfiguracja korzystająca z potoku wejściowego tcp:
input { tcp { port => "514" type => syslog #optional, will effect log type in table } } filter { } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<your workspace id>" workspace_key => "<your workspace key>" custom_log_table_name => "tableName" } }
Zaawansowana konfiguracja:
input { tcp { port => 514 type => syslog } } filter { grok { match => { "message" => "<%{NUMBER:PRI}>1 (?<TIME_TAG>[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}T[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})[^ ]* (?<HOSTNAME>[^ ]*) %{GREEDYDATA:MSG}" } } } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<WS_ID>" workspace_key => "${WS_KEY}" custom_log_table_name => "logstashCustomTable" key_names => ['PRI','TIME_TAG','HOSTNAME','MSG'] plugin_flush_interval => 5 } }
Bardziej zaawansowana konfiguracja do analizowania niestandardowego znacznika czasu i ciągu JSON z danych tekstowych bez struktury i rejestrowania wybranego zestawu pól w usłudze Log Analytics przy użyciu wyodrębnionego znacznika czasu:
# Example log line below: # Mon Nov 07 20:45:08 2022: { "name":"_custom_time_generated", "origin":"test_microsoft", "sender":"test@microsoft.com", "messages":1337} # take an input input { file { path => "/var/log/test.log" } } filter { # extract the header timestamp and the Json section grok { match => { "message" => ["^(?<timestamp>.{24}):\s(?<json_data>.*)$"] } } # parse the extracted header as a timestamp date { id => 'parse_metric_timestamp' match => [ 'timestamp', 'EEE MMM dd HH:mm:ss yyyy' ] timezone => 'Europe/Rome' target => 'custom_time_generated' } json { source => "json_data" } } # output to a file for debugging (optional) output { file { path => "/tmp/test.txt" codec => line { format => "custom format: %{message} %{custom_time_generated} %{json_data}"} } } # output to the console output for debugging (optional) output { stdout { codec => rubydebug } } # log into Log Analytics output { microsoft-logstash-output-azure-loganalytics { workspace_id => '[REDACTED]' workspace_key => '[REDACTED]' custom_log_table_name => 'RSyslogMetrics' time_generated_field => 'custom_time_generated' key_names => ['custom_time_generated','name','origin','sender','messages'] } }
Uwaga
Odwiedź repozytorium GitHub wtyczki wyjściowej, aby dowiedzieć się więcej na temat jej wewnętrznych funkcji, konfiguracji i ustawień wydajności.
Krok 3. Ponowne uruchamianie usługi Logstash
Krok 4. Wyświetlanie dzienników przychodzących w usłudze Microsoft Sentinel
Sprawdź, czy komunikaty są wysyłane do wtyczki wyjściowej.
W menu nawigacji usługi Microsoft Sentinel kliknij pozycję Dzienniki. W obszarze nagłówka Tabele rozwiń kategorię Dzienniki niestandardowe. Znajdź i kliknij nazwę tabeli określonej (z sufiksem
_CL
) w konfiguracji.Aby wyświetlić rekordy w tabeli, wykonaj zapytanie względem tabeli przy użyciu nazwy tabeli jako schematu.
Monitorowanie dzienników inspekcji wtyczki danych wyjściowych
Aby monitorować łączność i aktywność wtyczki wyjściowej usługi Microsoft Sentinel, włącz odpowiedni plik dziennika logstash. Zobacz dokument Logstash Directory Layout (Układ katalogu usługi Logstash) dla lokalizacji pliku dziennika.
Jeśli nie widzisz żadnych danych w tym pliku dziennika, wygeneruj i wyślij niektóre zdarzenia lokalnie (za pośrednictwem wtyczek wejściowych i filtrów), aby upewnić się, że wtyczka wyjściowa odbiera dane. Usługa Microsoft Sentinel będzie obsługiwać tylko problemy związane z wtyczką wyjściową.
Następne kroki
W tym dokumencie przedstawiono sposób używania usługi Logstash do łączenia zewnętrznych źródeł danych z usługą Microsoft Sentinel. Aby dowiedzieć się więcej o usłudze Microsoft Sentinel, zobacz następujące artykuły:
- Dowiedz się, jak uzyskać wgląd w dane i potencjalne zagrożenia.
- Rozpocznij wykrywanie zagrożeń za pomocą usługi Microsoft Sentinel.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla