本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 日誌
目標架構
.NET 應用程序將日誌數據寫入 NLog 日誌框架。
nLog 會將記錄檔資料寫入 CloudWatch 防護記錄。
您可以使用 CloudWatch 警示和自訂儀表板來監視 .NET 應用程式。
工具
AWS 服務
Amazon CloudWatch 應用程式深入解析可協助您觀察應用程式和基礎 AWS 資源的運作狀態。
Amazon CloudWatch Logs 可協助您集中管理所有系統、應用程式和 AWS 服務的日誌,以便您可以監控和安全地存檔日誌。
AWS Identity and Access Management (IAM) 可透過控制誰經過身份驗證和授權使用 AWS 資源,協助您安全地管理對 AWS 資源的存取。
的 AWS 工具 PowerShell是一 PowerShell 組模組,可協助您從命令列對 AWS 資源執行操作 PowerShell 指令碼。
其他工具
日誌 .nlog 是一個 NLog 目標,用於將日誌數
據記錄到日誌中。 CloudWatch nLog
是 .NET 平台的開放原始碼記錄架構,可協助您將記錄資料寫入目標,例如資料庫、記錄檔或主控台。 PowerShell
是一個 Microsoft 的自動化和配置管理程序,可以在 Windows,Linux 和 macOS 上運行。 Visual Studio
是整合式開發環境 (IDE),其中包含編譯器、程式碼完成工具、圖形設計工具,以及其他支援軟體開發的功能。
最佳實務
設定目標記錄群組的保留原則。這必須在 NLog 配置之外完成。根據預設,記錄資料會無限期地儲存在 CloudWatch 防護記錄中。
史诗
任務 | 描述 | 所需技能 |
---|---|---|
建立 IAM 政策。 | 請遵循 IAM 說明文件中使用 JSON 編輯器建立政策中的指示。輸入下列 JSON 原則,此原則具有允許 CloudWatch 記錄讀取和寫入記錄檔所需的最低權限。
| AWS 管理員 DevOps |
建立 IAM 角色。 | 遵循 IAM 文件中建立角色以將許可委派給 AWS 服務中的說明進行操作。選取您先前建立的策略。這是記錄 CloudWatch 檔假設執行記錄動作的角色。 | AWS 管理員 DevOps |
為. 設定的 AWS 工具 PowerShell。 |
| 一般 AWS |
任務 | 描述 | 所需技能 |
---|---|---|
安裝 NuGet 套件。 |
| 應用程式開發人員 |
設定記錄目標。 |
如需範例組態檔案,請參閱此模式的其他資訊一節。當您運行應用程序時,NLog 將寫入日誌消息並將其發送到 CloudWatch 日誌。 | 應用程式開發人員 |
任務 | 描述 | 所需技能 |
---|---|---|
驗證記錄。 | 依照記錄檔文件中檢視傳送至 CloudWatch 記錄檔的記 CloudWatch 錄檔資料中的指示進行。驗證是否正在記錄 .NET 應用程式的記錄事件。如果未記錄日誌事件,請參閱此病毒碼中的疑難排解一節。 | 一般 AWS |
監視 .NET 應用程式堆疊。 | 根據您的使用案例的需要 CloudWatch ,在中設定監視。您可以使用CloudWatch 日誌深入解析、CloudWatch 指標深入解析和CloudWatch 應用程式洞察來監視您的 .NET 工作負載。您也可以設定警示,以便接收警示,並且可以建立自訂儀表板以從單一檢視監視工作負載。 | 一般 AWS |
故障診斷
問題 | 解決方案 |
---|---|
記錄檔資料不會顯示在 CloudWatch 記錄中。 | 確保 IAM 政策已附加到 CloudWatch 日誌假定的 IAM 角色。如需指示,請參閱「Epics」一節中的「設定存取權限和工具」一節。 |
相關資源
使用記錄群組和記錄串流 (CloudWatch 記錄檔文件)
Amazon CloudWatch 日誌和 .NET 日誌框架
(AWS 部落格文章)
其他資訊
以下是範例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>