使用 NLog 接收將資料內嵌至 Azure Data Explorer
重要
此連接器可用於 Microsoft Fabric 中的 即時分析 。 使用本文中的指示,但有下列例外狀況:
- 如有需要,請使用 建立 KQL 資料庫中的指示建立資料庫。
- 如有需要,請使用 建立空白資料表中的指示來建立資料表。
- 使用 複製 URI中的指示取得查詢或擷取 URI。
- 在 KQL 查詢集中執行查詢。
NLog 是各種 .NET 平臺的彈性且免費的記錄平臺,包括 .NET 標準。 NLog 可讓您寫入數個目標,例如資料庫、檔案或主控台。 使用 NLog,您可以即時變更記錄組態。 NLog 接收是 NLog 的目標,可讓您將記錄訊息傳送至 Azure Data Explorer叢集。 外掛程式建置在 Azure-Kusto-Data 程式庫之上,並提供有效率的方式將記錄接收至叢集。
在本文中,您將學會如何:
如需資料連線器的完整清單,請參閱 資料連線器概觀。
必要條件
- .NET SDK 6.0 或更新版本
- Azure Data Explorer叢集和資料庫
設定環境
在本節中,您將準備環境以使用 NLog 連接器。
安裝套件
新增 NLog.Azure.Kusto NuGet 套件。 使用指定 NuGet 套件名稱的 Install-Package 命令。
Install-Package NLog.Azure.Kusto
建立Microsoft Entra應用程式註冊
Microsoft Entra應用程式驗證用於需要存取 Azure Data Explorer且沒有使用者的應用程式。 若要使用 NLog 連接器擷取資料,您必須建立並註冊Microsoft Entra服務主體,然後授權此主體內嵌 Azure Data Explorer 資料庫的資料。
- 使用 Azure Data Explorer 叢集,遵循在 Azure Data Explorer 中建立Microsoft Entra應用程式註冊中的步驟 1-7。
- 儲存下列值,以供後續步驟使用:
- 應用程式 (用戶端) 識別碼
- 目錄 (租用戶) 識別碼
- 用戶端秘密金鑰值
授與Microsoft Entra應用程式許可權
流覽至您要內嵌資料的資料庫。
執行下列管理命令,取代預留位置。 將 DatabaseName 取代為目標資料庫的名稱,並將 ApplicationID 取代為先前儲存的值。 此命令會將 資料庫擷取器 角色授與應用程式。 如需詳細資訊,請參閱 管理資料庫安全性角色。
.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'Azure Data Explorer App Registration'
注意
最後一個參數是字串,當您查詢與資料庫相關聯的角色時,會顯示為附注。 如需詳細資訊,請參閱 檢視現有的安全性角色。
建立資料表和擷取對應
建立傳入資料的目標資料表。
在查詢編輯器中,執行下表 建立命令,並將預留位置 TableName 取代為目標資料表的名稱:
.create table <TableName> (Timestamp:datetime, Level:string, Message:string, FormattedMessage:dynamic, Exception:string, Properties:dynamic)
將 Azure Data Explorer目標群組態新增至您的應用程式
使用下列步驟來:
- 新增 Azure Data Explorer目標群組態
- 建置並執行應用程式
在 NLog 組態檔中新增 Azure Data Explorer目標。
<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>
如需更多選項,請參閱Azure Data Explorer Nlog 連接器。
使用 NLog 接收將資料傳送至 Azure Data Explorer。 例如:
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);
建置並執行應用程式。 例如,如果您使用 Visual Studio,請按 F5。
確認資料位於您的叢集中。 在 Web UI中,執行下列查詢,以先前使用的資料表名稱取代預留位置:
<TableName> | take 10
執行範例應用程式
使用範例記錄產生器應用程式作為示範如何設定及使用 NLog 接收的範例。
使用下列 git 命令複製 NLog 接收的 git 存放庫 :
git clone https://github.com/Azure/azure-kusto-nlog-sink.git
設定下列環境變數,讓 NLog 組態檔可以立即從環境讀取它們:
變數 Description INGEST_ENDPOINT 格式https://ingest-< 叢集中叢集 > 的內嵌 URI。 <region.kusto.windows.net >。 資料庫 目標資料庫的區分大小寫名稱。 APP_ID 驗證所需的應用程式用戶端識別碼。 您已在建立Microsoft Entra應用程式註冊中儲存此值。 APP_KEY 驗證所需的應用程式金鑰。 您已在建立Microsoft Entra應用程式註冊中儲存此值。 AZURE_TENANT_ID 註冊應用程式的租使用者識別碼。 您已在建立Microsoft Entra應用程式註冊中儲存此值。 您可以手動或使用下列命令來設定環境變數:
在您的終端機中,流覽至複製存放庫的根資料夾,然後執行下列
dotnet
命令來建置應用程式:cd .\NLog.Azure.Kusto.Samples\ dotnet build
在您的終端機中,流覽至 samples 資料夾,然後執行下列
dotnet
命令以執行應用程式:dotnet run
在 Web UI中,選取目標資料庫,然後執行下列查詢來探索擷取的資料。
ADXNLogSample | take 10
您的輸出看起來應該類似下圖:
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應