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:
- Ha szükséges, hozzon létre adatbázisokat a KQL-adatbázis létrehozása című témakör utasításai alapján.
- Ha szükséges, hozzon létre táblákat az Üres tábla létrehozása című témakörben található utasítások alapján.
- Lekérdezési vagy betöltési URI-k lekérése az URI másolása című témakör utasításai alapján.
- Lekérdezések futtatása KQL-lekérdezéskészletben.
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
- .NET SDK 6.0 vagy újabb
- Azure Data Explorer-fürt és -adatbázis
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.
- 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.
- 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
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.
Keresse meg azt az adatbázist, amelyben adatokat szeretne betöltésre.
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.
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)
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
Adja hozzá a következő kódot az alkalmazáshoz:
using Serilog.Sinks.AzureDataExplorer;
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.
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);
Hozza létre és futtassa az alkalmazást. Ha például a Visual Studiót használja, nyomja le az F5 billentyűt.
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.
Klónozza a Serilog-fogadó git-adattárát a következő git paranccsal:
git clone https://github.com/Azure/serilog-sinks-azuredataexplorer
Á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:
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
A terminálban keresse meg a mintamappát, és futtassa a következő .NET-parancsot az alkalmazás futtatásához:
dotnet build run
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: