Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważna
Pozyskiwanie danych za pomocą wtyczki wyjściowej Logstash z użyciem reguł gromadzenia danych (DCR) jest obecnie dostępne w publicznej wersji zapoznawczej. Ta funkcja jest udostępniana bez umowy dotyczącej poziomu usług. Aby uzyskać więcej informacji, zobacz Dodatkowe warunki użytkowania dla wersji zapoznawczych Azure firmy Microsoft.
Wtyczka wyjściowa Logstash dla usługi Microsoft Sentinel obsługuje transformacje potoku i zaawansowaną konfigurację za pomocą reguł zbierania danych (DCR). Wtyczka przekazuje logi z zewnętrznych źródeł danych do niestandardowych lub standardowych tabel w usłudze Log Analytics lub Microsoft Sentinel.
W tym artykule dowiesz się, jak skonfigurować wtyczkę Logstash do przesyłania strumieniowego danych do usługi Log Analytics lub Microsoft Sentinel za pomocą reguł zbierania danych (DCR), z pełną kontrolą nad schematem wyjściowym.
Za pomocą wtyczki możesz:
- Kontroluj konfigurację nazw i typów kolumn.
- Wykonaj przekształcenia podczas pozyskiwania danych, takie jak filtrowanie lub wzbogacanie.
- Pozyskiwanie dzienników niestandardowych do tabeli niestandardowej lub pozyskiwanie strumienia danych wejściowych dziennika systemu Syslog do tabeli dziennika Syslog usługi Log Analytics.
Importowanie do tabel standardowych jest ograniczone wyłącznie do tabel standardowych obsługiwanych na potrzeby pozyskiwania dzienników niestandardowych.
Aby dowiedzieć się więcej o pracy z mechanizmem zbierania danych Logstash, zobacz Wprowadzenie do pracy z Logstash.
Omówienie architektury
Silnik Logstash składa się z trzech komponentów:
- Wtyczki wejściowe: dostosowane zbieranie danych z różnych źródeł.
- Filtruj wtyczki: Manipulowanie i normalizacja danych zgodnie z określonymi kryteriami.
- Wtyczki wyjściowe: dostosowane wysyłanie zebranych i przetworzonych danych do różnych miejsc docelowych.
Uwaga
- Firma Microsoft zapewnia pomoc techniczną tylko dla wtyczki wyjściowej dla programu Logstash udostępnianej przez usługę Microsoft Sentinel, omówionej tutaj. Obecna wtyczka to microsoft-sentinel-log-analytics-logstash-output-plugin, v2.5.0. Możesz utworzyć zgłoszenie do pomocy technicznej w przypadku problemów z wtyczką wyjściową.
- Microsoft nie obsługuje zewnętrznych wtyczek wyjściowych Logstash dla Microsoft Sentinel ani żadnej innej wtyczki czy komponentu Logstash.
- Zobacz wymagania wstępne do wtyczek Logstash dla obsługiwanych wersji Logstash.
Wtyczka wysyła dane w formacie JSON do obszaru roboczego usługi Log Analytics przy użyciu interfejsu API pozyskiwania logów. Dane są importowane do niestandardowych dzienników lub do tabeli standardowej.
- Dowiedz się więcej o interfejsie API do pozyskiwania logów.
Wdrażanie wtyczki danych wyjściowych Microsoft Sentinel w usłudze Logstash
Aby skonfigurować wtyczkę, wykonaj następujące kroki:
- Przejrzyj wymagania wstępne dotyczące wtyczek Logstash
- Instalowanie wtyczki
- Tworzenie przykładowego pliku
- Utwórz wymagane zasoby powiązane z DCR
- Konfigurowanie pliku konfiguracji usługi Logstash
- Uruchom ponownie usługę Logstash
- Wyświetl dzienniki przychodzące w Microsoft Sentinel
- Monitorowanie dzienników inspekcji wtyczki wyjściowej
Wymagania wstępne wtyczki usługi Logstash
Zainstaluj obsługiwaną wersję usługi Logstash. Wtyczka obsługuje następujące wersje usługi Logstash:
7.0 - 7.17.13
8.0 - 8.9 (te wersje wymagają aktualizacji bezpieczeństwa, według Logstash)
8.11 - 8.15 (te wersje wymagają aktualizacji bezpieczeństwa, według Logstash)
8.19.2 (ta wersja wymaga aktualizacji bezpieczeństwa, według Logstash)
9.0.8 (ta wersja wymaga aktualizacji bezpieczeństwa, według Logstash)
9.1.10 (ta wersja wymaga aktualizacji bezpieczeństwa, według Logstash)
9.2.4 - 9.2.5 (te wersje wymagają aktualizacji bezpieczeństwa, według Logstash)
9.3.3
9.4.0
Uwaga
Jeśli używasz Logstash 8, zalecamy, aby wyłączyć ECS w pipeline’ie.
Sprawdź, czy masz obszar roboczy usługi Log Analytics z co najmniej prawami współautora.
Sprawdź, czy masz uprawnienia do tworzenia obiektów DCR w obszarze roboczym.
Instalowanie wtyczki
Wtyczka danych wyjściowych Microsoft Sentinel jest dostępna w kolekcji Logstash w serwisie RubyGems.
Postępuj zgodnie z instrukcjami w dokumencie Logstash Working with plugins (Praca z wtyczkami ) w celu zainstalowania wtyczki microsoft-sentinel-log-analytics-logstash-output-plugin . Aby zainstalować w istniejącej instalacji Logstash, uruchom następujące polecenie:
logstash-plugin install microsoft-sentinel-log-analytics-logstash-output-pluginJeśli system Logstash nie ma dostępu do Internetu, postępuj zgodnie z instrukcjami zawartymi w dokumencie Zarządzanie wtyczkami w trybie offline usługi Logstash, aby przygotować pakiet wtyczek offline i użyć go. (Wymaga to utworzenia innego systemu Logstash z dostępem do Internetu).
Tworzenie przykładowego pliku
W tej sekcji utworzysz przykładowy plik w jednym z następujących scenariuszy:
- Tworzenie przykładowego pliku dla dzienników niestandardowych
- Utwórz przykładowy plik do importowania dzienników do tabeli Syslog
Tworzenie przykładowego pliku dla dzienników niestandardowych
W tym scenariuszu skonfigurujesz wtyczkę wejściową Logstash tak, aby wysyłała zdarzenia do Microsoft Sentinel. W tym przykładzie do symulowania zdarzeń jest używana wtyczka wejściowa generatora. Możesz użyć dowolnej innej wtyczki wejściowej.
W tym przykładzie plik konfiguracji usługi Logstash wygląda następująco:
input {
generator {
lines => [
"This is a test log message"
]
count => 10
}
}
Aby utworzyć przykładowy plik, wykonaj następujące kroki:
Skopiuj poniższą konfigurację wtyczki wyjściowej do pliku konfiguracji usługi Logstash.
output { microsoft-sentinel-log-analytics-logstash-output-plugin { create_sample_file => true sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. } }Upewnij się, że ścieżka pliku, do którego odwołuje się odwołanie, już istnieje, a następnie uruchom usługę Logstash.
Wtyczka zapisuje dziesięć rekordów w przykładowym pliku o nazwie
sampleFile<epoch seconds>.jsonw skonfigurowanej ścieżce po wystąpieniu 10 zdarzeń do próbkowania lub pomyślnym zakończeniu procesu logstash. Na przykład: c:\temp\sampleFile1648453501.json. Oto część przykładowego pliku, który tworzy wtyczka:[ { "host": "logstashMachine", "sequence": 0, "message": "This is a test log message", "ls_timestamp": "2022-03-28T17:45:01.690Z", "ls_version": "1" }, { "host": "logstashMachine", "sequence": 1 ... ]Wtyczka automatycznie dodaje te właściwości do każdego rekordu:
-
ls_timestamp: czas odebrania rekordu z wtyczki wejściowej -
ls_version: wersja potoku Logstash.
Te pola można usunąć podczas tworzenia funkcji DCR.
-
Utwórz przykładowy plik do importowania dzienników do tabeli Syslog
W tym scenariuszu skonfigurujesz wtyczkę wejściową Logstash tak, aby wysyłała zdarzenia dziennika systemowego do Microsoft Sentinel.
Jeśli nie masz jeszcze komunikatów dziennika systemu przekazywanych do maszyny Logstash, możesz użyć polecenia rejestratora do generowania komunikatów. Na przykład (dla Linux):
logger -p local4.warn --rfc3164 --tcp -t CEF "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example" -P 514 -d -n 127.0.0.1Oto przykład wtyczki wejściowej Logstash:
input { syslog { port => 514 } }Skopiuj poniższą konfigurację wtyczki wyjściowej do pliku konfiguracji usługi Logstash.
output { microsoft-sentinel-log-analytics-logstash-output-plugin { create_sample_file => true sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. } }Upewnij się, że ścieżka pliku już istnieje, a następnie uruchom usługę Logstash.
Wtyczka zapisuje dziesięć rekordów w przykładowym pliku o nazwie
sampleFile<epoch seconds>.jsonw skonfigurowanej ścieżce po wystąpieniu 10 zdarzeń do próbkowania lub pomyślnym zakończeniu procesu logstash. Na przykład: c:\temp\sampleFile1648453501.json. Oto część przykładowego pliku, który tworzy wtyczka:[ { "logsource": "logstashMachine", "facility": 20, "severity_label": "Warning", "severity": 4, "timestamp": "Apr 7 08:26:04", "program": "CEF:", "host": "127.0.0.1", "facility_label": "local4", "priority": 164, "message": "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example", "ls_timestamp": "2022-04-07T08:26:04.000Z", "ls_version": "1" } ]Wtyczka automatycznie dodaje te właściwości do każdego rekordu:
-
ls_timestamp: czas odebrania rekordu z wtyczki wejściowej -
ls_version: wersja potoku Logstash.
Te pola można usunąć podczas tworzenia funkcji DCR.
-
Tworzenie wymaganych zasobów DCR
Aby skonfigurować wtyczkę Logstash usługi Microsoft Sentinel opartą na mechanizmie DCR, najpierw utwórz zasoby powiązane z DCR.
W tej sekcji utworzysz zasoby do użycia na potrzeby dcr w jednym z następujących scenariuszy:
- Tworzenie zasobów DCR do pozyskiwania danych do tabeli niestandardowej
- Utwórz zasoby DCR na potrzeby pozyskiwania danych do standardowej tabeli
Tworzenie zasobów DCR do pozyskiwania danych do tabeli niestandardowej
Aby zaimportować dane do tabeli niestandardowej, wykonaj następujące kroki (na podstawie samouczka Wysyłanie danych do dzienników usługi Azure Monitor przy użyciu interfejsu API REST (portal Azure)):
Zapoznaj się z wymaganiami wstępnymi.
Przeanalizuj i przefiltruj przykładowe dane przy użyciu przykładowego pliku utworzonego w poprzedniej sekcji.
Przypisz uprawnienia do funkcji DCR.
Pomiń krok Wyślij przykładowe dane.
Jeśli napotkasz jakieś problemy, sprawdź kroki rozwiązywania problemów API Logs Ingestion.
Utwórz zasoby DCR na potrzeby pozyskiwania danych do standardowej tabeli
Aby pozyskać dane do standardowej tabeli, takiej jak Syslog lub CommonSecurityLog, należy użyć procesu opartego na samouczku „Wysyłanie danych do dzienników usługi Azure Monitor przy użyciu interfejsu API REST (szablony usługi Resource Manager)”. W samouczku opisano, jak importować dane do tabeli niestandardowej, ale można łatwo dostosować ten proces do importowania danych do tabeli standardowej. Poniższe kroki wskazują istotne zmiany w krokach.
Zapoznaj się z wymaganiami wstępnymi.
-
Pomiń krok Tworzenie nowej tabeli w obszarze roboczym usługi Log Analytics. Ten krok nie ma znaczenia podczas pozyskiwania danych do standardowej tabeli, ponieważ tabela jest już zdefiniowana w usłudze Log Analytics.
Utwórz dcr. W tym kroku:
- Podaj przykładowy plik, który stworzyłeś w Stwórz plik próbny.
- Użyj utworzonego przykładowego pliku, aby zdefiniować właściwość
streamDeclarations. Każde z pól w przykładowym pliku powinno mieć odpowiednią kolumnę o tej samej nazwie i odpowiednim typie (zobacz poniższy przykład). - Skonfiguruj wartość właściwości
outputStreamna nazwę tabeli standardowej zamiast tabeli niestandardowej. W przeciwieństwie do tabel niestandardowych nazwy tabel standardowych nie mają sufiksu_CL. - Prefiks nazwy tabeli powinien być
Microsoft-zamiastCustom-. W tym przykładzie wartość właściwościoutputStreamtoMicrosoft-Syslog.
Przypisywanie uprawnień do DCR.
Pomiń krok Wyślij przykładowe dane.
Jeśli napotkasz jakieś problemy, sprawdź kroki rozwiązywania problemów API Logs Ingestion.
Przykład: DCR pozyskujący dane do tabeli Syslog
Należy pamiętać o następujących kwestiach:
- Nazwy
streamDeclarationsi typy kolumn powinny być takie same jak przykładowe pola plików, ale nie trzeba ich wszystkich określać. Na przykład w poniższym dokumencie DCR polaPRI,typeils_versionsą pominięte w kolumniestreamDeclarations. - Właściwość
dataflowsprzekształca dane wejściowe do formatu tabeli Syslog i ustawia wartośćoutputStreamnaMicrosoft-Syslog.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dataCollectionRuleName": {
"type": "String",
"metadata": {
"description": "Specifies the name of the Data Collection Rule to create."
}
},
"location": {
"defaultValue": "[resourceGroup().location]",
"type": "String",
"metadata": {
"description": "Specifies the location in which to create the Data Collection Rule."
}
},
"workspaceResourceId": {
"type": "String",
"metadata": {
"description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
}
}
},
"resources": [
{
"type": "Microsoft.Insights/dataCollectionRules",
"apiVersion": "2021-09-01-preview",
"name": "[parameters('dataCollectionRuleName')]",
"location": "[parameters('location')]",
"properties": {
"streamDeclarations": {
"Custom-SyslogStream": {
"columns": [
{ "name": "ls_timestamp", "type": "datetime" },
{ "name": "timestamp", "type": "datetime" },
{ "name": "message", "type": "string" },
{ "name": "facility_label", "type": "string" },
{ "name": "severity_label", "type": "string" },
{ "name": "host", "type": "string" },
{ "name": "logsource", "type": "string" }
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "[parameters('workspaceResourceId')]",
"name": "clv2ws1"
}
]
},
"dataFlows": [
{
"streams": ["Custom-SyslogStream"],
"destinations": ["clv2ws1"],
"transformKql": "source | project TimeGenerated = ls_timestamp, EventTime = todatetime(timestamp), Computer = logsource, HostName = logsource, HostIP = host, SyslogMessage = message, Facility = facility_label, SeverityLevel = severity_label",
"outputStream": "Microsoft-Syslog"
}
]
}
}
],
"outputs": {
"dataCollectionRuleId": {
"type": "String",
"value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
}
}
}
Konfigurowanie pliku konfiguracji usługi Logstash
Wtyczka obsługuje dwie metody uwierzytelniania: nazwę główną usługi (poświadczenia klienta) i tożsamość zarządzaną (bez hasła). Wybierz metodę odpowiadającą środowisku.
Uwierzytelnianie za pomocą service principal
Aby skonfigurować plik konfiguracyjny Logstash do pobierania logów do niestandardowej tabeli z użyciem uwierzytelniania przez podmiot usługi, pobierz następujące wartości: client_id, client_secret, tenant_id, data_collection_endpoint, dcr_id, oraz stream_name.
| Pole | Jak pobrać |
|---|---|
client_id |
Wartość Application (client) ID utworzona w kroku 3 podczas tworzenia zasobów DCR, według tutoriala portalu Azure lub szablonów Resource Manager. |
client_secret |
Wartość sekretu klienta, którą tworzysz w kroku 5 podczas tworzenia zasobów DCR, zgodnie z tutorialem portalu Azure lub szablonami Resource Manager. |
tenant_id |
Identyfikator dzierżawy Twojej subskrypcji. Identyfikator dzierżawy można znaleźć w sekcji Home > Microsoft Entra ID > Przegląd > Podstawowe informacje. |
data_collection_endpoint |
Wartość URI logsIngestion w kroku 3 przy tworzeniu zasobów DCR, według tutoriala portalu Azure lub szablonów Resource Manager. |
dcr_id |
Wartość elementu DCR immutableId w kroku 6 podczas tworzenia zasobów DCR, zgodnie z samouczkiem portalu Azure lub samouczkiem dotyczącym szablonów usługi Resource Manager. |
stream_name |
W przypadku tabel niestandardowych, jak wyjaśniono w kroku 6 podczas tworzenia zasobów DCR, przejdź do widoku JSON dcr i skopiuj właściwość dataFlows>streams . Zobacz stream_name w przykładzie konfiguracji wtyczki wyjściowej jednostki usługi. W przypadku tabel standardowych wartość to Custom-SyslogStream. |
Po pobraniu wymaganych wartości:
- Zastąp sekcję danych wyjściowych pliku konfiguracji usługi Logstash utworzonego w poprzednim kroku poniższym przykładem.
- Zastąp ciągi zastępcze w poniższym przykładzie pobranymi wartościami.
- Upewnij się, że atrybut został zmieniony na
create_sample_filefalse.
Przykład: Konfiguracja wtyczki wyjściowej jednostki usługi
output {
microsoft-sentinel-log-analytics-logstash-output-plugin {
client_id => "<enter your client_id value here>"
client_secret => "<enter your client_secret value here>"
tenant_id => "<enter your tenant id here>"
data_collection_endpoint => "<enter your logsIngestion URI here>"
dcr_id => "<enter your DCR immutableId here>"
stream_name => "<enter your stream name here>"
create_sample_file=> false
sample_file_path => "c:\\temp"
}
}
Uwierzytelnianie tożsamości zarządzanej (bez hasła)
Gdy nie podasz danych uwierzytelniających jednostki usługi (client_id, client_secret i tenant_id), wtyczka uwierzytelnia się przy użyciu DefaultAzureCredential z zestawu Azure SDK.
DefaultAzureCredential próbuje sekwencji metod uwierzytelniania i używa pierwszej, która się udaje. W środowisku serwerowym odpowiednie metody są stosowane w następującej kolejności:
-
Zmienne środowiskowe: Odczytuje poświadczenia uwierzytelniające ze zmiennych środowiskowych, takich jak
AZURE_CLIENT_ID,AZURE_TENANT_ID, orazAZURE_CLIENT_SECRETdo uwierzytelniania jako podmiot usługi. -
Tożsamość obciążenia: Jeśli wtyczka działa na hostie Azure z włączoną tożsamością obciążenia (np. AKS z ustawioną
AZURE_FEDERATED_TOKEN_FILEzmienną środowiskową), wtyczka wykonuje wymianę tokenów OIDC. - Tożsamość zarządzana: Jeśli host ma włączoną tożsamość zarządzaną, wtyczka uwierzytelnia się za pomocą tej tożsamości. Ta metoda obejmuje maszyny wirtualne Azure, Virtual Machine Scale Sets oraz serwery obsługujące Azure Arc.
Pełną sekwencję poświadczeń, których próbuje użyć DefaultAzureCredential, można znaleźć w artykule Łańcuchy poświadczeń w bibliotece Azure Identity dla języka Java.
Wymagana konfiguracja tożsamości zarządzanej:
| Pole | Opis |
|---|---|
data_collection_endpoint |
Ciąg. Adres URI logsIngestion dla Twojego DCE. |
dcr_id |
Ciąg. Identyfikator niezmienny DCR. |
stream_name |
Ciąg. Nazwa strumienia danych. |
Przykład: Zarządzana tożsamość
output {
microsoft-sentinel-log-analytics-logstash-output-plugin {
data_collection_endpoint => "<enter your DCE logsIngestion URI here>"
dcr_id => "<enter your DCR immutableId here>"
stream_name => "<enter your stream name here>"
}
}
Uwaga
- Podczas korzystania z usługi Azure Arc proces Logstash musi być uruchomiony jako użytkownik należący do grupy
himds, aby odczytać token wyzwania. Aby uzyskać więcej informacji, zobacz dokumentację tożsamości zarządzanej usługi Azure Arc. - Ze względów bezpieczeństwa nie należy niejawnie określać poufnych wartości konfiguracji, takich jak
client_secretw pliku konfiguracji usługi Logstash. Przechowuj informacje poufne w magazynie kluczy usługi Logstash. - Ustawienie pustego ciągu znaków jako wartości ustawienia serwera proxy spowoduje usunięcie ogólnosystemowego ustawienia serwera proxy.
Konfiguracja opcjonalna
| Key | Default | Opis |
|---|---|---|
azure_cloud |
AzurePublicCloud |
Środowisko chmurowe Azure. |
proxy |
(brak) | Opcjonalne. Bazowy adres URL serwera proxy HTTP stosowany dla całego ruchu wtyczek. Format: [http://][user:password@]host:port. Gdy nie jest ustawiony, nie używa się proxy, a zachowanie pozostaje niezmienione. |
proxy_aad |
(wartość proxy) |
Opcjonalne. Adres URL serwera proxy HTTP używany wyłącznie na potrzeby uwierzytelniania w usłudze Microsoft Entra ID i ruchu związanego z tokenami. Wraca do sytuacji proxy , gdy nie jest ustawiona. |
proxy_endpoint |
(wartość proxy) |
Opcjonalne. Adres URL serwera proxy HTTP używany wyłącznie na potrzeby ruchu do punktu końcowego gromadzenia danych. Wraca do sytuacji proxy , gdy nie jest ustawiona. |
keys_to_keep |
(wszyscy) | Tablica nazw pól do wysłania (filtrowanie podzbiorów). |
max_retries_num |
3 |
Maksymalizuj próby powtórek przy nieudanych wysłaniach. |
initial_wait_time_seconds |
1 |
Początkowe opóźnienie między ponownymi próbami. |
connect_timeout_seconds |
15 |
Limit czasu na nawiązanie połączenia z punktem końcowym pozyskiwania danych. Granice długości blokowania przesyłania w fazie połączenia; Następujący timeout jest powtarzany. |
write_timeout_seconds |
60 |
Limit czasu podczas wysyłania ciała żądania do punktu końcowego przyjmowania danych. Ogranicza czas, przez jaki wysyłanie może blokować się w fazie zapisu; wynikające z tego przekroczenie limitu czasu powoduje ponowienie próby. |
max_graceful_shutdown_time_seconds |
60 |
Max, czekaj na łagodne wyłączenie. |
max_waiting_time_for_batch_seconds |
10 |
Max poczekaj, zanim przepłukasz partię. |
max_waiting_for_unifier_time_seconds |
10 |
Max poczekaj, zanim wypłukasz unfikator. |
max_batch_size |
10000 |
Maksymalna liczba zdarzeń na partię. Gdy partia danych osiągnie ten rozmiar, jest natychmiast opróżniana, niezależnie od okna czasowego. |
input_queue_capacity |
50000 |
Maksymalna pojemność kolejki wejściowej. Ogranicza zużycie pamięci przy przyjmowaniu dużych ilości danych. Gdy bufor jest pełny, na potok Logstash wywierana jest presja zwrotna. |
internal_queue_capacity |
500 |
Maksymalna pojemność wewnętrznych kolejek między modułem grupowania, modułem ujednolicania i procesem nadawczym. Ogranicza zużycie pamięci dla partii w locie. |
worker_sleep_time_millis |
10 |
Opóźnienie między iteracjami procesu roboczego. |
batcher_workers_count |
(automatycznie) | Liczba nitek batcherowych. |
sender_workers_count |
(automatycznie) | Liczba wątków nadawcy. |
unifier_workers_count |
(automatycznie) | Liczba wątków unifikatora. |
id |
Żadne | Niestandardowy znacznik identyfikacyjny dodawany do logów wysłanych partii. |
Uruchom ponownie usługę Logstash
Uruchom ponownie usługę Logstash ze zaktualizowaną konfiguracją wtyczki wyjściowej. Sprawdź, czy dane są importowane do właściwej tabeli zgodnie z konfiguracją DCR.
Wyświetl dzienniki przychodzące w Microsoft Sentinel
Aby sprawdzić, czy dane dziennika docierają do obszaru roboczego, wykonaj następujące kroki:
Sprawdź, czy komunikaty są wysyłane do wtyczki wyjściowej.
Z menu nawigacji Microsoft Sentinel wybierz pozycję Dzienniki. Pod nagłówkiem Tabele rozwiń kategorię Dzienniki niestandardowe. Znajdź i wybierz nazwę określonej tabeli (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 wyjściowej
Aby monitorować łączność i działanie wtyczki wyjściowej Microsoft Sentinel, włącz odpowiedni plik dziennika usługi Logstash. Zobacz dokument Układ katalogu 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 filtrujących, aby upewnić się, że wtyczka wyjściowa odbiera dane. Microsoft Sentinel obsługuje tylko problemy związane z wtyczką wyjściową.
Zabezpieczenia sieci
Zdefiniuj ustawienia sieci i włącz izolację sieci dla wtyczki wyjściowej Microsoft Sentinel Logstash.
Tagi usług sieci wirtualnej
wtyczka wyjściowa Microsoft Sentinel obsługuje tagi usługi sieci wirtualnej Azure. Wymagane są tagi AzureMonitor i AzureActiveDirectory .
Tagów usług usługi Azure Virtual Network można używać do definiowania kontroli dostępu sieciowego w grupach zabezpieczeń sieciowych, Azure Firewall i trasach definiowanych przez użytkownika. Używaj tagów usługi zamiast określonych adresów IP podczas tworzenia reguł zabezpieczeń i tras. W przypadku scenariuszy, w których nie można używać tagów usługi Azure Virtual Network, poniżej podano wymagania dotyczące zapory.
Wymagania dotyczące zapory
W poniższej tabeli wymieniono wymagania dotyczące zapory w scenariuszach, w których nie można używać tagów usługi sieci wirtualnej Azure.
| Chmura | Punkt końcowy | Cel | Port | Kierunek | Pomijanie inspekcji HTTPS |
|---|---|---|---|---|---|
| Komercyjna usługa Azure | https://login.microsoftonline.com |
Serwer autoryzacji (Platforma tożsamości Microsoft) | Port 443 | Wychodzący | Tak |
| Komercyjna usługa Azure | https://<data collection endpoint name>.<Azure cloud region>.ingest.monitor.azure.com |
Punkt końcowy zbierania danych | Port 443 | Wychodzący | Tak |
| Azure Government | https://login.microsoftonline.us |
Serwer autoryzacji (Platforma tożsamości Microsoft) | Port 443 | Wychodzący | Tak |
| Azure Government | Zastąp powyżej „.com” przez „.us” | Punkt końcowy zbierania danych | Port 443 | Wychodzący | Tak |
Historia wersji wtyczki
2.5.0
- Dodano opcjonalną konfigurację serwera proxy dla każdej wtyczki na potrzeby ruchu uwierzytelniania i przyjmowania danych przy użyciu
proxy,proxy_aadorazproxy_endpoint. - Zaktualizowano komponenty obsługi Netty, HTTP, HTTP/2 i DNS z wersji 4.1.133.Final do 4.1.136.Final.
- Zaktualizowano Jackson Databind i Jackson Core z wersji 2.18.6 do 2.18.8.
2.4.0
- Wątki robocze działają teraz jako ograniczone przebiegi planowane przez executor: wyjątki, po których można kontynuować działanie, są rejestrowane, a wątek roboczy wznawia działanie w następnym cyklu; krytyczne błędy JVM są rejestrowane i ponownie zgłaszane.
- Naprawiono mechanizm łagodnego zamykania, tak aby partie będące w trakcie przetwarzania były opróżniane (najpierw moduły grupujące, następnie moduły ujednolicające, a na końcu moduły wysyłające), zanim procesy robocze zostaną zatrzymane, w czasie nie dłuższym niż
max_graceful_shutdown_time_seconds. - Dodano konfigurowalne limity czasu przesyłania
connect_timeout_seconds(domyślnie 15) iwrite_timeout_seconds(domyślnie 60); próby połączenia i zapisu są ponawiane po przekroczeniu limitu czasu. - Dodano identyfikator wątku, typ wyjątku, rozmiar partii oraz strumień DCR do logów błędów partii.
2.3.3
- Naprawiono problem utraty zgodności typów numerycznych i logicznych: pola oparte na wewnętrznych typach JRuby w Logstashu (na przykład porty i liczby bajtów) są teraz zachowywane jako natywne liczby i wartości logiczne w formacie JSON zamiast być konwertowane na ciągi znaków, co zapewnia niezawodne pozyskiwanie danych do DCR zawierających kolumny o określonych typach.
2.3.2
- Naprawiono problem z cichym kończeniem działania wątku roboczego spowodowany niewychwyconymi wyjątkami w pętli przetwarzania wątku roboczego.
- Naprawiono błąd NullPointerException w SenderWorker, gdy Azure zwraca wyjątek LogsUploadException z odpowiedzią HTTP o wartości null.
- Dodano mechanizm odpornej obsługi błędów ze śledzeniem liczby kolejnych błędów, co ogranicza trwałe awarie procesów roboczych.
- Dodano opcjonalną wartość konfiguracji
iddla telemetrii. - Dodano strumień DCR do logowania wysyłanych partii.
2.3.0
- Włączono funkcjonalność z Logstash 9.4.
- Zaktualizowano wersje zależności zewnętrznych bibliotek (azure-sdk-bom, logback, slf4j, Netty).
2.2.1
- Dodaje linię logowania na poziomie informacji, gdy partie zostaną pomyślnie wysłane.
2.2.0
- Dodaje możliwość używania nowych lub starych wartości konfiguracyjnych.
2.1.2
- Aktualizacje dokumentacji.
2.1.0
- Naprawiono normalizację zdarzeń.
2.0.0
- Refaktoryzowano wtyczkę z języka Ruby do języka Java.
- Dodano uwierzytelnianie managedIdentity.
- Przeniesiono bazę kodu z usługi GitHub do Azure DevOps.
- Zamknięta baza kodu.
1.2.0
- Dodaje obsługę uwierzytelniania tożsamości zarządzanej dla Azure maszyn wirtualnych/usług VMSS (przypisanych przez system i przypisanych przez użytkownika za pośrednictwem usługi IMDS).
- Dodaje obsługę tożsamości obciążeń usługi AKS przez wymianę tokenów OIDC.
- Dodaje obsługę tożsamości zarządzanej Azure Arc dla serwerów hybrydowych i lokalnych.
- Automatycznie wykrywa metodę uwierzytelniania w czasie wykonywania na podstawie środowiska (zmiennych środowiskowych tożsamości obciążenia roboczego, agenta usługi Arc lub mechanizmu awaryjnego IMDS).
- Migruje klienta HTTP z
exconnarest-client, aby zwiększyć zgodność z ekosystemem wtyczek JRuby i Logstash. - Zmienia nazwę odwołań do Azure Active Directory na Microsoft Entra ID.
1.1.4
-
exconOgranicza wersję biblioteki do wersji niższej niż 1.0.0, aby upewnić się, że port jest zawsze używany podczas korzystania z serwera proxy.
1.1.3
- Zastępuje bibliotekę
rest-client, używaną do łączenia z platformą Azure, bibliotekąexcon.
1.1.1
- Dodaje obsługę chmury Azure US Government oraz usługi Microsoft Azure obsługiwanej przez firmę 21Vianet w Chinach.
1.1.0
- Umożliwia ustawianie różnych wartości serwera proxy dla połączeń interfejsu API.
- Uaktualnia wersję interfejsu API pozyskiwania dzienników do wersji 2023-01-01.
- Zmienia nazwę wtyczki na microsoft-sentinel-log-analytics-logstash-output-plugin.
1.0.0
- Pierwsze wydanie wtyczki wyjściowej Logstash dla usługi Microsoft Sentinel. Ta wtyczka korzysta z reguł zbierania danych (DCR) oraz interfejsu API Logs Ingestion usługi Azure Monitor.
Znane problemy
Podczas korzystania z Logstash zainstalowanego w obrazie Docker Lite Ubuntu może pojawić się następujące ostrzeżenie:
java.lang.RuntimeException: getprotobyname_r failed
Aby rozwiązać ten błąd, zainstaluj pakiet netbase w pliku Dockerfile:
USER root
RUN apt install netbase -y
Aby uzyskać więcej informacji, zobacz Regresja JNR w usłudze Logstash 7.17.0 (Docker).
Jeśli częstotliwość zdarzeń w Twoim środowisku jest niska, zwiększ wartości max_waiting_time_for_batch_seconds i max_waiting_for_unifier_time_seconds do 60 lub więcej. Ładunek danych pozyskiwania można monitorować za pomocą metryk DCR. Więcej informacji o zmiennych czasu oczekiwania można znaleźć w tabeli Konfiguracja opcjonalna.
Ograniczenia
Importowanie do tabel standardowych jest ograniczone wyłącznie do tabel standardowych obsługiwanych na potrzeby pozyskiwania dzienników niestandardowych.
Kolumny strumienia wejściowego we właściwości
streamDeclarationsmuszą zaczynać się od litery. Jeśli uruchamiasz kolumnę z innymi znakami (na przykład@lub_), operacja zakończy się niepowodzeniem.Pole data/godzina
TimeGeneratedjest wymagane. To pole należy uwzględnić w przekształceniu KQL.W przypadku dodatkowych możliwych problemów zapoznaj się z krokami rozwiązywania problemów API Logs Ingestion.