使用 NLog 在 Amazon CloudWatch 日誌中設定 .NET 應用程式的記錄 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 NLog 在 Amazon CloudWatch 日誌中設定 .NET 應用程式的記錄

由比布蒂·薩胡(AWS)和羅布希爾(AWS)(AWS)創建

環境:生產

技術:管理與治理 DevOps; Web 和移動應用程序

工作量:Microsoft

AWS 服務:Amazon CloudWatch 日誌

Summary

此模式說明如何使用 NLog 開放原始碼記錄架構在 Amazon Lo CloudWatch gs 中記錄 .NET 應用程式使用情況和事件。在 CloudWatch 主控台中,您可以近乎即時地檢視應用程式的記錄訊息。您也可以設定測結果並設定警示,以便在超過測量結果臨界值時通知您。使用 CloudWatch 應用程式見解,您可以檢視自動化或自訂儀表板,以顯示受監控應用程式的潛在問題。 CloudWatch 應用程式深入解析可協助您快速找出應用程式和基礎架構持續發生的問題。

若要將記錄訊息寫入 CloudWatch 記錄檔,請將AWS.Logger.NLog NuGet 套件加入至 .NET 專案。然後,您將NLog.config檔案更新為使用 CloudWatch 記錄檔做為目標。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • .NET Web 或主控台應用程式,可:

    • 使用支持的 .NET 框架或 .NET 核心版本。如需詳細資訊,請參閱產品版本

    • 使用 nLog 將日誌數據發送到應用程序洞察。

  • 為 AWS 服務建立 IAM 角色的許可。如需詳細資訊,請參閱服務角色權限

  • 將角色傳遞給 AWS 服務的許可。如需詳細資訊,請參閱授予使用者將角色傳遞至 AWS 服務

產品版本

  • .NET 架構 3.5 版或更新版本

  • . NET 核心版本 1.0.1、2.0.0 或更新版本

架構

目標技術堆疊

  • nLog

  • Amazon CloudWatch 日誌

目標架構

NLog 將 .NET 應用程式的日誌資料寫入 Amazon ClodWatch 日誌的架構圖。
  1. .NET 應用程序將日誌數據寫入 NLog 日誌框架。

  2. nLog 會將記錄檔資料寫入 CloudWatch 防護記錄。

  3. 您可以使用 CloudWatch 警示和自訂儀表板來監視 .NET 應用程式。

工具

AWS 服務

其他工具

  • 日誌 .nlog 是一個 NLog 目標,用於將日誌數據記錄到日誌中。 CloudWatch

  • nLog 是 .NET 平台的開放原始碼記錄架構,可協助您將記錄資料寫入目標,例如資料庫、記錄檔或主控台。

  • PowerShell是一個 Microsoft 的自動化和配置管理程序,可以在 Windows,Linux 和 macOS 上運行。

  • Visual Studio 是整合式開發環境 (IDE),其中包含編譯器、程式碼完成工具、圖形設計工具,以及其他支援軟體開發的功能。

最佳實務

史诗

任務描述所需技能

建立 IAM 政策。

請遵循 IAM 說明文件中使用 JSON 編輯器建立政策中的指示。輸入下列 JSON 原則,此原則具有允許 CloudWatch 記錄讀取和寫入記錄檔所需的最低權限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:GetLogEvents", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutRetentionPolicy" ], "Resource": [ "*" ] } ] }
AWS 管理員 DevOps

建立 IAM 角色。

遵循 IAM 文件中建立角色以將許可委派給 AWS 服務中的說明進行操作。選取您先前建立的策略。這是記錄 CloudWatch 檔假設執行記錄動作的角色。

AWS 管理員 DevOps

為. 設定的 AWS 工具 PowerShell。

  1. 請按照安裝 AWS 工具中針對您的作業系統的說明進行操作 PowerShell。

  2. 使用適用於 PowerShell 指令程式的 AWS 工具,將存取金鑰和秘密金鑰存放在設定檔中。如需指示,請參閱 AWS 工具中的管理設定檔以取得 PowerShell 文件。

一般 AWS
任務描述所需技能

安裝 NuGet 套件。

  1. 在 Visual Studio 中,選擇 [檔案],然後選擇 [開啟專案或解決方案]。

  2. 選擇要在其中安裝 NLog 的項目。

  3. 在 Visual Studio 中,選擇工具、P NuGet ackage 管理員、P ackage 管理員主控台

  4. 輸入以下指令來安裝AWS.Logger.NLog NuGet 套件。

    Install-Package AWS.Logger.NLog -Version 3.1.0
應用程式開發人員

設定記錄目標。

  1. 開啟 NLog.config 檔案。

  2. 對於目標type,輸入AWSTarget

  3. 針對目標logGroup,輸入您要使用的記錄群組名稱。如果記錄群組尚不存在,則會自動建立具有提供名稱的新記錄群組。

  4. 針對目標region,輸入設定 CloudWatch 日誌的 AWS 區域。

  5. 針對目標profile,輸入您先前建立的設定檔名稱來儲存存取金鑰和秘密金鑰。

  6. 儲存並關閉 NLog.config 檔案。

如需範例組態檔案,請參閱此模式的其他資訊一節。當您運行應用程序時,NLog 將寫入日誌消息並將其發送到 CloudWatch 日誌。

應用程式開發人員
任務描述所需技能

驗證記錄。

依照記錄檔文件中檢視傳送至 CloudWatch 記錄檔的記 CloudWatch 錄檔資料中的指示進行。驗證是否正在記錄 .NET 應用程式的記錄事件。如果未記錄日誌事件,請參閱此病毒碼中的疑難排解一節。

一般 AWS

監視 .NET 應用程式堆疊。

根據您的使用案例的需要 CloudWatch ,在中設定監視。您可以使用CloudWatch 日誌深入解析CloudWatch 指標深入解析CloudWatch 應用程式洞察來監視您的 .NET 工作負載。您也可以設定示,以便接收警示,並且可以建立自訂儀表板以從單一檢視監視工作負載。

一般 AWS

故障診斷

問題解決方案

記錄檔資料不會顯示在 CloudWatch 記錄中。

確保 IAM 政策已附加到 CloudWatch 日誌假定的 IAM 角色。如需指示,請參閱「Epics」一節中的「設定存取權限和工具」一節。

相關資源

其他資訊

以下是範例NLog.config檔案。

<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" /> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> <nlog> <extensions> <add assembly="NLog.AWS.Logger" /> </extensions> <targets> <target name="aws" type="AWSTarget" logGroup="NLog.TestGroup" region="us-east-1" profile="demo"/> </targets> <rules> <logger name="*" minlevel="Info" writeTo="aws" /> </rules> </nlog> </configuration>