pozyskiwanie danych z usługi Logstash do usługi Azure Data Explorer
Ważne
Ten łącznik może być używany w analizie czasu rzeczywistego w usłudze Microsoft Fabric. Skorzystaj z instrukcji w tym artykule z następującymi wyjątkami:
- W razie potrzeby utwórz bazy danych, korzystając z instrukcji w temacie Tworzenie bazy danych KQL.
- W razie potrzeby utwórz tabele, korzystając z instrukcji w temacie Tworzenie pustej tabeli.
- Pobierz identyfikatory URI zapytań lub pozyskiwania, korzystając z instrukcji w temacie Copy URI (Kopiowanie identyfikatora URI).
- Uruchamianie zapytań w zestawie zapytań języka KQL.
Logstash to potok przetwarzania danych po stronie serwera typu open source, który pozyskuje dane z wielu źródeł jednocześnie, przekształca dane, a następnie wysyła dane do Twojej ulubionej „przechowalni”. W tym artykule wyślesz te dane do usługi Azure Data Explorer, która jest szybką i wysoce skalowalną usługą eksploracji danych na potrzeby danych dzienników i telemetrii. Początkowo utworzysz tabelę i mapowanie danych w klastrze testowym, a następnie przekierowujesz usługę Logstash, aby wysłać dane do tabeli i zweryfikować wyniki.
Uwaga
Ten łącznik obsługuje obecnie tylko format danych JSON.
Wymagania wstępne
- Konto Microsoft lub tożsamość użytkownika Microsoft Entra. Subskrypcja platformy Azure nie jest wymagana.
- Baza danych i klaster usługi Azure Data Explorer. Utwórz klaster i bazę danych.
- Logstash w wersji 6+ Instrukcje instalacji.
Utwórz tabelę
Po utworzeniu klastra i bazy danych nadszedł czas na utworzenie tabeli.
Uruchom następujące polecenie w oknie zapytania bazy danych w celu utworzenia tabeli:
.create table logs (timestamp: datetime, message: string)
Uruchom następujące polecenie, aby potwierdzić, że nowa tabela
logs
została utworzona i jest pusta:logs | count
Tworzenie mapowania
Mapowanie jest używane przez usługę Azure Data Explorer do przekształcania danych przychodzących do docelowego schematu tabeli. Następujące polecenie tworzy nowe mapowanie o nazwie basicmsg
, które wyodrębnia właściwości z przychodzącego kodu JSON zgodnie z informacjami w elemencie path
i wysyła je do elementu column
.
Uruchom następujące polecenie w oknie zapytania:
.create table logs ingestion json mapping 'basicmsg' '[{"column":"timestamp","path":"$.@timestamp"},{"column":"message","path":"$.message"}]'
Instalowanie wtyczki danych wyjściowych usługi Logstash
Wtyczka danych wyjściowych usługi Logstash wyjściowych komunikuje się z usługą Azure Data Explorer i wysyła dane do usługi. Aby uzyskać więcej informacji, zobacz Wtyczka usługi Logstash.
W powłoce poleceń przejdź do katalogu głównego usługi Logstash, a następnie uruchom następujące polecenie, aby zainstalować wtyczkę:
bin/logstash-plugin install logstash-output-kusto
Konfigurowanie usługi Logstash w celu wygenerowania przykładowego zestawu danych
Usługa Logstash może wygenerować przykładowe zdarzenia, których można użyć do testowania kompleksowego potoku. Jeśli już używasz usługi Logstash i masz dostęp do własnego strumienia zdarzeń, przejdź do następnej sekcji.
Uwaga
Jeśli używasz własnych danych, zmień obiekty tabeli i mapowanie zdefiniowane w poprzednich krokach.
Edytuj nowy plik tekstowy, który będzie zawierać wymagane ustawienia potoku (przy użyciu vi):
vi test.conf
Wklej następujące ustawienia informujące usługę Logstash o konieczności wygenerowania 1000 zdarzeń testowych:
input { stdin { } generator { message => "Test Message 123" count => 1000 } }
Ta konfiguracja obejmuje również dodatek danych wejściowych stdin
, który umożliwi samodzielne pisanie większej liczby wiadomości (pamiętaj, aby użyć klawisza Enter w celu przesłania ich do potoku).
Konfigurowanie usługi Logstash w celu wysyłania danych do usługi Azure Data Explorer
Wklej następujące ustawienia w pliku konfiguracji użytym w poprzednim kroku. Zastąp wszystkie symbole zastępcze wartościami odpowiednimi dla konfiguracji. Aby uzyskać więcej informacji, zobacz Creating a Microsoft Entra Application (Tworzenie aplikacji entra firmy Microsoft).
output {
kusto {
path => "/tmp/kusto/%{+YYYY-MM-dd-HH-mm-ss}.txt"
ingest_url => "https://ingest-<cluster name>.kusto.windows.net/"
app_id => "<application id>"
app_key => "<application key/secret>"
app_tenant => "<tenant id>"
database => "<database name>"
table => "<target table>" # logs as defined above
json_mapping => "<mapping name>" # basicmsg as defined above
}
}
Nazwa parametru | opis |
---|---|
path | Dodatek usługi Logstash zapisuje zdarzenia w plikach tymczasowych przed ich wysłaniem do usługi Azure Data Explorer. Ten parametr zawiera ścieżkę, w której należy zapisać pliki, oraz wyrażenie czasu na potrzeby rotacji pliku. Pozwolą one na wyzwalanie przekazywania w usłudze Azure Data Explorer. |
ingest_url | Punkt końcowy Kusto na potrzeby komunikacji dotyczącej pozyskiwania. |
app_id, app_key i app_tenant | Poświadczenia wymagane do połączenia z usługą Azure Data Explorer. Pamiętaj, aby używać aplikacji z uprawnieniami do pozyskiwania. |
database | Nazwa bazy danych, w której zostaną umieszczone zdarzenia. |
table | Nazwa docelowej tabeli, w której zostaną umieszczone zdarzenia. |
json_mapping | Mapowanie jest używane do mapowania ciągu JSON przychodzącego zdarzenia w prawidłowym formacie wiersza (definiuje, która właściwość przechodzi w którą kolumnę). |
Uruchamianie usługi Logstash
Teraz możemy uruchomić usługę Logstash i przetestować nasze ustawienia.
W powłoce poleceń przejdź do katalogu głównego usługi Logstash, a następnie uruchom następujące polecenie:
bin/logstash -f test.conf
Na ekranie powinny pojawić się informacje, a następnie 1000 komunikatów wygenerowanych przez naszą przykładową konfigurację. W tym momencie można również wprowadzić ręcznie więcej komunikatów.
Po kilku minutach uruchom następujące zapytanie usługi Data Explorer, aby wyświetlić komunikaty w zdefiniowanej tabeli:
logs | order by timestamp desc
Wybieranie klawiszy Ctrl+C w celu zakończenia działania usługi Logstash
Czyszczenie zasobów
Uruchom następujące polecenie w bazie danych, aby wyczyścić tabelę logs
:
.drop table logs