NLog를 사용하여 AmazonNET Logs에서 . CloudWatch 애플리케이션에 대한 로깅 구성 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

NLog를 사용하여 AmazonNET Logs에서 . CloudWatch 애플리케이션에 대한 로깅 구성

작성자: Bibhuti Sahu(AWS) 및 Rob Hill(AWS)(AWS)

환경: 프로덕션

기술: 관리 및 거버넌스, DevOps, 웹 및 모바일 앱

워크로드: Microsoft

AWS 서비스: Amazon CloudWatch Logs

요약

이 패턴은 NLog 오픈 소스 로깅 프레임워크를 사용하여 NET Logs에서 .Word 애플리케이션 사용량 및 이벤트를 로깅하는 방법을 설명합니다. CloudWatch CloudWatch 콘솔에서 애플리케이션의 로그 메시지를 거의 실시간으로 볼 수 있습니다. 또한 지표를 설정하고 지표 임계값이 초과될 경우 알리도록 경보를 구성할 수 있습니다. CloudWatch Application Insights를 사용하면 모니터링되는 애플리케이션의 잠재적 문제를 보여주는 자동 또는 사용자 지정 대시보드를 볼 수 있습니다. CloudWatch Application Insights는 애플리케이션 및 인프라에서 지속적인 문제를 빠르게 격리할 수 있도록 설계되었습니다.

로그 메시지를 CloudWatch Logs에 쓰려면 AWS.Logger.NLog NuGet 패키지를 .NET 프로젝트에 추가합니다. 그런 다음 CloudWatch Logs를 대상으로 사용하도록 NLog.config 파일을 업데이트합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정.

  • 다음과 같은 .NET 웹 또는 콘솔 애플리케이션입니다.

    • 지원되는 .NET 사용 프레임워크 또는 .NET 코어 버전. 자세한 내용은 제품 버전을 참조하세요.

    • NLog를 사용하여 Application Insights로 로그 데이터를 전송합니다.

  • IAM 서비스에 대한 AWS 역할을 생성할 수 있는 권한입니다. 자세한 내용은 서비스 역할 권한을 참조하세요.

  • 역할을 AWS 서비스에 전달할 수 있는 권한입니다. 자세한 내용은 역할을 AWS 서비스에 전달할 수 있는 사용자 권한 부여를 참조하세요.

제품 버전

  • .NET 프레임워크 버전 3.5 이상

  • .NET 코어 버전 1.0.1, 2.0.0 이상

아키텍처

대상 기술 스택  

  • NLog

  • Amazon CloudWatch 로그

대상 아키텍처 

ClodWatch NET Logs에 .Word 애플리케이션의 로그 데이터를 기록하는 NLog의 아키텍처 다이어그램입니다.
  1. .NET 애플리케이션은 NLog 로깅 프레임워크에 로그 데이터를 씁니다.

  2. NLog는 로그 데이터를 CloudWatch Logs에 씁니다.

  3. CloudWatch 경보와 사용자 지정 대시보드를 사용하여 .NET 애플리케이션을 모니터링합니다.

도구

AWS 서비스

  • Amazon CloudWatch Application Insights는 애플리케이션 및 기본 AWS 리소스의 상태를 관찰하는 데 도움이 됩니다.

  • Amazon CloudWatch Logs를 사용하면 모든 시스템, 애플리케이션 및 AWS 서비스의 로그를 중앙 집중화하여 안전하게 모니터링하고 보관할 수 있습니다.

  • AWS Identity and Access Management(IAM)를 사용하면 인증되고 사용할 권한이 있는 사용자를 제어하여 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있습니다.

  • AWS Tools for PowerShell는 PowerShell 명령줄의 AWS 리소스에서 작업을 스크립트하는 데 도움이 되는 PowerShell 모듈입니다.

