为配置日志记录。 NET使用 Amazon CloudWatch Logs 中的应用程序 NLog - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为配置日志记录。 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 日志

目标架构

NLog写入日志数据的架构图。 NETAmazon ClodWatch Logs 的应用程序。
  1. 的。 NET应用程序将日志数据写入NLog日志框架。

  2. NLog将日志数据写入 CloudWatch 日志。

  3. 您可以使用 CloudWatch 警报和自定义仪表板来监控。 NET应用程序。

工具

AWS 服务

其他工具

  • 记录器。 NLog是将日志数据记录到 CloudWatch 日志的NLog目标。

  • NLog是一个开源日志框架,用于。 NET可帮助您将日志数据写入目标(例如数据库、日志文件或控制台)的平台。

  • PowerShell是一款在 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管理员,AWS DevOps

创建一个 IAM 角色。

按照IAM文档中创建角色向AWS服务委派权限中的说明进行操作。选择您之前创建的策略。这是 Logs 在执行 CloudWatch 日志操作时所扮演的角色。

AWS管理员,AWS DevOps

为设置AWS工具 PowerShell。

  1. 按照安装AWS工具中适用于您的操作系统的说明进行操作 PowerShell。

  2. 使用 PowerShell cmdlet AWS 工具将您的访问密钥和密钥存储在配置文件中。有关说明,请参阅AWS工具中的管理配置 PowerShell 文件以获取文档。

将军 AWS
任务描述所需技能

安装 NuGet 软件包。

  1. 在 Visual Studio 中,选择文件,然后选择打开项目或解决方案

  2. 选择要安装的项目NLog。

  3. 在 Visual Studio 中,选择工具NuGet 软件包管理器软件包管理器控制台

  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将写入日志消息并将其发送到 Lo CloudWatch gs。

应用程序开发人员
任务描述所需技能

验证日志记录。

按照日志文档中查看发送到日志的 CloudWatch 日志数据中的 CloudWatch 说明进行操作。验证是否正在为记录日志事件。 NET应用程序。如果未记录日志事件,请参阅此模式中的故障排除部分。

将军 AWS

监控. NET应用程序堆栈。

根据您的用例 CloudWatch 的需要在中配置监控。您可以使用 “CloudWatch 日志见解”、“CloudWatch 指标见解” 和 “CloudWatch 应用程序见解” 来监控您的。 NET工作量。您还可以配置警报以接收警报,还可以创建用于从单一视图监控工作负载的自定义控制面板

将军 AWS

故障排除

事务解决方案

日志数据不会显示在 CloudWatch 日志中。

确保该IAM策略已附加到 L CloudWatch ogs 所IAM扮演的角色。有关说明,请参阅操作说明部分的设置访问权限和工具部分。

相关资源

其他信息

以下为示例 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>