本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为配置日志记录。 NET使用 Amazon CloudWatch Logs 中的应用程序 NLog
由 Bibhuti Sahu (AWS) 和 Rob Hill () (AWS) 创作 AWS
摘要
此模式描述了如何使用NLog开源日志框架进行日志。 NETAmazon CloudWatch 日志中的应用程序使用情况和事件。在 CloudWatch 控制台中,您可以近乎实时地查看应用程序的日志消息。您还可以设置指标并配置警报,以便在超过指标阈值时通知您。使用 A CloudWatch pplication Insights,您可以查看显示受监控应用程序潜在问题的自动或自定义仪表板。 CloudWatch Application Insights 旨在帮助您快速隔离应用程序和基础架构中持续存在的问题。
要将日志消息写入 CloudWatch 日志,请将AWS.Logger.NLog
NuGet 软件包添加到。 NET项目。然后,更新NLog.config
文件以使用 CloudWatch 日志作为目标。
先决条件和限制
先决条件
一个活动的 AWS 账户。
A。 NETWeb 或控制台应用程序:
支持的用途。 NET框架或. NET 核心版本。有关更多信息,请参阅产品版本。
用于向 A NLog pplication Insights 发送日志数据。
为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 App CloudWatch lication Insights 可帮助您观察应用程序和底层AWS资源的运行状况。
Amazon CloudWatch Lo gs 可帮助您集中管理所有系统、应用程序和AWS服务的日志,以便您可以对其进行监控并安全地存档。
AWSIdentity and Access Management (IAM) 通过控制谁经过身份验证并有权使用AWS资源,从而帮助您安全地管理对资源的访问权限。
AWS的工具 PowerShell是一组 PowerShell 模块,可帮助您通过 PowerShell 命令行编写对AWS资源的操作脚本。
其他工具
记录器。 NLog
是将日志数据记录到 CloudWatch 日志的NLog目标。 NLog
是一个开源日志框架,用于。 NET可帮助您将日志数据写入目标(例如数据库、日志文件或控制台)的平台。 PowerShell
是一款在 Windows、Linux 和 macOS 上运行的微软自动化和配置管理程序。 Visual Studio
是一个集成开发环境 (IDE),包括编译器、代码完成工具、图形设计器和其他支持软件开发的功能。
最佳实践
为目标日志组设置保留策略。这必须在NLog配置之外完成。默认情况下,日志数据无限期地存储在 CloudWatch 日志中。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
创建 IAM 策略。 | 按照IAM文档中使用JSON编辑器创建策略中的说明进行操作。输入以下JSON策略,该策略具有允许 CloudWatch 日志读取和写入日志所需的最低权限。
| AWS管理员,AWS DevOps |
创建一个 IAM 角色。 | 按照IAM文档中创建角色向AWS服务委派权限中的说明进行操作。选择您之前创建的策略。这是 Logs 在执行 CloudWatch 日志操作时所扮演的角色。 | AWS管理员,AWS DevOps |
为设置AWS工具 PowerShell。 |
| 将军 AWS |
任务 | 描述 | 所需技能 |
---|---|---|
安装 NuGet 软件包。 |
| 应用程序开发人员 |
配置日志目标。 |
有关示例配置文件,请参阅此模式的其他信息部分。运行应用程序时,NLog将写入日志消息并将其发送到 Lo CloudWatch gs。 | 应用程序开发人员 |
任务 | 描述 | 所需技能 |
---|---|---|
验证日志记录。 | 按照日志文档中查看发送到日志的 CloudWatch 日志数据中的 CloudWatch 说明进行操作。验证是否正在为记录日志事件。 NET应用程序。如果未记录日志事件,请参阅此模式中的故障排除部分。 | 将军 AWS |
监控. NET应用程序堆栈。 | 根据您的用例 CloudWatch 的需要在中配置监控。您可以使用 “CloudWatch 日志见解”、“CloudWatch 指标见解” 和 “CloudWatch 应用程序见解” 来监控您的。 NET工作量。您还可以配置警报以接收警报,还可以创建用于从单一视图监控工作负载的自定义控制面板。 | 将军 AWS |
故障排除
事务 | 解决方案 |
---|---|
日志数据不会显示在 CloudWatch 日志中。 | 确保该IAM策略已附加到 L CloudWatch ogs 所IAM扮演的角色。有关说明,请参阅操作说明部分的设置访问权限和工具部分。 |
相关资源
使用日志组和日志流(CloudWatch 日志文档)
Amazon CloudWatch Logs 和. 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>