빠른 시작: CloudWatch Logs 에이전트를 사용하여 Windows Server 2016을 실행하는 Amazon EC2 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정 - Amazon CloudWatch Logs

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

빠른 시작: CloudWatch Logs 에이전트를 사용하여 Windows Server 2016을 실행하는 Amazon EC2 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정

작은 정보

CloudWatch는 EC2 인스턴스 및 온프레미스 서버에서 로그와 지표를 모두 수집할 수 있는 통합 에이전트가 새롭게 추가되었습니다. 새롭게 통합된 CloudWatch 에이전트의 사용을 권장합니다. 자세한 정보는 CloudWatch Logs 시작하기 섹션을 참조하세요.

이번 섹션의 나머지 부분에서는 이전 CloudWatch Logs 에이전트의 사용에 대해서 설명하겠습니다.

이전 CloudWatch Logs 에이전트를 사용하여 Windows Server 2016을 실행하는 Amazon EC2 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정

Windows Server 2016을 실행하는 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정하는 방법은 여러 가지가 있습니다. 이 섹션의 단계에서는 Systems Manager Run Command를 사용합니다. 다른 방법에 대한 자세한 내용은 Amazon CloudWatch로 로그, 이벤트, 성능 카운터 전송 섹션을 참조하세요.

샘플 구성 파일 다운로드

컴퓨터에 다음 샘플 파일을 다운로드합니다. AWS.EC2.Windows.CloudWatch.json

CloudWatch에 JSON 파일 구성

구성 파일에서 선택 항목을 지정하여 CloudWatch로 전송할 로그를 결정합니다. 이 파일을 만들고 선택 항목을 지정하는 프로세스를 완료하는 데 30분 이상 걸릴 수 있습니다. 이 작업을 한 번 완료한 후 모든 인스턴스에 구성 파일을 재사용할 수 있습니다.

1단계: CloudWatch Logs 활성화

JSON 파일의 상단에서 IsEnabled를 "false"에서 "true"로 변경합니다.

"IsEnabled": true,

2단계: CloudWatch의 설정 구성

자격 증명, 리전, 로그 그룹 이름, 로그 스트림 네임스페이스를 지정합니다. 그러면 인스턴스가 CloudWatch Logs로 로그 데이터를 보낼 수 있습니다. 동일한 로그 데이터를 여러 위치로 보내려는 경우, ID가 고유하고(예: "CloudWatchLogs2" 및 "CloudWatchLogs3") ID별로 리전이 다른 섹션을 추가할 수 있습니다.

CloudWatch Logs로 로그 데이터를 보내기 위해 설정을 구성하려면
  1. JSON 파일에서 CloudWatchLogs 섹션을 찾습니다.

    { "Id": "CloudWatchLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "Default-Log-Group", "LogStream": "{instance_id}" } },
  2. AccessKeySecretKey 필드는 비워둡니다. IAM 역할을 사용하여 자격 증명을 구성합니다.

  3. Region에 로그 데이터를 보내려는 리전을 입력합니다(예: us-east-2).

  4. LogGroup에 로그 그룹의 이름을 입력합니다. 이 이름은 CloudWatch 콘솔에서 로그 그룹 화면에 나타납니다.

  5. LogStream에 대상 로그 스트림을 입력합니다. 이 이름은 CloudWatch 콘솔에서 로그 그룹 > 스트림 화면에 나타납니다.

    {instance_id}를 사용하는 경우 기본적으로 로그 스트림 이름은 이 인스턴스의 인스턴스 ID입니다.

    아직 존재하지 않는 로그 스트림 이름을 지정하면 CloudWatch Logs에서 이 이름을 자동으로 생성합니다. 리터럴 문자열, 미리 정의된 변수 {instance_id}, {hostname}{ip_address}, 또는 이들의 조합을 사용하여 로그 스트림 이름을 정의할 수 있습니다.

3단계: 전송할 데이터 구성

이벤트 로그 데이터, ETW(Windows용 이벤트 추적) 데이터 및 기타 로그 데이트를 CloudWatch Logs로 전송할 수 있습니다.

CloudWatch Logs로 Windows 애플리케이션 이벤트 로그 데이터를 보내려면
  1. JSON 파일에서 ApplicationEventLog 섹션을 찾습니다.

    { "Id": "ApplicationEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Application", "Levels": "1" } },
  2. Levels에서 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.

    • 1 - 오류 메시지만 업로드됩니다.

    • 2 - 경고 메시지만 업로드됩니다.

    • 4 - 정보 메시지만 업로드됩니다.

    값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어 값 3을 지정하면 오류 메시지(1)와 경고 메시지(2)가 업로드됩니다. 값 7을 지정하면 오류 메시지(1), 경고 메시지(2) 및 정보 메시지(4)가 업로드됩니다.

