기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 로그
대상 아키텍처
.NET 애플리케이션은 NLog 로깅 프레임워크에 로그 데이터를 씁니다.
NLog는 로그 데이터를 CloudWatch Logs에 씁니다.
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)입니다.
모범 사례
대상 로그 그룹에 대한 보존 정책을 설정합니다. 이는 NLog 구성 외부에서 수행해야 합니다. 기본적으로 로그 데이터는 CloudWatch 로그에 무기한 저장됩니다.
AWS 액세스 키 관리 모범 사례를 준수합니다.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
IAM 정책을 생성합니다. | IAM 설명서의 JSON 편집기를 사용하여 정책 생성의 지침을 따릅니다. 다음 JSON 정책을 입력합니다.이 정책은 CloudWatch Logs가 로그를 읽고 쓰는 데 필요한 최소 권한 권한을 갖습니다.
| AWS 관리자, AWS DevOpsWord |
IAM 역할을 생성합니다. | 역할 생성의 지침에 따라 AWS 설명서의 Word 서비스에 권한을 위임합니다. IAM 이전에 생성한 정책을 선택합니다. 이는 role CloudWatch Logs가 로깅 작업을 수행하기 위해 가정하는 것입니다. | AWS 관리자, AWS DevOpsWord |
AWS Tools for PowerShell를 설정합니다. |
| 일반 AWS |
작업 | 설명 | 필요한 기술 |
---|---|---|
NuGet 패키지를 설치합니다. |
| 앱 개발자 |
로깅 대상을 구성합니다. |
샘플 구성 파일은 이 패턴의 추가 정보 섹션을 참조하세요. 애플리케이션을 실행하면 NLog는 로그 메시지를 작성하여 CloudWatch Logs로 전송합니다. | 앱 개발자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
로깅 검증. | CloudWatch 로그로 전송된 로그 데이터 보기의 지침을 따릅니다. CloudWatch .NET 애플리케이션에 대해 로그 이벤트가 기록되고 있는지 확인합니다. 로그 이벤트가 기록되지 않는 경우 이 패턴의 문제 해결 섹션을 참조하세요. | 일반 AWS |
.NET 애플리케이션 스택을 모니터링합니다. | 사용 사례에 따라 필요에 따라 in CloudWatch 모니터링을 구성합니다. CloudWatch Logs Insights, CloudWatch Metrics Insights 및 CloudWatch Application Insights를 사용하여 .NET 워크로드를 모니터링할 수 있습니다. 알림을 받을 수 있도록 경보를 구성하고 단일 보기에서 워크로드를 모니터링하기 위한 사용자 지정 대시보드를 만들 수도 있습니다. | 일반 AWS |
문제 해결
문제 | Solution |
---|---|
로그 데이터는 CloudWatch 로그에 표시되지 않습니다. | IAM 정책이 CloudWatch Logs가 수임하는 IAM 역할에 연결되어 있는지 확인합니다. 지침은 에픽 섹션의 액세스 및 도구 설정 섹션을 참조하세요. |
관련 리소스
로그 그룹 및 로그 스트림 작업(CloudWatch Logs 설명서)
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>