기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
빠른 시작: Windows Server 2012 및 Windows Server 2008을 실행하는 Amazon EC2 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정
작은 정보
CloudWatch는 EC2 인스턴스 및 온프레미스 서버에서 로그와 지표를 모두 수집할 수 있는 통합 에이전트가 새롭게 추가되었습니다. 새롭게 통합된 CloudWatch 에이전트의 사용을 권장합니다. 자세한 정보는 CloudWatch Logs 시작하기 섹션을 참조하세요.
이번 섹션의 나머지 부분에서는 이전 CloudWatch Logs 에이전트의 사용에 대해서 설명하겠습니다.
Windows Server 2012 및 Windows Server 2008을 실행하는 Amazon EC2 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정
다음 단계를 사용하면 Windows Server 2012 및 Windows Server 2008을 실행하는 인스턴스가 로그를 CloudWatch Logs로 보내도록 설정할 수 있습니다.
샘플 구성 파일 다운로드
컴퓨터에 다음 샘플 JSON 파일을 다운로드합니다. AWS.EC2.Windows.CloudWatch.json
CloudWatch에 JSON 파일 구성
JSON 구성 파일에서 선택 항목을 지정하여 CloudWatch로 전송할 로그를 결정합니다. 이 파일을 만들고 선택 항목을 지정하는 프로세스를 완료하는 데 30분 이상 걸릴 수 있습니다. 이 작업을 한 번 완료한 후 모든 인스턴스에 구성 파일을 재사용할 수 있습니다.
1단계: CloudWatch Logs 활성화
JSON 파일의 상단에서 IsEnabled
를 "false"에서 "true"로 변경합니다.
"IsEnabled": true,
2단계: CloudWatch의 설정 구성
자격 증명, 리전, 로그 그룹 이름, 로그 스트림 네임스페이스를 지정합니다. 그러면 인스턴스가 CloudWatch Logs로 로그 데이터를 보낼 수 있습니다. 동일한 로그 데이터를 여러 위치로 보내려는 경우, ID가 고유하고(예: "CloudWatchLogs2" 및 "CloudWatchLogs3") ID별로 리전이 다른 섹션을 추가할 수 있습니다.
CloudWatch Logs로 로그 데이터를 보내기 위해 설정을 구성하려면
-
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}" } },
-
AccessKey
및SecretKey
필드는 비워둡니다. IAM 역할을 사용하여 자격 증명을 구성합니다. -
Region
에 로그 데이터를 보내려는 리전을 입력합니다(예:us-east-2
). -
LogGroup
에 로그 그룹의 이름을 입력합니다. 이 이름은 CloudWatch 콘솔에서 로그 그룹 화면에 나타납니다. -
LogStream
에 대상 로그 스트림을 입력합니다. 이 이름은 CloudWatch 콘솔에서 로그 그룹 > 스트림 화면에 나타납니다.{instance_id}
를 사용하는 경우 기본적으로 로그 스트림 이름은 이 인스턴스의 인스턴스 ID입니다.아직 존재하지 않는 로그 스트림 이름을 지정하면 CloudWatch Logs에서 이 이름을 자동으로 생성합니다. 리터럴 문자열, 미리 정의된 변수
{instance_id}
,{hostname}
및{ip_address}
, 또는 이들의 조합을 사용하여 로그 스트림 이름을 정의할 수 있습니다.
3단계: 전송할 데이터 구성
이벤트 로그 데이터, ETW(Windows용 이벤트 추적) 데이터 및 기타 로그 데이트를 CloudWatch Logs로 전송할 수 있습니다.
CloudWatch Logs로 Windows 애플리케이션 이벤트 로그 데이터를 보내려면
-
JSON 파일에서
ApplicationEventLog
섹션을 찾습니다.{ "Id": "ApplicationEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Application", "Levels": "1" } },
-
Levels
에서 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.-
1
- 오류 메시지만 업로드됩니다. -
2
- 경고 메시지만 업로드됩니다. -
4
- 정보 메시지만 업로드됩니다.
값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어 값
3
을 지정하면 오류 메시지(1
)와 경고 메시지(2
)가 업로드됩니다. 값7
을 지정하면 오류 메시지(1
), 경고 메시지(2
) 및 정보 메시지(4
)가 업로드됩니다. -
CloudWatch Logs로 보안 로그 데이터를 보내려면
-
JSON 파일에서
SecurityEventLog
섹션을 찾습니다.{ "Id": "SecurityEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Security", "Levels": "7" } },
-
모든 메시지를 업로드하려면
Levels
에7
을 입력합니다.
CloudWatch Logs에 시스템 이벤트 로그 데이터를 보내려면
-
JSON 파일에서
SystemEventLog
섹션을 찾습니다.{ "Id": "SystemEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "System", "Levels": "7" } },
-
Levels
에서 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.-
1
- 오류 메시지만 업로드됩니다. -
2
- 경고 메시지만 업로드됩니다. -
4
- 정보 메시지만 업로드됩니다.
값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어 값
3
을 지정하면 오류 메시지(1
)와 경고 메시지(2
)가 업로드됩니다. 값7
을 지정하면 오류 메시지(1
), 경고 메시지(2
) 및 정보 메시지(4
)가 업로드됩니다. -
CloudWatch Logs로 다른 유형의 이벤트 로그 데이터를 보내려면
-
JSON 파일에서 새 섹션을 추가합니다. 각 섹션에는 고유한
Id
가 있어야 합니다.{ "Id": "
Id-name
", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Log-name
", "Levels": "7" } }, -
Id
에 업로드할 로그의 이름을 입력합니다(예:WindowsBackup
). -
LogName
에 업로드할 로그의 이름을 입력합니다. 로그 이름은 다음과 같이 확인할 수 있습니다.-
이벤트 뷰어를 엽니다.
-
탐색 창에서 Applications and Services Logs(응용 프로그램 및 서비스 로그)를 선택합니다.
-
로그로 이동한 다음 작업, 속성을 선택합니다.
-
-
Levels
에서 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.-
1
- 오류 메시지만 업로드됩니다. -
2
- 경고 메시지만 업로드됩니다. -
4
- 정보 메시지만 업로드됩니다.
값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어 값
3
을 지정하면 오류 메시지(1
)와 경고 메시지(2
)가 업로드됩니다. 값7
을 지정하면 오류 메시지(1
), 경고 메시지(2
) 및 정보 메시지(4
)가 업로드됩니다. -
CloudWatch Logs로 Windows용 이벤트 추적 데이터를 보내려면
ETW(Windows용 이벤트 추적)는 애플리케이션이 로그를 기록할 수 있는 효율적이고 세부적인 로깅 메커니즘을 제공합니다. 로깅 세션을 시작하고 중지할 수 있는 세션 관리자가 각 ETW를 제어합니다. 각 세션에는 한 공급자와 하나 또는 그 이상의 소비자가 있습니다.
-
JSON 파일에서
ETW
섹션을 찾습니다.{ "Id": "ETW", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Microsoft-Windows-WinINet/Analytic", "Levels": "7" } },
-
LogName
에 업로드할 로그의 이름을 입력합니다. -
Levels
에서 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.-
1
- 오류 메시지만 업로드됩니다. -
2
- 경고 메시지만 업로드됩니다. -
4
- 정보 메시지만 업로드됩니다.
값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어 값
3
을 지정하면 오류 메시지(1
)와 경고 메시지(2
)가 업로드됩니다. 값7
을 지정하면 오류 메시지(1
), 경고 메시지(2
) 및 정보 메시지(4
)가 업로드됩니다. -
CloudWatch Logs로 사용자 지정 로그(텍스트 기반 로그 파일)를 보내려면
-
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" } },
-
LogDirectoryPath
에서 인스턴스에 로그가 저장된 경로를 입력합니다. -
TimestampFormat
에 사용할 타임스탬프 형식을 입력합니다. 지원되는 값에 대한 자세한 내용은 MSDN의 사용자 지정 날짜 및 시간 형식 문자열주제를 참조하세요. 중요
원본 로그 파일에는 각 로그 줄의 시작 부분에 타임스탬프가 있어야 하고 타임스탬프 뒤에는 공백이 있어야 합니다.
-
Encoding
에 사용할 파일 인코딩을 입력합니다(예: UTF-8). 지원되는 값에 대한 자세한 내용은 MSDN의 인코딩 클래스주제를 참조하세요. 참고
표시 이름이 아니라 인코딩 이름을 사용하세요.
-
(선택 사항)
Filter
에 로그 이름의 접두사를 입력합니다. 모든 파일을 모니터링하려면 이 파라미터를 공백으로 둡니다. 지원되는 값에 대한 자세한 내용은 MSDN의 FileSystemWatcherFilter 속성주제를 참조하세요. -
(선택 사항)
CultureName
에 타임스탬프가 기록되는 로캘을 입력합니다.CultureName
이 공백이면 기본적으로 Windows 인스턴스에서 현재 사용 중인 것과 같은 로캘로 설정됩니다. 지원되는 값에 대한 자세한 내용은 MSDN에서 제품 동작주제의 표에 있는 Language tag
열을 참조하세요.참고
div
,div-MV
,hu
및hu-HU
값은 지원되지 않습니다. -
(선택 사항)
TimeZoneKind
에Local
또는UTC
를 입력합니다. 로그의 타임스탬프에 표준 시간대 정보가 포함되어 있지 않을 때 이렇게 설정하여 표준 시간대 정보를 제공할 수 있습니다. 이 파라미터가 공백으로 남겨져 있고 타임스탬프에 시간대 정보가 포함되어 있지 않으면 CloudWatch Logs가 기본적으로 현지 표준 시간대로 설정됩니다. 타임스탬프에 표준 시간대 정보가 이미 포함된 경우 이 파라미터는 무시됩니다. -
(선택 사항)
LineCount
에 로그 파일을 식별할 헤더의 줄 수를 입력합니다. 예를 들어 IIS 로그 파일에 있는 헤더들은 사실상 동일합니다.5
를 입력하면 로그 파일 헤더에서 처음 나오는 세 줄을 읽어 식별하는 식입니다. IIS 로그 파일에서 처음 나오는 세 줄은 날짜와 타임스탬프이지만, 로그 파일 간에 타임스탬프가 반드시 다르지는 않습니다. 이러한 이유로, 로그 파일에 고유한 지문을 남기기 위해 실제 로그 데이터를 한 줄 이상 포함하는 것이 좋습니다.
CloudWatch Logs로 IIS 로그 데이터를 보내려면
-
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" } },
-
LogDirectoryPath
에 개별 사이트에 대해 IIS 로그를 저장할 폴더를 입력합니다(예:C:\inetpub\logs\LogFiles\W3SVC
).n
참고
W3C 로그 형식만 지원됩니다. IIS, NCSA 및 사용자 지정 형식은 지원되지 않습니다.
-
TimestampFormat
에 사용할 타임스탬프 형식을 입력합니다. 지원되는 값에 대한 자세한 내용은 MSDN의 사용자 지정 날짜 및 시간 형식 문자열주제를 참조하세요. -
Encoding
에 사용할 파일 인코딩을 입력합니다(예: UTF-8). 지원되는 값에 대한 자세한 내용은 MSDN의 인코딩 클래스주제를 참조하세요. 참고
표시 이름이 아니라 인코딩 이름을 사용하세요.
-
(선택 사항)
Filter
에 로그 이름의 접두사를 입력합니다. 모든 파일을 모니터링하려면 이 파라미터를 공백으로 둡니다. 지원되는 값에 대한 자세한 내용은 MSDN의 FileSystemWatcherFilter 속성주제를 참조하세요. -
(선택 사항)
CultureName
에 타임스탬프가 기록되는 로캘을 입력합니다.CultureName
이 공백이면 기본적으로 Windows 인스턴스에서 현재 사용 중인 것과 같은 로캘로 설정됩니다. 지원되는 값에 대한 자세한 내용은 MSDN에서 제품 동작주제의 표에 있는 Language tag
열을 참조하세요.참고
div
,div-MV
,hu
및hu-HU
값은 지원되지 않습니다. -
(선택 사항)
TimeZoneKind
에Local
또는UTC
를 입력합니다. 로그의 타임스탬프에 표준 시간대 정보가 포함되어 있지 않을 때 이렇게 설정하여 표준 시간대 정보를 제공할 수 있습니다. 이 파라미터가 공백으로 남겨져 있고 타임스탬프에 시간대 정보가 포함되어 있지 않으면 CloudWatch Logs가 기본적으로 현지 표준 시간대로 설정됩니다. 타임스탬프에 표준 시간대 정보가 이미 포함된 경우 이 파라미터는 무시됩니다. -
(선택 사항)
LineCount
에 로그 파일을 식별할 헤더의 줄 수를 입력합니다. 예를 들어 IIS 로그 파일에 있는 헤더들은 사실상 동일합니다.5
를 입력하면 로그 파일 헤더에서 처음 나오는 다섯 줄을 읽어 식별하는 식입니다. IIS 로그 파일에서 처음 나오는 세 줄은 날짜와 타임스탬프이지만, 로그 파일 간에 타임스탬프가 반드시 다르지는 않습니다. 이러한 이유로, 로그 파일에 고유한 지문을 남기기 위해 실제 로그 데이터를 한 줄 이상 포함하는 것이 좋습니다.
4단계: 흐름 제어(Flow Control) 구성
각 데이터 형식의 Flows
섹션에 해당 대상이 있어야 합니다. 예를 들어 사용자 지정 로그, ETW 로그 및 시스템 로그를 CloudWatch Logs로 전송하려면 Flows
섹션에 (CustomLogs,ETW,SystemEventLog),CloudWatchLogs
를 추가합니다.
주의
유효하지 않은 단계를 추가하면 흐름이 차단됩니다. 예를 들어, 디스크 지표 단계를 추가하지만 인스턴스에 디스크가 없는 경우 흐름의 모든 단계가 차단됩니다.
같은 로그 파일을 두 개 이상의 대상으로 보낼 수 있습니다. 예를 들어, 애플리케이션 로그를 CloudWatchLogs
섹션에 정의된 두 개의 대상으로 보내려면 Flows
섹션에 ApplicationEventLog,(CloudWatchLogs,CloudWatchLogs2)
를 추가합니다.
흐름 제어를 구성하는 방법
-
AWS.EC2.Windows.CloudWatch.json
파일에서Flows
섹션을 찾습니다."Flows": { "Flows": [ "PerformanceCounter,CloudWatch", "(PerformanceCounter,PerformanceCounter2), CloudWatch2", "(CustomLogs, ETW, SystemEventLog),CloudWatchLogs", "CustomLogs, CloudWatchLogs2", "ApplicationEventLog,(CloudWatchLogs, CloudWatchLogs2)" ] }
-
Flows
에서 업로드할 각 데이터 형식(예:ApplicationEventLog
) 및 대상(예:CloudWatchLogs
)을 추가합니다.
이제 JSON 파일 편집이 끝났습니다. 이후 단계에서 사용하게 됩니다.
에이전트 시작
Windows Server 2012 또는 Windows Server 2008을 실행하는 Amazon EC2 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정하려면 EC2Config 서비스(EC2Config.exe)
를 사용합니다. 인스턴스에 EC2Config 4.0 이상이 있어야 다음 절차를 사용할 수 있습니다.
EC2Config 4.x를 사용하여 CloudWatch를 구성하려면
-
이 절차에서 앞서 편집한
AWS.EC2.Windows.CloudWatch.json
파일의 인코딩을 확인합니다. BOM 없는 UTF-8 인코딩만 지원됩니다. Windows Server 2008 - 2012 R2 인스턴스에서 다음 폴더에 파일을 저장합니다.C:\Program Files\Amazon\SSM\Plugins\awsCloudWatch\
. -
Windows Services 제어판을 사용하거나 PowerShell에서 다음 명령을 사용하여 SSM 에이전트(
AmazonSSMAgent.exe
)를 시작하거나 다시 시작합니다.PS C:\>
Restart-Service AmazonSSMAgent
SSM 에이전트가 다시 시작한 후 구성 파일을 감지하고 CloudWatch 통합에 맞게 인스턴스를 구성합니다. 로컬 구성 파일에서 파라미터와 설정을 변경할 경우 SSM 에이전트를 다시 시작하여 변경 사항을 선택해야 합니다. 인스턴스에서 CloudWatch 통합을 비활성화하려면 IsEnabled
를 false
로 변경하고 구성 파일에 변경 사항을 저장합니다.