pozyskiwanie danych z usługi Logstash do usługi Azure Data Explorer

Ważne

Tego łącznika można używać w analizie czasu rzeczywistego w usłudze Microsoft Fabric. Skorzystaj z instrukcji w tym artykule z następującymi wyjątkami:

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 w celu wysłania danych do tabeli i zweryfikowania wyników.

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.
  • Instrukcje instalacji usługi Logstash w wersji 6 lub nowszej.

Tworzenie tabeli

Po utworzeniu klastra i bazy danych nadszedł czas na utworzenie tabeli.

  1. Uruchom następujące polecenie w oknie zapytania bazy danych w celu utworzenia tabeli:

    .create table logs (timestamp: datetime, message: string)
    
  2. 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.

  1. Edytuj nowy plik tekstowy, który będzie zawierać wymagane ustawienia potoku (przy użyciu vi):

    vi test.conf
    
  2. 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 Tworzenie aplikacji Microsoft Entra.

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
Ścieżka 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.
Bazy danych 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.

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

  2. Po kilku minutach uruchom następujące zapytanie usługi Data Explorer, aby wyświetlić komunikaty w zdefiniowanej tabeli:

    logs
    | order by timestamp desc
    
  3. 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