기타 도구

  • Logger.NLog는 로그 데이터를 CloudWatch Logs에 기록하는 NLog 대상입니다.

  • NLog는 데이터베이스, 로그 파일 또는 콘솔과 같은 대상에 로그 데이터를 작성하는 데 도움이 되는 .NET 플랫폼을 위한 오픈 소스 로깅 프레임워크입니다.

  • PowerShell는 Windows, Linux 및 macOS에서 실행되는 Microsoft 자동화 및 구성 관리 프로그램입니다.

  • Visual Studio는 컴파일러, 코드 완성 도구, 그래픽 디자이너 및 소프트웨어 개발을 지원하는 기타 기능을 포함하는 통합 개발 환경(IDE)입니다.

모범 사례

에픽

작업설명필요한 기술

IAM 정책을 생성합니다.

IAM 설명서의 JSON 편집기를 사용하여 정책 생성의 지침을 따릅니다. 다음 JSON 정책을 입력합니다.이 정책은 CloudWatch Logs가 로그를 읽고 쓰는 데 필요한 최소 권한 권한을 갖습니다.

{ "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 DevOpsWord

IAM 역할을 생성합니다.

역할 생성의 지침에 따라 AWS 설명서의 Word 서비스에 권한을 위임합니다. IAM 이전에 생성한 정책을 선택합니다. 이는 role CloudWatch Logs가 로깅 작업을 수행하기 위해 가정하는 것입니다.

AWS 관리자, AWS DevOpsWord

AWS Tools for PowerShell를 설정합니다.

  1. AWS Tools for PowerShell 설치의 운영 체제 지침을 따릅니다.

  2. AWS Tools for PowerShell cmdlets를 사용하여 액세스 키와 보안 키를 프로파일에 저장합니다. 지침은 AWS Tools for PowerShell 설명서의 프로필 관리를 참조하세요.

일반 AWS
작업설명필요한 기술

NuGet 패키지를 설치합니다.

  1. Visual Studio에서 파일을 선택한 다음 프로젝트 또는 솔루션 열기를 선택합니다.

  2. NLog를 설치할 프로젝트를 선택합니다.

  3. Visual Studio에서 도구, NuGet Package Manager, Package Manager 콘솔을 선택합니다.

  4. 다음 명령을 입력하여 AWS.Logger.NLog NuGet 패키지를 설치합니다.

    Install-Package AWS.Logger.NLog -Version 3.1.0
앱 개발자

로깅 대상을 구성합니다.

  1. NLog.config 파일을 엽니다.

  2. 대상 typeAWSTarget을 입력합니다.

  3. 대상 logGroup에 사용할 로그 그룹 이름을 입력합니다. 로그 그룹이 아직 존재하지 않는 경우 제공된 이름을 가진 새 로그 그룹이 자동으로 생성됩니다.

  4. 대상에 CloudWatch 로그가 구성된 AWS 리전을 region입력합니다.

  5. 대상 profile에 액세스 키와 보안 암호 키를 저장하기 위해 이전에 생성한 프로필의 이름을 입력합니다.

  6. NLog.config 파일을 저장하고 닫습니다.

샘플 구성 파일은 이 패턴의 추가 정보 섹션을 참조하세요. 애플리케이션을 실행하면 NLog는 로그 메시지를 작성하여 CloudWatch Logs로 전송합니다.

앱 개발자
작업설명필요한 기술

로깅 검증.

CloudWatch 로그로 전송된 로그 데이터 보기의 지침을 따릅니다. CloudWatch .NET 애플리케이션에 대해 로그 이벤트가 기록되고 있는지 확인합니다. 로그 이벤트가 기록되지 않는 경우 이 패턴의 문제 해결 섹션을 참조하세요.

일반 AWS

.NET 애플리케이션 스택을 모니터링합니다.

사용 사례에 따라 필요에 따라 in CloudWatch 모니터링을 구성합니다. CloudWatch Logs Insights, CloudWatch Metrics InsightsCloudWatch Application Insights를 사용하여 .NET 워크로드를 모니터링할 수 있습니다. 알림을 받을 수 있도록 경보를 구성하고 단일 보기에서 워크로드를 모니터링하기 위한 사용자 지정 대시보드를 만들 수도 있습니다.

일반 AWS

문제 해결

문제Solution

로그 데이터는 CloudWatch 로그에 표시되지 않습니다.

IAM 정책이 CloudWatch Logs가 수임하는 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>