Příjem dat pomocí jímky Serilog do Azure Data Explorer
Důležité
Tento konektor se dá použít v analýze v reálném čase v Microsoft Fabric. Postupujte podle pokynů v tomto článku s následujícími výjimkami:
- V případě potřeby vytvořte databáze podle pokynů v tématu Vytvoření databáze KQL.
- V případě potřeby vytvořte tabulky podle pokynů v tématu Vytvoření prázdné tabulky.
- Získejte identifikátory URI dotazů nebo příjmu dat podle pokynů v tématu Identifikátor URI pro kopírování.
- Spouštění dotazů v sadě dotazů KQL
Serilog je oblíbená architektura protokolování pro aplikace .NET. Serilog umožňuje vývojářům řídit, které příkazy protokolu budou výstupem, s libovolnou členitostí na základě názvu protokolovacího nástroje, úrovně protokolovacího nástroje a vzoru zprávy. Jímka Serilog, označovaná také jako appender, pro Azure Data Explorer streamuje data protokolů do Azure Data Explorer, kde můžete protokoly analyzovat a vizualizovat v reálném čase.
V tomto článku se naučíte:
Úplný seznam datových konektorů najdete v tématu Přehled datových konektorů.
Požadavky
- .NET SDK 6.0 nebo novější
- Cluster a databáze Azure Data Explorer
Nastavení prostředí
V této části připravíte prostředí tak, aby používalo jímku Serilog.
Instalace balíčku
Přidejte balíček NuGet Serilog.Sinks.AzureDataExplorer . Pomocí příkazu Install-Package zadejte název balíčku NuGet.
Install-Package Serilog.Sinks.AzureDataExplorer
Vytvoření registrace aplikace Microsoft Entra
Microsoft Entra ověřování aplikací se používá pro aplikace, které potřebují přístup k Azure Data Explorer bez přítomnosti uživatele. Pokud chcete ingestovat data pomocí konektoru Serilog, musíte vytvořit a zaregistrovat Microsoft Entra instanční objekt a pak tento instanční objekt autorizovat k ingestování dat databáze Azure Data Explorer.
- Pomocí clusteru Azure Data Explorer postupujte podle kroků 1 až 7 v tématu Vytvoření registrace aplikace Microsoft Entra v Azure Data Explorer.
- Uložte následující hodnoty, které se použijí v pozdějších krocích:
- ID aplikace (klienta)
- ID adresáře (tenanta)
- Hodnota klíče tajného klíče klienta
Udělení oprávnění Microsoft Entra aplikaci
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ů.
Přejděte do databáze, ve které chcete ingestovat data.
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 udělí aplikaci roli ingestor databáze . 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í tabulky a mapování příjmu dat
Vytvořte cílovou tabulku pro příchozí data a namapujte sloupce přijatých dat na sloupce v cílové tabulce. V následujících krocích schéma a mapování tabulky odpovídají datům odeslaných z ukázkové aplikace.
V editoru dotazů spusťte následující příkaz pro vytvoření tabulky a nahraďte zástupný symbol TableName názvem cílové tabulky:
.create table <TableName> (Timestamp: datetime, Level: string, Message: string, Exception: string, Properties: dynamic, Position: dynamic, Elapsed: int)
Spusťte následující příkaz mapování příjmu dat a nahraďte zástupné symboly TableName názvem cílové tabulky a TableNameMapping názvem mapování příjmu dat:
.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}]'
Přidání jímky Serilog do aplikace
Postupujte následovně:
- Přidání jímky Serilog do aplikace
- Konfigurace proměnných používaných jímkou
- Sestavte a spusťte aplikaci.
Do aplikace přidejte následující kód:
using Serilog.Sinks.AzureDataExplorer;
Nakonfigurujte jímku Serilog a nahraďte zástupné symboly pomocí informací v následující tabulce:
var log = new LoggerConfiguration() .WriteTo.AzureDataExplorerSink(new AzureDataExplorerSinkOptions { IngestionEndpointUri = "<cluster>", DatabaseName = "<MyDatabase>", TableName = "<MyTable>", BufferBaseFileName = "<BufferBaseFileName>" }) .CreateLogger();
Proměnná Popis IngestováníEndPointUri Identifikátor URI ingestování vašeho clusteru ve formátu https://ingest-<clusteru><region.kusto.windows.net>. Databasename Název cílové databáze rozlišující malá a velká písmena. TableName Název existující cílové tabulky rozlišující malá a velká písmena. Například SerilogTest je název tabulky vytvořené v tématu Vytvoření tabulky a mapování příjmu dat. AppId ID klienta aplikace vyžadované pro ověřování. Tuto hodnotu jste uložili v části Vytvoření registrace aplikace Microsoft Entra. AppKey Klíč aplikace vyžadovaný pro ověřování. Tuto hodnotu jste uložili v části Vytvoření registrace aplikace Microsoft Entra. Tenant ID tenanta, ve kterém je aplikace zaregistrovaná. Tuto hodnotu jste uložili v části Vytvoření registrace aplikace Microsoft Entra. BufferBaseFileName Volitelný základní název souboru vyrovnávací paměti. Tuto hodnotu nastavte, pokud požadujete, aby protokoly byly odolné proti ztrátě způsobující selhání připojení ke clusteru. Například, C:/Temp/Serilog
.Další možnosti najdete v tématu Možnosti jímky.
Odesílání dat do Azure Data Explorer pomocí jímky Serilog. Příklad:
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);
Sestavte a spusťte aplikaci. Pokud například používáte Visual Studio, stiskněte klávesu F5.
Ověřte, že se data nachází ve vašem clusteru. Ve webovém uživatelském rozhraní spusťte následující dotaz, který nahradí zástupný symbol názvem tabulky, která se použila dříve:
<TableName> | take 10
Spuštění ukázkové aplikace
Jako příklad použijte ukázkovou aplikaci generátoru protokolů, která ukazuje, jak nakonfigurovat a používat jímku Serilog.
Pomocí následujícího příkazu git naklonujte úložiště Git jímky Serilog:
git clone https://github.com/Azure/serilog-sinks-azuredataexplorer
Pro konfiguraci jímky Serilog nastavte následující proměnné prostředí:
Proměnná Popis IngestováníEndPointUri Identifikátor URI ingestování vašeho clusteru ve formátu https://ingest-<clusteru><region.kusto.windows.net>. Databasename Název cílové databáze rozlišující malá a velká písmena. TableName Název existující cílové tabulky rozlišující malá a velká písmena. Například SerilogTest je název tabulky vytvořené v tématu Vytvoření tabulky a mapování příjmu dat. AppId ID klienta aplikace vyžadované pro ověřování. Tuto hodnotu jste uložili do části Vytvoření registrace aplikace Microsoft Entra. AppKey Klíč aplikace vyžadovaný pro ověřování. Tuto hodnotu jste uložili do části Vytvoření registrace aplikace Microsoft Entra. Tenant ID tenanta, ve kterém je aplikace zaregistrovaná. Tuto hodnotu jste uložili do části Vytvoření registrace aplikace Microsoft Entra. Název souboru vyrovnávací paměti Název základního souboru pro soubor vyrovnávací paměti. Tuto hodnotu nastavte, pokud požadujete, aby vaše protokoly byly odolné proti ztrátě způsobujícím selhání připojení ke clusteru. Například C:/Temp/Serilog
.Proměnné prostředí můžete nastavit ručně nebo pomocí následujících příkazů:
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 příkazu .NET sestavte aplikaci:
dotnet build src
V terminálu přejděte do složky samples a spusťte aplikaci spuštěním následujícího příkazu .NET:
dotnet build run
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. Zástupný text TableName nahraďte názvem cílové tabulky:
<TableName> | take 10
Výstup by měl vypadat podobně jako na následujícím obrázku:
Související obsah
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro