Megosztás a következőn keresztül:


Adatok betöltése a Serilog-fogadóval az Azure Data Explorer

Fontos

Ez az összekötő használható a Microsoft Fabric valós idejű elemzéseiben . Használja a cikkben található utasításokat a következő kivételekkel:

A Serilog egy népszerű naplózási keretrendszer a .NET-alkalmazásokhoz. A Serilog lehetővé teszi a fejlesztők számára, hogy a naplózó neve, a naplózó szintje és az üzenetminta alapján tetszőleges részletességgel szabályozhatják, hogy mely naplókivonatok legyenek kimenetek. Az Azure-hoz készült Serilog-fogadó, más néven hozzáfűző, az Azure Data Explorer streameli a naplóadatokat az Azure Data Explorer, ahol valós időben elemezheti és vizualizálhatja a naplókat.

Ebből a cikkből megtudhatja, hogyan:

Az adatösszekötők teljes listáját lásd: Adatösszekötők áttekintése.

Előfeltételek

A környezet kialakítása

Ebben a szakaszban előkészíti a környezetet a Serilog-fogadó használatára.

A csomag telepítése

Adja hozzá a Serilog.Sinks.AzureDataExplorer NuGet-csomagot. Használja az Install-Package parancsot, amely megadja a NuGet-csomag nevét.

Install-Package Serilog.Sinks.AzureDataExplorer

Alkalmazásregisztráció létrehozása Microsoft Entra

Microsoft Entra alkalmazáshitelesítést azokhoz az alkalmazásokhoz használjuk, amelyeknek felhasználó nélkül kell hozzáférnie az Azure Data Explorer. Ha a Serilog-összekötővel szeretne adatokat betöltésre, létre kell hoznia és regisztrálnia kell egy Microsoft Entra szolgáltatásnevet, majd engedélyeznie kell ezt az egyszerű szolgáltatást egy Azure Data Explorer-adatbázis adatainak betöltéséhez.

  1. Az Azure Data Explorer-fürt használatával kövesse a Microsoft Entra alkalmazásregisztráció létrehozása az Azure Data Explorer-ban című cikk 1–7. lépését.
  2. Mentse a következő értékeket, amelyeket a későbbi lépésekben használni szeretne:
    • Alkalmazás (ügyfél) azonosítója
    • Címtár (bérlő) azonosítója
    • Titkos ügyfélkulcs értéke

A Microsoft Entra alkalmazás engedélyeinek megadása

  1. A webes felhasználói felület lekérdezés lapján csatlakozzon a fürthöz. További információ a csatlakozásról: Fürtök hozzáadása.

  2. Keresse meg azt az adatbázist, amelyben adatokat szeretne betöltésre.

  3. Futtassa a következő felügyeleti parancsot, és cserélje le a helyőrzőket. Cserélje le a DatabaseName nevet a céladatbázis nevére, az ApplicationID értékét pedig a korábban mentett értékre. Ez a parancs megadja az alkalmazásnak az adatbázis-betöltési szerepkört. További információ: Adatbázisbiztonsági szerepkörök kezelése.

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

    Megjegyzés

    Az utolsó paraméter egy sztring, amely jegyzetekként jelenik meg az adatbázishoz társított szerepkörök lekérdezésekor. További információ: Meglévő biztonsági szerepkörök megtekintése.

Tábla- és betöltési leképezés létrehozása

Hozzon létre egy céltáblát a bejövő adatokhoz, és megfelelteti a betöltött adatoszlopokat a céltábla oszlopainak. A következő lépésekben a táblaséma és a leképezés megfelel a mintaalkalmazásból küldött adatoknak.

  1. A lekérdezésszerkesztőben futtassa a következő táblalétrehozási parancsot, és cserélje le a TableName helyőrzőt a céltábla nevére:

    .create table <TableName> (Timestamp: datetime, Level: string, Message: string, Exception: string, Properties: dynamic, Position: dynamic, Elapsed: int)
    
  2. Futtassa a következő betöltési leképezési parancsot, és cserélje le a TableName helyőrzőket a céltábla nevére, a TableNameMapping parancsot pedig a betöltési leképezés nevére:

    .create table <TableName> ingestion csv mapping '<TableNameMapping>' '[{"Name":"Timestamp","DataType":"","Ordinal":"0","ConstValue":null},{"Name":"Level","DataType":"","Ordinal":"1","ConstValue":null},{"Name":"Message","DataType":"","Ordinal":"2","ConstValue":null},{"Name":"Exception","DataType":"","Ordinal":"3","ConstValue":null},{"Name":"Properties","DataType":"","Ordinal":"4","ConstValue":null},{"Name":"Position","DataType":"","Ordinal":"5","ConstValue":null},{"Name":"Elapsed","DataType":"","Ordinal":"6","ConstValue":null}]'
    

A Serilog fogadó hozzáadása az alkalmazáshoz

