Sdílet prostřednictvím


Příjem dat pomocí jímky NLog do Azure Data Exploreru

Důležité

Tento konektor se dá použít v sadě Microsoft Fabric v reálném čase. Postupujte podle pokynů v tomto článku s následujícími výjimkami:

NLog je flexibilní a bezplatná platforma protokolování pro různé platformy .NET, včetně .NET Standard. NLog umožňuje zapisovat do několika cílů, jako je databáze, soubor nebo konzola. S protokolem NLog můžete změnit konfiguraci protokolování za běhu. Jímka NLog je cílem NLogu, který umožňuje odesílat zprávy protokolu do clusteru Azure Data Exploreru. Modul plug-in je založený na knihovně Azure-Kusto-Data a poskytuje efektivní způsob, jak jímit protokoly do clusteru.

V tomto článku se naučíte:

Úplný seznam datových konektorů najdete v přehledu datových konektorů.

Požadavky

  • .NET SDK 6.0 nebo novější
  • Cluster a databáze Azure Data Exploreru

Nastavení prostředí

V této části připravíte prostředí na použití konektoru NLog.

Nainstalujte balíček .

Přidejte balíček NuGet NLog.Azure.Kusto. Použijte příkaz Install-Package určující název balíčku NuGet.

Install-Package NLog.Azure.Kusto

Vytvoření registrace aplikace Microsoft Entra

Ověřování aplikací Microsoft Entra se používá pro aplikace, které potřebují přístup k Azure Data Exploreru bez přítomnosti uživatele. Pokud chcete ingestovat data pomocí konektoru NLog, musíte vytvořit a zaregistrovat instanční objekt Microsoft Entra a pak tento objekt zabezpečení autorizovat k ingestování dat v databázi Azure Data Exploreru.

  1. Pomocí clusteru Azure Data Exploreru postupujte podle kroků 1 až 7 v části Vytvoření registrace aplikace Microsoft Entra v Azure Data Exploreru.
  2. Uložte následující hodnoty, které chcete použít v dalších krocích:
    • ID aplikace (klienta)
    • ID adresáře (klienta)
    • Hodnota tajného klíče klienta

Udělení oprávnění aplikace Microsoft Entra

  1. Na kartě dotazu webového uživatelského rozhraní se připojte ke clusteru. Další informace o připojení najdete v tématu Přidání clusterů.

  2. Přejděte do databáze, ve které chcete ingestovat data.

  3. Spusťte následující příkaz pro správu a nahraďte zástupné symboly. Nahraďte DatabaseName názvem cílové databáze a APPLICATIONID dříve uloženou hodnotou. Tento příkaz aplikaci udělí roli databázového ingestoru. Další informace najdete v tématu Správa rolí zabezpečení databáze.

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

    Poznámka:

    Poslední parametr je řetězec, který se zobrazí jako poznámky při dotazování rolí přidružených k databázi. Další informace najdete v tématu Zobrazení existujících rolí zabezpečení.

Vytvoření mapování tabulek a příjmu dat

Vytvořte cílovou tabulku pro příchozí data.

  • V editoru dotazů spusťte následující příkaz pro vytvoření tabulky a nahraďte zástupný název TableName názvem cílové tabulky:

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

Přidání cílové konfigurace Azure Data Exploreru do aplikace

Pomocí následujících kroků:

  • Přidání cílové konfigurace Azure Data Exploreru
  • Sestavte a spusťte aplikaci.
  1. Přidejte cíl Azure Data Exploreru do konfiguračního souboru NLogu.

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

    Další možnosti najdete v konektoru Nlog v Azure Data Exploreru.

  2. Odeslání dat do Azure Data Exploreru pomocí jímky NLog Příklad:

    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. Sestavte a spusťte aplikaci. Pokud například používáte Visual Studio, stiskněte klávesu F5.

  4. Ověřte, že jsou data ve vašem clusteru. Ve webovém uživatelském rozhraní spusťte následující dotaz a nahraďte zástupný text názvem tabulky, která byla použita dříve:

    <TableName>
    | take 10
    

Spuštění ukázkové aplikace

Ukázkovou aplikaci generátoru protokolů použijte jako příklad ukazující, jak nakonfigurovat a použít jímku NLog.

  1. Naklonujte úložiště Git jímky NLog pomocí následujícího příkazu Git:

    git clone https://github.com/Azure/azure-kusto-nlog-sink.git
    
  2. Nastavte následující proměnné prostředí, aby konfigurační soubor NLog mohl číst hned od prostředí:

    Proměnná Popis
    INGEST_ENDPOINT Identifikátor ingestování URI clusteru ve formátuhttps://ingest-<.><region.kusto.windows.net>.
    DATABÁZE V cílové databázi se rozlišují malá a velká písmena.
    APP_ID ID klienta aplikace vyžadované pro ověřování. Tuto hodnotu jste uložili v části Vytvoření registrace aplikace Microsoft Entra.
    APP_KEY Klíč aplikace vyžadovaný pro ověřování. Tuto hodnotu jste uložili v části Vytvoření registrace aplikace Microsoft Entra.
    AZURE_TENANT_ID ID tenanta, ve kterém je aplikace zaregistrovaná. Tuto hodnotu jste uložili v části Vytvoření registrace aplikace Microsoft Entra.

    Proměnné prostředí můžete nastavit ručně nebo pomocí následujících příkazů:

    $env:INGEST_ENDPOINT="<ingestionURI>"
    $env:APP_ID="<appId>"
    $env:APP_KEY="<appKey>"
    $env:AZURE_TENANT_ID="<tenant>"
    $env:DATABASE="<databaseName>"
    
  3. V terminálu přejděte do kořenové složky klonovaného úložiště a spuštěním následujícího dotnet příkazu sestavte aplikaci:

    cd .\NLog.Azure.Kusto.Samples\
    dotnet build
    
  4. V terminálu přejděte do složky s ukázkami a spuštěním následujícího dotnet příkazu spusťte aplikaci:

    dotnet run
    
  5. Ve webovém uživatelském rozhraní vyberte cílovou databázi a spuštěním následujícího dotazu prozkoumejte ingestované data.

    ADXNLogSample
    | take 10
    

    Výstup by měl vypadat podobně jako na následujícím obrázku:

    Snímek obrazovky tabulky s 10 funkcemi a výsledky