Pozyskiwanie danych za pomocą ujścia NLog 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:

NLog to elastyczna i bezpłatna platforma rejestrowania dla różnych platform .NET, w tym .NET Standard. NLog umożliwia zapisywanie w kilku miejscach docelowych, takich jak baza danych, plik lub konsola. Za pomocą polecenia NLog możesz zmienić konfigurację rejestrowania na bieżąco. Ujście NLog jest obiektem docelowym NLog, który umożliwia wysyłanie komunikatów dziennika do klastra usługi Azure Data Explorer. Wtyczka jest oparta na bibliotece Azure-Kusto-Data i zapewnia wydajny sposób ujścia dzienników w klastrze.

Ten artykuł obejmuje następujące zagadnienia:

Aby uzyskać pełną listę łączników danych, zobacz Omówienie łączników danych.

Wymagania wstępne

Konfigurowanie środowiska

W tej sekcji przygotujesz środowisko do korzystania z łącznika NLog.

Instalowanie pakietu

Dodaj pakiet NuGet NLog.Azure.Kusto . Użyj polecenia Install-Package określającego nazwę pakietu NuGet.

Install-Package NLog.Azure.Kusto

Tworzenie rejestracji aplikacji Microsoft Entra

Microsoft Entra uwierzytelnianie aplikacji jest używane w przypadku aplikacji, które muszą uzyskiwać dostęp do usługi Azure Data Explorer bez obecności użytkownika. Aby pozyskiwać dane przy użyciu łącznika NLog, należy utworzyć i zarejestrować jednostkę usługi Microsoft Entra, a następnie autoryzować tę jednostkę do pozyskiwania danych bazy danych usługi Azure Data Explorer.

  1. Korzystając z klastra usługi Azure Data Explorer, wykonaj kroki 1–7 w temacie Tworzenie rejestracji aplikacji Microsoft Entra w usłudze Azure Data Explorer.
  2. Zapisz następujące wartości, które mają być używane w kolejnych krokach:
    • Identyfikator aplikacji (klienta)
    • Identyfikator katalogu (dzierżawcy)
    • Wartość klucza tajnego klienta

Udzielanie uprawnień aplikacji Microsoft Entra

  1. Na karcie zapytania internetowego interfejsu użytkownika połącz się z klastrem. Aby uzyskać więcej informacji na temat nawiązywania połączenia, zobacz Dodawanie klastrów.

  2. Przejdź do bazy danych, w której chcesz pozyskać dane.

  3. Uruchom następujące polecenie zarządzania, zastępując symbole zastępcze. Zastąp wartość DatabaseName nazwą docelowej bazy danych i wartością ApplicationID . To polecenie przyznaje aplikacji rolę ingestor bazy danych . Aby uzyskać więcej informacji, zobacz Zarządzanie rolami zabezpieczeń bazy danych.

    .add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'Azure Data Explorer App Registration'
    

    Uwaga

    Ostatni parametr to ciąg, który jest wyświetlany jako notatki podczas wykonywania zapytań dotyczących ról skojarzonych z bazą danych. Aby uzyskać więcej informacji, zobacz Wyświetlanie istniejących ról zabezpieczeń.

Tworzenie tabeli i mapowania pozyskiwania

Utwórz tabelę docelową dla danych przychodzących.

  • W edytorze zapytań uruchom następujące polecenie tworzenia tabeli, zastępując symbol zastępczy TableName nazwą tabeli docelowej:

    .create table <TableName> (Timestamp:datetime, Level:string, Message:string, FormattedMessage:dynamic, Exception:string, Properties:dynamic)
    

Dodawanie konfiguracji docelowej usługi Azure Data Explorer do aplikacji