CloudWatch Logs로 보안 로그 데이터를 보내려면
  1. JSON 파일에서 SecurityEventLog 섹션을 찾습니다.

    { "Id": "SecurityEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Security", "Levels": "7" } },
  2. 모든 메시지를 업로드하려면 Levels7을 입력합니다.

CloudWatch Logs에 시스템 이벤트 로그 데이터를 보내려면
  1. JSON 파일에서 SystemEventLog 섹션을 찾습니다.

    { "Id": "SystemEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "System", "Levels": "7" } },
  2. Levels에서 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.

    • 1 - 오류 메시지만 업로드됩니다.

    • 2 - 경고 메시지만 업로드됩니다.

    • 4 - 정보 메시지만 업로드됩니다.

    값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어 값 3을 지정하면 오류 메시지(1)와 경고 메시지(2)가 업로드됩니다. 값 7을 지정하면 오류 메시지(1), 경고 메시지(2) 및 정보 메시지(4)가 업로드됩니다.

CloudWatch Logs로 다른 유형의 이벤트 로그 데이터를 보내려면
  1. JSON 파일에서 새 섹션을 추가합니다. 각 섹션에는 고유한 Id가 있어야 합니다.

    { "Id": "Id-name", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Log-name", "Levels": "7" } },
  2. Id에 업로드할 로그의 이름을 입력합니다(예: WindowsBackup).

  3. LogName에 업로드할 로그의 이름을 입력합니다. 로그 이름은 다음과 같이 확인할 수 있습니다.

    1. 이벤트 뷰어를 엽니다.

    2. 탐색 창에서 Applications and Services Logs(응용 프로그램 및 서비스 로그)를 선택합니다.

    3. 로그로 이동한 다음 작업, 속성을 선택합니다.

  4. Levels에서 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.

    • 1 - 오류 메시지만 업로드됩니다.

    • 2 - 경고 메시지만 업로드됩니다.

    • 4 - 정보 메시지만 업로드됩니다.

    값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어 값 3을 지정하면 오류 메시지(1)와 경고 메시지(2)가 업로드됩니다. 값 7을 지정하면 오류 메시지(1), 경고 메시지(2) 및 정보 메시지(4)가 업로드됩니다.

CloudWatch Logs로 Windows용 이벤트 추적 데이터를 보내려면

ETW(Windows용 이벤트 추적)는 애플리케이션이 로그를 기록할 수 있는 효율적이고 세부적인 로깅 메커니즘을 제공합니다. 로깅 세션을 시작하고 중지할 수 있는 세션 관리자가 각 ETW를 제어합니다. 각 세션에는 한 공급자와 하나 또는 그 이상의 소비자가 있습니다.

  1. JSON 파일에서 ETW 섹션을 찾습니다.

    { "Id": "ETW", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Microsoft-Windows-WinINet/Analytic", "Levels": "7" } },
  2. LogName에 업로드할 로그의 이름을 입력합니다.

  3. Levels에서 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.

    • 1 - 오류 메시지만 업로드됩니다.

    • 2 - 경고 메시지만 업로드됩니다.

    • 4 - 정보 메시지만 업로드됩니다.

    값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어 값 3을 지정하면 오류 메시지(1)와 경고 메시지(2)가 업로드됩니다. 값 7을 지정하면 오류 메시지(1), 경고 메시지(2) 및 정보 메시지(4)가 업로드됩니다.

CloudWatch Logs로 사용자 지정 로그(텍스트 기반 로그 파일)를 보내려면
  1. JSON 파일에서 CustomLogs 섹션을 찾습니다.

    { "Id": "CustomLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\CustomLogs\\", "TimestampFormat": "MM/dd/yyyy HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "Local", "LineCount": "5" } },
  2. LogDirectoryPath에서 인스턴스에 로그가 저장된 경로를 입력합니다.

  3. TimestampFormat에 사용할 타임스탬프 형식을 입력합니다. 지원되는 값에 대한 자세한 내용은 MSDN의 사용자 지정 날짜 및 시간 형식 문자열 주제를 참조하세요.

    중요

    원본 로그 파일에는 각 로그 줄의 시작 부분에 타임스탬프가 있어야 하고 타임스탬프 뒤에는 공백이 있어야 합니다.

  4. Encoding에 사용할 파일 인코딩을 입력합니다(예: UTF-8). 지원되는 값 목록은 MSDN에서 Encoding Class 항목을 참조하세요.

    참고

    표시 이름이 아니라 인코딩 이름을 사용하세요.

  5. (선택 사항) Filter에 로그 이름의 접두사를 입력합니다. 모든 파일을 모니터링하려면 이 파라미터를 공백으로 둡니다. 지원되는 값에 대한 자세한 내용은 MSDN의 FileSystemWatcherFilter 속성 주제를 참조하세요.

  6. (선택 사항) CultureName에 타임스탬프가 기록되는 로캘을 입력합니다. CultureName이 공백이면 기본적으로 Windows 인스턴스에서 현재 사용 중인 것과 같은 로캘로 설정됩니다. 자세한 내용은 MSDN에서 제품 동작 주제의 표에 있는 Language tag 열을 참조하세요.

    참고

    div, div-MV, huhu-HU 값은 지원되지 않습니다.

  7. (선택 사항) TimeZoneKindLocal 또는 UTC를 입력합니다. 로그의 타임스탬프에 표준 시간대 정보가 포함되어 있지 않을 때 이렇게 설정하여 표준 시간대 정보를 제공할 수 있습니다. 이 파라미터가 공백으로 남겨져 있고 타임스탬프에 시간대 정보가 포함되어 있지 않으면 CloudWatch Logs가 기본적으로 현지 표준 시간대로 설정됩니다. 타임스탬프에 표준 시간대 정보가 이미 포함된 경우 이 파라미터는 무시됩니다.

  8. (선택 사항) LineCount에 로그 파일을 식별할 헤더의 줄 수를 입력합니다. 예를 들어 IIS 로그 파일에 있는 헤더들은 사실상 동일합니다. 5를 입력하면 로그 파일 헤더에서 처음 나오는 세 줄을 읽어 식별하는 식입니다. IIS 로그 파일에서 처음 나오는 세 줄은 날짜와 타임스탬프이지만, 로그 파일 간에 타임스탬프가 반드시 다르지는 않습니다. 이러한 이유로, 로그 파일에 고유한 지문을 남기기 위해 실제 로그 데이터를 한 줄 이상 포함하는 것이 좋습니다.

CloudWatch Logs로 IIS 로그 데이터를 보내려면
  1. JSON 파일에서 IISLog 섹션을 찾습니다.

    { "Id": "IISLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\inetpub\\logs\\LogFiles\\W3SVC1", "TimestampFormat": "yyyy-MM-dd HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "UTC", "LineCount": "5" } },
  2. LogDirectoryPath에 개별 사이트에 대해 IIS 로그를 저장할 폴더를 입력합니다(예: C:\inetpub\logs\LogFiles\W3SVCn).

    참고

    W3C 로그 형식만 지원됩니다. IIS, NCSA 및 사용자 지정 형식은 지원되지 않습니다.

  3. TimestampFormat에 사용할 타임스탬프 형식을 입력합니다. 지원되는 값에 대한 자세한 내용은 MSDN의 사용자 지정 날짜 및 시간 형식 문자열 주제를 참조하세요.

  4. Encoding에 사용할 파일 인코딩을 입력합니다(예: UTF-8). 지원되는 값에 대한 자세한 내용은 MSDN의 인코딩 클래스 주제를 참조하세요.

    참고

    표시 이름이 아니라 인코딩 이름을 사용하세요.

  5. (선택 사항) Filter에 로그 이름의 접두사를 입력합니다. 모든 파일을 모니터링하려면 이 파라미터를 공백으로 둡니다. 지원되는 값에 대한 자세한 내용은 MSDN의 FileSystemWatcherFilter 속성 주제를 참조하세요.

  6. (선택 사항) CultureName에 타임스탬프가 기록되는 로캘을 입력합니다. CultureName이 공백이면 기본적으로 Windows 인스턴스에서 현재 사용 중인 것과 같은 로캘로 설정됩니다. 지원되는 값에 대한 자세한 내용은 MSDN에서 제품 동작 주제의 표에 있는 Language tag 열을 참조하세요.

    참고

    div, div-MV, huhu-HU 값은 지원되지 않습니다.

  7. (선택 사항) TimeZoneKindLocal 또는 UTC를 입력합니다. 로그의 타임스탬프에 표준 시간대 정보가 포함되어 있지 않을 때 이렇게 설정하여 표준 시간대 정보를 제공할 수 있습니다. 이 파라미터가 공백으로 남겨져 있고 타임스탬프에 시간대 정보가 포함되어 있지 않으면 CloudWatch Logs가 기본적으로 현지 표준 시간대로 설정됩니다. 타임스탬프에 표준 시간대 정보가 이미 포함된 경우 이 파라미터는 무시됩니다.

  8. (선택 사항) LineCount에 로그 파일을 식별할 헤더의 줄 수를 입력합니다. 예를 들어 IIS 로그 파일에 있는 헤더들은 사실상 동일합니다. 5를 입력하면 로그 파일 헤더에서 처음 나오는 다섯 줄을 읽어 식별하는 식입니다. IIS 로그 파일에서 처음 나오는 세 줄은 날짜와 타임스탬프이지만, 로그 파일 간에 타임스탬프가 반드시 다르지는 않습니다. 이러한 이유로, 로그 파일에 고유한 지문을 남기기 위해 실제 로그 데이터를 한 줄 이상 포함하는 것이 좋습니다.

4단계: 흐름 제어(Flow Control) 구성

각 데이터 형식의 Flows 섹션에 해당 대상이 있어야 합니다. 예를 들어 사용자 지정 로그, ETW 로그 및 시스템 로그를 CloudWatch Logs로 전송하려면 Flows 섹션에 (CustomLogs,ETW,SystemEventLog),CloudWatchLogs를 추가합니다.

주의

유효하지 않은 단계를 추가하면 흐름이 차단됩니다. 예를 들어, 디스크 지표 단계를 추가하지만 인스턴스에 디스크가 없는 경우 흐름의 모든 단계가 차단됩니다.

같은 로그 파일을 두 개 이상의 대상으로 보낼 수 있습니다. 예를 들어, 애플리케이션 로그를 CloudWatchLogs 섹션에 정의된 두 개의 대상으로 보내려면 Flows 섹션에 ApplicationEventLog,(CloudWatchLogs,CloudWatchLogs2)를 추가합니다.

흐름 제어를 구성하는 방법
  1. AWS.EC2.Windows.CloudWatch.json 파일에서 Flows 섹션을 찾습니다.

    "Flows": { "Flows": [ "PerformanceCounter,CloudWatch", "(PerformanceCounter,PerformanceCounter2), CloudWatch2", "(CustomLogs, ETW, SystemEventLog),CloudWatchLogs", "CustomLogs, CloudWatchLogs2", "ApplicationEventLog,(CloudWatchLogs, CloudWatchLogs2)" ] }
  2. Flows에서 업로드할 각 데이터 형식(예: ApplicationEventLog) 및 대상(예: CloudWatchLogs)을 추가합니다.

5단계: JSON 내용 저장

이제 JSON 파일 편집이 끝났습니다. 이것을 저장하여 다른 창의 텍스트 편집기에 파일 내용을 붙여넣습니다. 이 절차의 이후 단계에서 이 파일 내용이 필요할 것입니다.

Systems Manager 대한 IAM 역할 생성

Systems Manager Run Command를 사용할 때 인스턴스 자격 증명에 대한 IAM 역할이 필요합니다. 이 역할은 Systems Manager가 인스턴스에 대한 작업을 수행하도록 허용합니다. 자세한 내용은 AWS Systems Manager 사용 설명서Systems Manager 대한 보안 역할 구성을 참조하세요. 기존 인스턴스에 IAM 역할을 연결하는 방법에 대한 내용은 Amazon EC2 사용 설명서IAM 역할을 인스턴스에 연결을 참조하세요.

Systems Manager 사전 조건 확인

Systems Manager Run Command를 사용하여 CloudWatch Logs와의 통합을 구성하기 전에 인스턴스가 최소 요구 사항을 충족하는지 확인해야 합니다. 자세한 내용은 AWS Systems Manager 사용 설명서에서 Systems Manager 사전 조건을 참조하세요.

인터넷 액세스 확인

로그 및 이벤트 데이터를 CloudWatch로 보내려면 Amazon EC2 Windows Server 인스턴스와 관리형 인스턴스에 아웃바운드 인터넷 액세스 권한이 있어야 합니다. 인터넷 액세스를 구성하는 방법에 대한 자세한 내용은 Amazon VPC 사용 설명서인터넷 게이트웨이를 참조하세요.

Systems Manager Run Command를 사용하여 CloudWatch Logs 활성화

Run Command를 사용하면 요청 시 인스턴스의 구성을 관리할 수 있습니다. Systems Manager 문서, 파라미터를 지정하고 하나 이상의 인스턴스에 명령을 실행합니다. 인스턴스의 SSM 에이전트는 명령을 처리하고 지정된 대로 인스턴스를 구성합니다.

Run Command를 사용하여 CloudWatch Logs와 통합을 구성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. SSM 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  3. 탐색 창에서 Run Command를 선택합니다.

  4. Run a command를 선택합니다.

  5. Command document에서 AWS-ConfigureCloudWatch를 선택합니다.

  6. 대상 인스턴스에서 CloudWatch Logs와 통합할 인스턴스를 선택합니다. 이 목록에서 인스턴스가 보이지 않는 경우, Run Command에 대해 구성되지 않은 인스턴스일 수 있습니다. 자세한 내용은 Amazon EC2 사용 설명서Systems Manager 사전 조건을 참조하세요.

  7. 상태에서 활성을 선택합니다.

  8. 속성에 이전 작업에서 생성한 JSON 내용을 복사하여 붙여넣습니다.

  9. 나머지 옵션 필드를 완성하고 Run을 선택합니다.

다음 절차를 이용해 Amazon EC2 콘솔에서 명령 실행 결과를 확인합니다.

콘솔에서 명령 출력을 보는 방법
  1. 명령을 선택합니다.

  2. 출력 탭을 선택합니다.

  3. 출력 보기를 선택합니다. 명령 출력 페이지에 명령 실행 결과가 표시됩니다.