A következő lépésekkel:

  • A Serilog fogadó hozzáadása az alkalmazáshoz
  • A fogadó által használt változók konfigurálása
  • Készítsen buildet és futtassa az alkalmazást
  1. Adja hozzá a következő kódot az alkalmazáshoz:

    using Serilog.Sinks.AzureDataExplorer;
    
  2. Konfigurálja a Serilog-fogadót, és cserélje le a helyőrzőket a következő táblázat adataival:

    var log = new LoggerConfiguration()
    .WriteTo.AzureDataExplorerSink(new AzureDataExplorerSinkOptions
    {
        IngestionEndpointUri = "<cluster>",
        DatabaseName = "<MyDatabase>",
        TableName = "<MyTable>",
        BufferBaseFileName = "<BufferBaseFileName>"
    })
    .CreateLogger();
    
    Változó Leírás
    IngestionEndPointUri A fürt betöltési URI-ja a fürt> formátumábanhttps://ingest-<.<region.kusto.windows.net>.
    DatabaseName A céladatbázis kis- és nagybetűkre érzékeny neve.
    TableName Egy meglévő céltábla kis- és nagybetűkre érzékeny neve. Például a SerilogTest a tábla létrehozása és a betöltési leképezésben létrehozott tábla neve.
    AppId A hitelesítéshez szükséges alkalmazásügyfél-azonosító. Ezt az értéket az Alkalmazásregisztráció létrehozása Microsoft Entra területen mentette.
    AppKey A hitelesítéshez szükséges alkalmazáskulcs. Ezt az értéket az Alkalmazásregisztráció létrehozása Microsoft Entra területen mentette.
    Bérlő Annak a bérlőnek az azonosítója, amelyben az alkalmazás regisztrálva van. Ezt az értéket az Alkalmazásregisztráció létrehozása Microsoft Entra területen mentette.
    BufferBaseFileName A pufferfájl nem kötelező alapfájlneve. Ezt az értéket akkor állítsa be, ha a naplóknak tartósnak kell lenniük a fürthöz való csatlakozás megszakadása esetén. Például: C:/Temp/Serilog.

    További lehetőségekért lásd: Fogadó beállításai.

  3. Adatokat küldhet az Azure Data Explorer a Serilog fogadó használatával. Például:

    log.Verbose("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);
    log.Information("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);
    log.Warning("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);
    log.Error(new Exception(), "Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);
    log.Debug("Processed {@Position} in {Elapsed:000} ms. ", position, elapsedMs);
    
  4. Hozza létre és futtassa az alkalmazást. Ha például a Visual Studiót használja, nyomja le az F5 billentyűt.

  5. Ellenőrizze, hogy az adatok a fürtben találhatóak-e. A webes felhasználói felületen futtassa a következő lekérdezést, amely a helyőrzőt a korábban használt tábla nevére cseréli:

    <TableName>
    | take 10
    

A mintaalkalmazás futtatása

Példaként használja a naplógenerátor mintaalkalmazást, amely bemutatja, hogyan konfigurálhatja és használhatja a Serilog-fogadót.

  1. Klónozza a Serilog-fogadó git-adattárát a következő git paranccsal:

    git clone https://github.com/Azure/serilog-sinks-azuredataexplorer
    
  2. Állítsa be a következő környezeti változókat a Serilog-fogadó konfigurálásához:

    Változó Leírás
    IngestionEndPointUri A fürt betöltési URI-ja a fürt> formátumábanhttps://ingest-<.<region.kusto.windows.net>.
    DatabaseName A céladatbázis kis- és nagybetűkre érzékeny neve.
    TableName Egy meglévő céltábla kis- és nagybetűkre érzékeny neve. Például a SerilogTest a tábla létrehozása és a betöltési leképezésben létrehozott tábla neve.
    AppId A hitelesítéshez alkalmazásügyfél-azonosító szükséges. Ezt az értéket az Alkalmazásregisztráció létrehozása Microsoft Entra területen mentette.
    AppKey A hitelesítéshez szükséges alkalmazáskulcs. Ezt az értéket az Alkalmazásregisztráció létrehozása Microsoft Entra területen mentette.
    Bérlő Annak a bérlőnek az azonosítója, amelyben az alkalmazás regisztrálva van. Ezt az értéket az Alkalmazásregisztráció létrehozása Microsoft Entra területen mentette.
    BufferBaseFileName A pufferfájl alapfájljának neve. Ezt az értéket akkor állítsa be, ha a naplóknak tartósnak kell lenniük a fürthöz való csatlakozás megszakadása esetén. Például: C:/Temp/Serilog

    A környezeti változókat manuálisan vagy a következő parancsokkal állíthatja be:

    $env:ingestionURI="<ingestionURI>"
    $env:appId="<appId>"
    $env:appKey="<appKey>"
    $env:tenant="<tenant>"
    $env:databaseName="<databaseName>"
    $env:tableName="<tableName>"
    
  3. A terminálban keresse meg a klónozott adattár gyökérmappáját, és futtassa a következő .NET-parancsot az alkalmazás létrehozásához:

    dotnet build src
    
  4. A terminálban keresse meg a mintamappát, és futtassa a következő .NET-parancsot az alkalmazás futtatásához:

    dotnet build run
    
  5. A webes felhasználói felületen válassza ki a céladatbázist, és futtassa a következő lekérdezést a betöltött adatok megismeréséhez, és cserélje le a TableName helyőrzőt a céltábla nevére:

    <TableName>
    | take 10
    

    A kimenetnek a következő képhez hasonlóan kell kinéznie:

    Képernyőkép a 10 függvényt és eredményt tartalmazó táblázatról.