Aby wykonać następujące czynności:

  • Dodawanie konfiguracji docelowej usługi Azure Data Explorer
  • Skompiluj i uruchom aplikację
  1. Dodaj element docelowy usługi Azure Data Explorer w pliku konfiguracji NLog.

    <targets>
        <target name="adxtarget" xsi:type="ADXTarget"
        IngestionEndpointUri="<ADX connection string>"
        Database="<ADX database name>"
        TableName="<ADX table name>"
        ApplicationClientId="<AAD App clientId>"
        ApplicationKey="<AAD App key>"
        Authority="<AAD tenant id>"
        />
    </targets>
    
    ##Rules
    <rules>
        <logger name="*" minlevel="Info" writeTo="adxtarget" />
    </rules>
    

    Aby uzyskać więcej opcji, zobacz Łącznik usługi Azure Data Explorer Nlog.

  2. Wysyłanie danych do usługi Azure Data Explorer przy użyciu ujścia NLog. Na przykład:

    logger.Info("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);
    logger.Error(exceptionObj, "This was exception");
    logger.Debug("Processed {@Position} in {Elapsed:000} ms. ", position, elapsedMs);
    logger.Warn("Processed {@Position} in {Elapsed:000} ms. ", position, elapsedMs);
    
  3. Skompiluj i uruchom aplikację. Jeśli na przykład używasz programu Visual Studio, naciśnij klawisz F5.

  4. Sprawdź, czy dane są w klastrze. W internetowym interfejsie użytkownika uruchom następujące zapytanie, zastępując symbol zastępczy nazwą tabeli, która była używana wcześniej:

    <TableName>
    | take 10
    

Uruchamianie przykładowej aplikacji

Przykładowa aplikacja generatora dzienników przedstawia sposób konfigurowania i używania ujścia NLog.

  1. Sklonuj repozytorium git ujścia NLog przy użyciu następującego polecenia git:

    git clone https://github.com/Azure/azure-kusto-nlog-sink.git
    
  2. Ustaw następujące zmienne środowiskowe, aby plik konfiguracji NLog mógł odczytywać je od razu ze środowiska:

    Zmienna Opis
    INGEST_ENDPOINT Identyfikator URI pozyskiwania klastra w klastrze> formatuhttps://ingest-<.<region.kusto.windows.net>.
    BAZY DANYCH Nazwa docelowej bazy danych z uwzględnieniem wielkości liter.
    APP_ID Identyfikator klienta aplikacji wymagany do uwierzytelniania. Zapisano tę wartość w sekcji Tworzenie rejestracji aplikacji Microsoft Entra.
    APP_KEY Klucz aplikacji wymagany do uwierzytelniania. Zapisano tę wartość w sekcji Tworzenie rejestracji aplikacji Microsoft Entra.
    AZURE_TENANT_ID Identyfikator dzierżawy, w której zarejestrowano aplikację. Zapisano tę wartość w sekcji Tworzenie rejestracji aplikacji Microsoft Entra.

    Zmienne środowiskowe można ustawić ręcznie lub za pomocą następujących poleceń:

    $env:INGEST_ENDPOINT="<ingestionURI>"
    $env:APP_ID="<appId>"
    $env:APP_KEY="<appKey>"
    $env:AZURE_TENANT_ID="<tenant>"
    $env:DATABASE="<databaseName>"
    
  3. W terminalu przejdź do folderu głównego sklonowanego repozytorium i uruchom następujące dotnet polecenie, aby skompilować aplikację:

    cd .\NLog.Azure.Kusto.Samples\
    dotnet build
    
  4. W terminalu przejdź do folderu samples i uruchom następujące dotnet polecenie, aby uruchomić aplikację:

    dotnet run
    
  5. W internetowym interfejsie użytkownika wybierz docelową bazę danych i uruchom następujące zapytanie, aby zbadać pozyskane dane.

    ADXNLogSample
    | take 10
    

    Dane wyjściowe powinny wyglądać podobnie jak na poniższej ilustracji:

    Zrzut ekranu przedstawiający tabelę z funkcją take 10 i wynikami.