기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CloudWatch NLog를 사용하여 Amazon Logs에서.NET 애플리케이션에 대한 로깅을 구성합니다.
작성자: Bibhuti Sahu(AWS) 및 Rob Hill(AWS)(AWS)
환경: 프로덕션 | 기술: 관리 및 거버넌스 DevOps, 웹 및 모바일 앱 | 워크로드: Microsoft |
AWS 서비스: 아마존 CloudWatch 로그 |
요약
이 패턴은 NLog 오픈 소스 로깅 프레임워크를 사용하여 Amazon Logs에.NET 애플리케이션 사용 및 이벤트를 기록하는 방법을 설명합니다. CloudWatch CloudWatch 콘솔에서 애플리케이션의 로그 메시지를 거의 실시간으로 볼 수 있습니다. 또한 지표를 설정하고 지표 임계값이 초과될 경우 알리도록 경보를 구성할 수 있습니다. CloudWatch Application Insights를 사용하면 모니터링되는 애플리케이션의 잠재적 문제를 보여주는 자동화된 대시보드 또는 사용자 지정 대시보드를 볼 수 있습니다. CloudWatch Application Insights는 애플리케이션 및 인프라와 관련된 지속적인 문제를 신속하게 격리할 수 있도록 설계되었습니다.
CloudWatch Logs에 로그 메시지를 쓰려면 AWS.Logger.NLog
NuGet 패키지를 .NET 프로젝트에 추가합니다. 그런 다음 CloudWatch 로그를 대상으로 사용하도록 NLog.config
파일을 업데이트합니다.
사전 조건 및 제한 사항
사전 조건
활성 상태의 AWS 계정.
다음을 수행하는.NET 웹 또는 콘솔 애플리케이션
지원되는 .NET 프레임워크 또는 .NET Core 버전 사용. 자세한 내용은 제품 버전을 참조하세요.
NLogs로 로그 데이터를 Application Insights로 보내기.
AWS 서비스에 대한 IAM 역할 생성 권한. 자세한 내용은 서비스 역할 권한을 참조하세요.
AWS 서비스에 역할 전달 권한. 자세한 내용은 사용자에게 AWS 서비스 역할을 전달할 수 있는 권한 부여를 참조하세요.
제품 버전
.NET Framework 버전 3.5 이상
.NET Core 버전 1.0.1, 2.0.0 이상
아키텍처
대상 기술 스택
NLog
아마존 CloudWatch 로그
대상 아키텍처
![.NET 애플리케이션의 로그 데이터를 Amazon ClodWatch Logs에 쓰는 NLog의 아키텍처 다이어그램.](images/pattern-img/0ac9c3ad-2a28-415f-afc3-7fe3494b2b63/images/daea9f2f-7242-4ed2-843e-655d843dcfdf.png)
.NET 애플리케이션은 NLog 로깅 프레임워크에 로그 데이터를 작성합니다.
NLog는 로그 데이터를 로그에 기록합니다. CloudWatch
CloudWatch 경보 및 사용자 지정 대시보드를 사용하여 .NET 애플리케이션을 모니터링합니다.
도구
서비스
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는 로그에 로그 데이터를 기록하는
NLog 대상입니다. CloudWatch NLog
는 데이터베이스, 로그 파일 또는 콘솔과 같은 대상에 로그 데이터를 쓰는 데 도움이 되는 .NET 플랫폼용 오픈 소스 로깅 프레임워크입니다. PowerShell
Windows, Linux 및 macOS에서 실행되는 Microsoft 자동화 및 구성 관리 프로그램입니다. Visual Studio
는 컴파일러, 코드 완성 도구, 그래픽 디자이너 및 소프트웨어 개발을 지원하는 기타 기능을 포함하는 통합 개발 환경(IDE)입니다.
모범 사례
대상 로그 그룹에 대한 보존 정책을 설정합니다. 이 작업은 NLog 구성 외부에서 수행해야 합니다. 기본적으로 로그 데이터는 CloudWatch Logs에 무기한 저장됩니다.
AWS; 액세스 키 관리를 위한 모범 사례를 준수합니다.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
IAM 정책을 생성합니다. | IAM 설명서의 JSON 편집기를 사용하여 정책 생성 지침을 따릅니다. 로그가 CloudWatch 로그를 읽고 쓸 수 있도록 허용하는 데 필요한 최소 권한이 있는 다음 JSON 정책을 입력합니다.
| AWS 관리자, AWS DevOps |
IAM 역할을 생성합니다. | IAM 설명서의 AWS 서비스에 권한을 위임할 역할 생성 지침을 따릅니다. 이전에 생성한 정책을 선택합니다. 이는 로깅 작업을 수행하는 CloudWatch Logs의 역할입니다. | AWS 관리자, AWS DevOps |
에 대한 AWS 도구를 설정합니다 PowerShell. |
| 일반 AWS |
작업 | 설명 | 필요한 기술 |
---|---|---|
NuGet 패키지를 설치합니다. |
| 앱 개발자 |
로깅 대상을 구성합니다. |
샘플 구성 파일은 이 패턴의 추가 정보 섹션을 참조하세요. 애플리케이션을 실행하면 NLog가 로그 메시지를 작성하여 CloudWatch Logs로 전송합니다. | 앱 개발자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
로깅 검증. | 로그 설명서에서 로그로 CloudWatch 전송된 로그 데이터 보기의 CloudWatch 지침을 따르세요. .NET 애플리케이션에 대한 로그 이벤트가 기록되고 있는지 확인합니다. 로그 이벤트가 기록되지 않는 경우 이 패턴의 문제 해결 섹션을 참조하세요. | 일반 AWS |
.NET 애플리케이션 스택을 모니터링합니다. | 사용 사례에 따라 CloudWatch 필요에 따라 모니터링을 구성하십시오. CloudWatch 로그 인사이트, CloudWatch 메트릭 인사이트, CloudWatch 애플리케이션 인사이트를 사용하여 .NET 워크로드를 모니터링할 수 있습니다. 알림을 받을 수 있도록 경보를 구성하고 단일 보기에서 워크로드를 모니터링하기 위한 사용자 지정 대시보드를 만들 수도 있습니다. | 일반 AWS |
문제 해결
문제 | Solution |
---|---|
로그 데이터는 CloudWatch 로그에 표시되지 않습니다. | CloudWatch Logs가 맡는 IAM 역할에 IAM 정책이 연결되어 있는지 확인하십시오. 지침은 에픽 섹션의 액세스 및 도구 설정 섹션을 참조하세요. |
관련 리소스
로그 그룹 및 로그 스트림 사용 (로그 설명서) 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>