

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

# 마이크로소프트 윈도우용 Amazon Kinesis 에이전트 구성
<a name="configuring-kinesis-agent-windows"></a>

Microsoft Windows용 Amazon Kinesis 에이전트를 시작하기 전에 구성 파일을 생성하여 배포해야 합니다. 구성 파일은 Windows 서버 및 데스크톱 컴퓨터의 데이터를 수집, 변환 및 다양한 AWS 서비스로 스트리밍하는 데 필요한 정보를 제공합니다. 구성 파일은 선택적 변환과 함께 소스를 싱크에 연결하는 소스, 싱크 및 파이프 세트를 정의합니다.

Windows용 Kinesis 에이전트 구성 파일의 이름은`appsettings.json`. 이 파일을`%PROGRAMFILES%\Amazon\AWSKinesisTap`.

**Topics**
+ [기본 구성 구조](basic-configuration-structure.md)
+ [소스 선언](source-object-declarations.md)
+ [sink 선언](sink-object-declarations.md)
+ [파이프 선언](pipe-object-declarations.md)
+ [자동 업데이트 구성](update-configuration-options.md)
+ [Windows용 Kinesis 에이전트 구성 예](configuring-kaw-examples.md)
+ [원격 분석 구성](telemetrics-configuration-option.md)

# 기본 구성 구조
<a name="basic-configuration-structure"></a>

마이크로소프트 윈도우용 Amazon Kinesis 에이전트 구성 파일의 기본 구조는 다음 템플릿이 포함된 JSON 문서입니다.

```
{
     "Sources": [ ],
     "Sinks": [ ],
     "Pipes": [ ]
}
```
+ 의 값`Sources`하나 이상의 입니다.[소스 선언](source-object-declarations.md).
+ 의 값`Sinks`하나 이상의 입니다.[sink 선언](sink-object-declarations.md).
+ 의 값`Pipes`하나 이상의 입니다.[파이프 선언](pipe-object-declarations.md).

Windows용 Kinesis 에이전트 소스, 파이프 및 싱크 개념에 대한 자세한 내용은[마이크로소프트 윈도우용 Amazon Kinesis 에이전트 개념](kinesis-agent-windows-concepts.md).

다음 예제는 완전한`appsettings.json`구성 파일을 사용하여 Kinesis 데이터 Firehose에 Windows 응용 프로그램 로그 이벤트를 스트리밍하도록 구성할 수 있습니다.

```
{
  "Sources": [
    {
      "LogName": "Application",
      "Id": "ApplicationLog",
      "SourceType": "WindowsEventLogSource"
    }
  ],
  "Sinks": [
    {
      "StreamName": "ApplicationLogFirehoseStream",
      "Region": "us-west-2",
      "Id": "MyKinesisFirehoseSink",
      "SinkType": "KinesisFirehose"
    }
  ],
  "Pipes": [
    {
      "Id": "ApplicationLogTotestKinesisFirehoseSink",
      "SourceRef": "ApplicationLog",
      "SinkRef": "MyKinesisFirehoseSink"
    }
  ]
}
```

각 선언에 대한 자세한 내용은 다음 단원을 참조하십시오.
+ [소스 선언](source-object-declarations.md)
+ [sink 선언](sink-object-declarations.md)
+ [파이프 선언](pipe-object-declarations.md)

## 구성 대소문자 구분
<a name="basic-configuration-structure-case"></a>

JSON 형식의 파일은 일반적으로 대소문자를 구분하므로 Windows용 Kinesis 에이전트 구성 파일의 모든 키와 값도 대/소문자를 구분한다고 가정해야 합니다. 일부 키와 값은`appsettings.json`구성 파일은 대소문자를 구분하지 않습니다. 예를 들면 다음과 같습니다.
+ 의 값`Format`싱크에 대한 키-값 페어를 입력합니다. 자세한 내용은 [sink 선언](sink-object-declarations.md) 섹션을 참조하세요.
+ 의 값`SourceType`키-값 페어를 입력합니다.`SinkType`키-값 페어를 입력합니다.`Type`키-값 페어를 입력합니다.
+ 의 값`RecordParser`에 대한 키-값 페어의`DirectorySource`소스에 대해 설명합니다. 자세한 내용은 [디렉토리소스 구성](source-object-declarations.md#directory-source-configuration) 섹션을 참조하세요.
+ 의 값`InitialPosition`키-값 페어를 입력합니다. 자세한 내용은 [책갈피 구성](source-object-declarations.md#advanced-source-configuration) 섹션을 참조하세요.
+ 변수 대체를 위한 접두사입니다. 자세한 내용은 [싱크 변수 대체 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-sink-variable-substitution) 섹션을 참조하세요.

# 소스 선언
<a name="source-object-declarations"></a>

마이크로소프트 윈도우용 Amazon Kinesis 에이전트에서*소스 선언*에는 로그, 이벤트 및 메트릭 데이터가 수집되어야 하는 위치와 정보가 나와 있습니다. 또한 선택적으로 변환 할 수 있도록 해당 데이터를 구문 분석하기위한 정보를 지정합니다. 다음 섹션에서는 Windows용 Kinesis 에이전트에서 사용할 수 있는 기본 제공 소스 유형의 구성에 대해 설명합니다. Windows용 Kinesis 에이전트는 확장할 수 있으므로 사용자 정의 소스 유형을 추가할 수 있습니다. 각 소스 유형에는 일반적으로 해당 소스 유형과 관련된 구성 객체에 특정 키 - 값 쌍이 필요합니다.

모든 소스 선언에는 최소한 다음 키-값 페어가 포함되어야 합니다.

`Id`  
구성 파일에서 특정 소스 객체를 식별하는 고유한 문자열입니다.

`SourceType`  
이 소스 객체의 소스 유형 이름입니다. 소스 유형은 이 소스 개체에 의해 수집 중인 로그, 이벤트 또는 메트릭 데이터의 출처를 지정합니다. 또한 소스의 다른 측면을 선언 할 수있는 제어합니다.

다양한 종류의 소스 선언을 사용하는 전체 구성 파일의 예는[다양한 소스에서 Kinesis Data Streams 으로 스트리밍](configuring-kaw-examples.md#configuring-kaw-examples-sources).

**Topics**
+ [디렉토리소스 구성](#directory-source-configuration)
+ [Exchange 로그소스 구성](#exchange-source-configuration)
+ [W3SV클로그소스 구성](#iis-source-configuration)
+ [UlsSource 구성](#sharepoint-source-configuration)
+ [창 세븐로그소스 구성](#window-event-source-configuration)
+ [창 세븐로그폴링소스 구성](#eventlogpolling-source-configuration)
+ [창 집합소스 구성](#etw-source-configuration)
+ [창기능카운터 소스 구성](#performance-counter-source-configuration)
+ [Windows용 Kinesis 에이전트 기본 제공 메트릭 소스](#kinesis-agent-builin-metrics-source)
+ [Windows용 Kinesis 에이전트 메트릭 목록](#kinesis-agent-metric-list)
+ [책갈피 구성](#advanced-source-configuration)

## 디렉토리소스 구성
<a name="directory-source-configuration"></a>

### Overview
<a name="directory-source-configuration-overview"></a>

이`DirectorySource`소스 유형은 지정된 디렉토리에 저장된 파일에서 로그를 수집합니다. 로그 파일은 여러 가지 형식으로 제공되므로`DirectorySource`선언을 사용하면 로그 파일의 데이터 형식을 지정할 수 있습니다. 그런 다음 다양한 AWS 서비스로 스트리밍하기 전에 로그 내용을 JSON 또는 XML과 같은 표준 형식으로 변환할 수 있습니다.

다음은 예제입니다.`DirectorySource`선언:

```
{
	   "Id": "myLog",
	   "SourceType": "DirectorySource",
	   "Directory": "C:\\Program Data\\MyCompany\\MyService\\logs",
	   "FileNameFilter": "*.log",
	   "IncludeSubdirectories": true,
	   "IncludeDirectoryFilter": "cpu\\cpu-1;cpu\\cpu-2;load;memory",
	   "RecordParser": "Timestamp",
	   "TimestampFormat": "yyyy-MM-dd HH:mm:ss.ffff",
	   "Pattern": "\\d{4}-\\d{2}-\\d(2}",
	   "ExtractionPattern": "",
	   "TimeZoneKind": "UTC",
	   "SkipLines": 0,
	   "Encoding": "utf-16",
	   "ExtractionRegexOptions": "Multiline"
}
```

모두`DirectorySource`선언은 다음 키-값 페어를 제공할 수 있습니다.

`SourceType`  
리터럴 문자열이어야 합니다.`"DirectorySource"`(필수).

`Directory`  
로그 파일이 들어 있는 디렉토리의 경로입니다 (필수 사항).

`FileNameFilter`  
선택적으로 와일드카드 파일 이름 지정 패턴에 따라 로그 데이터가 수집되는 디렉터리의 파일 집합을 제한합니다. 로그 파일 이름 패턴이 여러 개 있는 경우 이 기능을 사용하면 단일`DirectorySource`다음 예제에 표시된 대로 을 클릭합니다.  

```
FileNameFilter: "*.log|*.txt"
```
시스템 관리자는 로그 파일을 보관하기 전에 압축하는 경우가 있습니다. 를 지정하는 경우`"*.*"`in`FileNameFilter`로 설정하면 알려진 압축 파일이 이제 제외됩니다. 이 기능은`.zip`,`.gz`, 및`.bz2`파일이 실수로 스트리밍되는 것을 방지할 수 있습니다. 이 키-값 쌍을 지정하지 않으면 디렉토리에 있는 모든 파일의 데이터가 기본적으로 수집됩니다.

`IncludeSubdirectories`  
운영 체제에 의해 제한되는 임의의 깊이로 하위 디렉토리를 모니터링하도록 지정합니다. 이 기능은 여러 웹 사이트가 있는 웹 서버를 모니터링하는 데 유용합니다. 뿐만 아니라`IncludeDirectoryFilter`특성을 사용하여 필터에 지정된 특정 하위 디렉토리만 모니터링합니다.

`RecordParser`  
방법을 지정합니다`DirectorySource`소스 유형은 지정된 디렉토리에있는 로그 파일을 구문 분석해야합니다. 이 키 - 값 쌍이 필요하며 유효한 값은 다음과 같습니다.  
+ `SingleLine`— 로그 파일의 각 행은 로그 레코드입니다.
+ `SingleLineJson`— 로그 파일의 각 행은 JSON 형식의 로그 레코드입니다. 이 파서는 객체 장식을 사용하여 JSON에 추가 키 - 값 쌍을 추가 할 때 유용합니다. 자세한 내용은 [싱크 장식 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-decoration-configuration) 섹션을 참조하세요. 예를 들어,`SingleLineJson`레코드 파서에 대한 자세한 내용은[자습서: 윈도우용 Kinesis 에이전트를 사용하여 JSON 로그 파일을 Amazon S3 로 스트리밍](directory-source-to-s3-tutorial.md).
+ `Timestamp`- 하나 이상의 줄에 로그 레코드가 포함될 수 있습니다. 로그 레코드는 타임스탬프로 시작합니다. 이 옵션을 사용하려면`TimestampFormat`키-값 페어를 선택합니다.
+ `Regex`— 각 레코드는 특정 정규 표현식과 일치하는 텍스트로 시작합니다. 이 옵션을 사용하려면`Pattern`키-값 페어를 선택합니다.
+ `SysLog`— 로그 파일이[syslog](https://en.wikipedia.org/wiki/Syslog)표준 형식입니다. 로그 파일은 해당 사양에 따라 레코드로 구문 분석됩니다.
+ `Delimited`— 로그 레코드의 데이터 항목이 일관된 구분 기호로 구분되는 Regex 레코드 파서의 간단한 버전입니다. 이 옵션은 사용하기 쉽고 정규식 파서보다 빠르게 실행되며이 옵션을 사용할 수있는 경우 선호됩니다. 이 옵션을 사용하는 경우`Delimiter`키-값 페어를 선택합니다.

`TimestampField`  
레코드에 대한 타임스탬프를 포함하는 JSON 필드를 지정합니다. 이는 단지`SingleLineJson` `RecordParser`. 이 키-값 페어는 선택 사항입니다. 지정되지 않은 경우 Windows용 Kinesis 에이전트는 타임스탬프에 대해 레코드를 읽은 시간을 사용합니다. 이 키-값 쌍을 지정할 때의 한 가지 이점은 Windows용 Kinesis 에이전트에서 생성된 지연 시간 통계가 보다 정확하다는 것입니다.

`TimestampFormat`  
레코드와 연관된 날짜 및 시간을 구문 분석하는 방법을 지정합니다. 문자열 중 하나입니다.`epoch`또는.NET 날짜/시간 형식 문자열을 사용하십시오. 값이`epoch`, 시간은 UNIX 에포크 시간을 기반으로 구문 분석됩니다. UNIX Epoch 시간에 대한 자세한 내용은 단원을 참조하십시오.[Unix 시간](https://en.wikipedia.org/wiki/Unix_time). .NET 날짜/시간 형식 문자열에 대한 자세한 내용은[사용자 정의 날짜 및 시간 형식 문자열](https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings)를 참조하십시오). 이 키 - 값 쌍은 경우에만 필요합니다`Timestamp`레코드 파서가 지정되거나`SingleLineJson`레코드 파서와 함께 지정`TimestampField`키-값 페어를 선택합니다.

`Pattern`  
잠재적으로 여러 줄 레코드의 첫 번째 줄과 일치해야 하는 정규 표현식을 지정합니다. 이 키 - 값 쌍은`Regex`레코드 구문 분석기.

`ExtractionPattern`  
명명된 그룹을 사용해야 하는 정규 표현식을 지정합니다. 레코드는이 정규 표현식을 사용하여 구문 분석하고 명명 된 그룹은 구문 분석 된 레코드의 필드를 형성한다. 그런 다음 이러한 필드는 JSON 또는 XML 객체 또는 문서를 구성하기 위한 기반으로 사용되며, 이 객체는 싱크로 다양한 AWS 서비스로 스트리밍됩니다. 이 키 - 값 쌍은 선택 사항이며`Regex`레코드 파서 및 타임 스탬프 파서를 사용할 수 있습니다.  
이`Timestamp`그룹 이름은 특별히 처리되며`Regex`각 로그 파일의 각 레코드에 대한 날짜 및 시간을 포함하는 파서.

`Delimiter`  
각 로그 기록의 각 항목을 구분하는 문자 또는 문자열을 지정합니다. 이 키 - 값 쌍은`Delimited`레코드 구문 분석기. 두 문자 시퀀스 사용`\t`를 사용하여 탭 문자를 나타냅니다.

`HeaderPattern`  
레코드에 대한 헤더 집합을 포함하는 로그 파일의 행을 일치시키기 위한 정규 표현식을 지정합니다. 로그 파일에 헤더 정보가 포함되어 있지 않으면`Headers`키-값 페어를 사용하여 암시 적 헤더를 지정합니다. 이`HeaderPattern`키 - 값 쌍은 선택 사항이며`Delimited`레코드 구문 분석기.  
열에 대한 빈 (0 길이) 머리글 항목을 해당 열의 데이터를 최종 출력에서 필터링할 수 있는`DirectorySource`출력을 구문 분석합니다.

`Headers`  
지정된 구분 기호를 사용하여 구문 분석된 데이터 열의 이름을 지정합니다. 이 키 - 값 쌍은 선택 사항이며`Delimited`레코드 구문 분석기.  
열에 대한 빈 (0 길이) 머리글 항목을 해당 열의 데이터를 최종 출력에서 필터링할 수 있는`DirectorySource`출력을 구문 분석합니다.

`RecordPattern`  
로그 파일에서 레코드 데이터가 포함된 행을 식별하는 정규 표현식을 지정합니다. 에 의해 식별되는 선택적 헤더 라인 이외의`HeaderPattern`, 지정된 값과 일치하지 않는 행`RecordPattern`는 레코드 처리 중에 무시됩니다. 이 키 - 값 쌍은 선택 사항이며`Delimited`레코드 구문 분석기. 이 옵션이 제공되지 않으면 기본값은 선택적`HeaderPattern`또는 선택 사항`CommentPattern`를 구문 분석 가능한 레코드 데이터가 포함 된 행으로 설정하십시오.

`CommentPattern`  
로그 파일의 데이터를 구문 분석하기 전에 제외해야 하는 로그 파일의 행을 식별하는 정규식을 지정합니다. 이 키 - 값 쌍은 선택 사항이며`Delimited`레코드 구문 분석기. 이 옵션이 제공되지 않으면 기본값은 선택적`HeaderPattern`를 구문 분석 가능한 레코드 데이터가 포함 된 행으로 설정하십시오.`RecordPattern`가 지정됩니다.

`TimeZoneKind`  
로그 파일의 타임스탬프를 현지 표준 시간대 또는 UTC 표준 시간대에서 고려할지 여부를 지정합니다. 선택 사항으로, 기본값은 UTC입니다. 이 키 - 값 쌍에 대한 유일한 유효한 값은`Local`또는`UTC`. 다음과 같은 경우 타임 스탬프가 변경되지 않습니다.`TimeZoneKind`가 지정되지 않았거나 값이 UTC인 경우 타임 스탬프는 UTC로 변환 될 때`TimeZoneKind`값은`Local`이고 타임 스탬프를받는 싱크가 CloudWatch Logs 이거나 구문 분석 된 레코드가 다른 싱크로 전송됩니다. 메시지에 포함된 날짜와 시간은 변환되지 않습니다.

`SkipLines`  
지정된 경우 레코드 구문 분석이 수행되기 전에 각 로그 파일의 시작 부분에서 무시되는 줄 수를 제어합니다. 선택 사항으로, 기본값은 0입니다.

인코딩  
기본적으로 Windows용 Kinesis 에이전트는 바이트마크에서 인코딩을 자동으로 감지할 수 있습니다. 그러나 일부 이전 유니코드 형식에서는 자동 인코딩이 제대로 작동하지 않을 수 있습니다. 다음 예제에서는 Microsoft SQL Server 로그를 스트리밍하는 데 필요한 인코딩을 지정합니다.  

```
"Encoding": "utf-16"
```
인코딩 이름 목록은 단원을 참조하십시오.[인코딩 목록](https://docs.microsoft.com/en-us/dotnet/api/system.text.encoding?view=netframework-4.8#list-of-encodings)Microsoft .NET 설명서에 나와 있습니다.

추출정규 표현식 옵션  
다음을 수행할 수 있습니다.`ExtractionRegexOptions`정규 표현식을 단순화할 수 있습니다. 이 키-값 페어는 선택 사항입니다. 기본값은 `"None"`입니다.  
다음 예제에서는 지정 된`"."`식을 포함한 모든 문자와 일치`\r\n`.  

```
"ExtractionRegexOptions" = "Multiline"
```
추출정규 표현식 옵션에 사용할 수 있는 필드 목록은[열거형 정규식 옵션](https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regexoptions?view=netframework-4.7.2#fields)Microsoft .NET 설명서에 나와 있습니다.

### `Regex`레코드 구문 분석기
<a name="directory-source-configuration-regex"></a>



구조화되지 않은 텍스트 로그를 구문 분석할 수 있는`Regex`레코드 파서와 함께`TimestampFormat`,`Pattern`, 및`ExtractionPattern`키-값 페어를 입력합니다. 예를 들면 로그 파일이 다음과 같다고 가정합니다.

```
[FATAL][2017/05/03 21:31:00.534][0x00003ca8][0000059c][][ActivationSubSystem][GetActivationForSystemID][0] 'ActivationException.File: EQCASLicensingSubSystem.cpp'
[FATAL][2017/05/03 21:31:00.535][0x00003ca8][0000059c][][ActivationSubSystem][GetActivationForSystemID][0] 'ActivationException.Line: 3999'
```

당신은에 대한 다음 정규 표현식을 지정할 수 있습니다`Pattern`키 - 값 쌍을 사용하여 로그 파일을 개별 로그 레코드로 나눌 수 있습니다.

```
^\[\w+\]\[(?<TimeStamp>\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}\.\d{3})\]   
```

이 정규 표현식은 다음 순서와 일치합니다.

1. 평가되는 문자열의 시작입니다.

1. 대괄호로 둘러싸인 하나 이상의 단어 문자

1. 대괄호로 둘러싸인 타임스탬프입니다. 타임스탬프는 다음 시퀀스와 일치합니다.

   1. 4자리 연도입니다.

   1. 슬래시

   1. 2자리 월입니다.

   1. 슬래시

   1. 2자리 날짜입니다.

   1. 공백 문자

   1. 2자리 시입니다.

   1. 콜론

   1. 2자리 분입니다.

   1. 콜론

   1. 2자리

   1. A 기간

   1. 세 자리 밀리초

다음 형식을 지정할 수 있습니다.`TimestampFormat`키 - 값 쌍을 사용하여 텍스트 타임 스탬프를 날짜와 시간으로 변환 할 수 있습니다.

```
yyyy/MM/dd HH:mm:ss.fff
```

당신은을 통해 로그 레코드의 필드를 추출하기 위해 다음과 같은 정규 표현식을 사용할 수 있습니다`ExtractionPattern`키-값 페어를 입력합니다.

```
^\[(?<Severity>\w+)\]\[(?<TimeStamp>\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}\.\d{3})\]\[[^]]*\]\[[^]]*\]\[[^]]*\]\[(?<SubSystem>\w+)\]\[(?<Module>\w+)\]\[[^]]*\] '(?<Message>.*)'$
```

이 정규 표현식은 다음 그룹과 순서대로 일치합니다.

1. `Severity`— 대괄호로 둘러싸인 하나 이상의 단어 문자입니다.

1. `TimeStamp`— 타임스탬프에 대한 이전 설명을 참조하십시오.

1. 0개 이상의 문자 시퀀스를 명명되지 않은 대괄호로 묶인 3개를 건너뜁니다.

1. `SubSystem`— 대괄호로 둘러싸인 하나 이상의 단어 문자입니다.

1. `Module`— 대괄호로 둘러싸인 하나 이상의 단어 문자입니다.

1. 0개 이상의 문자 시퀀스를 명명되지 않은 대괄호로 묶인 시퀀스를 건너뜁니다.

1. 이름이 지정되지 않은 공간 하나를 건너뜁니다.

1. `Message`— 작은따옴표로 둘러싸인 0개 이상의 문자입니다.

다음 소스 선언은 이러한 정규 표현식과 날짜 시간 형식을 결합하여 이러한 종류의 로그 파일을 구문 분석하는 데 필요한 전체 지침을 Kinesis Agent에 제공합니다.

```
{
    "Id": "PrintLog",
    "SourceType": "DirectorySource",
    "Directory": "C:\\temp\\PrintLogTest",
    "FileNameFilter": "*.log",
    "RecordParser": "Regex",
    "TimestampFormat": "yyyy/MM/dd HH:mm:ss.fff",
    "Pattern": "^\\[\\w+\\]\\[(?<TimeStamp>\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\]",
    "ExtractionPattern": "^\\[(?<Severity>\\w+)\\]\\[(?<TimeStamp>\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\]\\[[^]]*\\]\\[[^]]*\\]\\[[^]]*\\]\\[(?<SubSystem>\\w+)\\]\\[(?<Module>\\w+)\\]\\[[^]]*\\] '(?<Message>.*)'$",
    "TimeZoneKind": "UTC"
}
```

**참고**  
JSON 형식 파일의 백 슬래시는 추가 백 슬래시를 사용하여 이스케이프해야합니다.

정규식에 대한 자세한 내용은 단원을 참조하십시오.[정규 표현식 언어 - 빠른 참조](https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference)에서 Microsoft .NET 설명서를 참조하십시오.

### `Delimited`레코드 구문 분석기
<a name="directory-source-configuration-delimited"></a>

다음을 수행할 수 있습니다.`Delimited`레코드 파서를 사용하여 각 데이터 행의 각 데이터 열을 분리하는 일관된 문자 시퀀스가있는 반구조화 된 로그 및 데이터 파일을 구문 분석합니다. 예를 들어 CSV 파일은 쉼표를 사용하여 각 데이터 열을 구분하고 TSV 파일은 탭을 사용합니다.

Microsoft를 구문 분석하려는 경우[NPS 데이터베이스 형식](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc771748(v=ws.10))네트워크 정책 서버에 의해 생성 된 로그 파일. 이러한 파일은 다음과 같습니다.

```
"NPS-MASTER","IAS",03/22/2018,23:07:55,1,"user1","Domain1\user1",,,,,,,,0,"192.168.86.137","Nate - Test 1",,,,,,,1,,0,"311 1 192.168.0.213 03/15/2018 08:14:29 1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"Use Windows authentication for all users",1,,,,
"NPS-MASTER","IAS",03/22/2018,23:07:55,3,,"Domain1\user1",,,,,,,,0,"192.168.86.137","Nate - Test 1",,,,,,,1,,16,"311 1 192.168.0.213 03/15/2018 08:14:29 1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"Use Windows authentication for all users",1,,,,
```

다음은 예제입니다.`appsettings.json`구성 파일에는`DirectorySource`선언을 사용하는`Delimited`레코드 파서를 사용하여이 텍스트를 객체 표현으로 구문 분석 할 수 있습니다. 그런 다음 JSON 형식의 데이터를 Kinesis Data Firehose 스로 스트리밍합니다.

```
{
    "Sources": [
        {
            "Id": "NPS",
            "SourceType": "DirectorySource",
            "Directory": "C:\\temp\\NPS",
            "FileNameFilter": "*.log",
            "RecordParser": "Delimited",
            "Delimiter": ",",
            "Headers": "ComputerName,ServiceName,Record-Date,Record-Time,Packet-Type,User-Name,Fully-Qualified-Distinguished-Name,Called-Station-ID,Calling-Station-ID,Callback-Number,Framed-IP-Address,NAS-Identifier,NAS-IP-Address,NAS-Port,Client-Vendor,Client-IP-Address,Client-Friendly-Name,Event-Timestamp,Port-Limit,NAS-Port-Type,Connect-Info,Framed-Protocol,Service-Type,Authentication-Type,Policy-Name,Reason-Code,Class,Session-Timeout,Idle-Timeout,Termination-Action,EAP-Friendly-Name,Acct-Status-Type,Acct-Delay-Time,Acct-Input-Octets,Acct-Output-Octets,Acct-Session-Id,Acct-Authentic,Acct-Session-Time,Acct-Input-Packets,Acct-Output-Packets,Acct-Terminate-Cause,Acct-Multi-Ssn-ID,Acct-Link-Count,Acct-Interim-Interval,Tunnel-Type,Tunnel-Medium-Type,Tunnel-Client-Endpt,Tunnel-Server-Endpt,Acct-Tunnel-Conn,Tunnel-Pvt-Group-ID,Tunnel-Assignment-ID,Tunnel-Preference,MS-Acct-Auth-Type,MS-Acct-EAP-Type,MS-RAS-Version,MS-RAS-Vendor,MS-CHAP-Error,MS-CHAP-Domain,MS-MPPE-Encryption-Types,MS-MPPE-Encryption-Policy,Proxy-Policy-Name,Provider-Type,Provider-Name,Remote-Server-Address,MS-RAS-Client-Name,MS-RAS-Client-Version",
            "TimestampField": "{Record-Date} {Record-Time}",
            "TimestampFormat": "MM/dd/yyyy HH:mm:ss"
        }
    ],
    "Sinks": [
        {
            "Id": "npslogtest",
            "SinkType": "KinesisFirehose",
            "Region": "us-west-2",
            "StreamName": "npslogtest",
            "Format": "json"
        }
    ],
    "Pipes": [
        {
            "Id": "W3SVCLog1ToKinesisStream",
            "SourceRef": "NPS",
            "SinkRef": "npslogtest"
        }
    ]
}
```

Kinesis 데이터 파이어호스로 스트리밍되는 JSON 형식의 데이터는 다음과 같습니다.

```
{
    "ComputerName": "NPS-MASTER",
    "ServiceName": "IAS",
    "Record-Date": "03/22/2018",
    "Record-Time": "23:07:55",
    "Packet-Type": "1",
    "User-Name": "user1",
    "Fully-Qualified-Distinguished-Name": "Domain1\\user1",
    "Called-Station-ID": "",
    "Calling-Station-ID": "",
    "Callback-Number": "",
    "Framed-IP-Address": "",
    "NAS-Identifier": "",
    "NAS-IP-Address": "",
    "NAS-Port": "",
    "Client-Vendor": "0",
    "Client-IP-Address": "192.168.86.137",
    "Client-Friendly-Name": "Nate - Test 1",
    "Event-Timestamp": "",
    "Port-Limit": "",
    "NAS-Port-Type": "",
    "Connect-Info": "",
    "Framed-Protocol": "",
    "Service-Type": "",
    "Authentication-Type": "1",
    "Policy-Name": "",
    "Reason-Code": "0",
    "Class": "311 1 192.168.0.213 03/15/2018 08:14:29 1",
    "Session-Timeout": "",
    "Idle-Timeout": "",
    "Termination-Action": "",
    "EAP-Friendly-Name": "",
    "Acct-Status-Type": "",
    "Acct-Delay-Time": "",
    "Acct-Input-Octets": "",
    "Acct-Output-Octets": "",
    "Acct-Session-Id": "",
    "Acct-Authentic": "",
    "Acct-Session-Time": "",
    "Acct-Input-Packets": "",
    "Acct-Output-Packets": "",
    "Acct-Terminate-Cause": "",
    "Acct-Multi-Ssn-ID": "",
    "Acct-Link-Count": "",
    "Acct-Interim-Interval": "",
    "Tunnel-Type": "",
    "Tunnel-Medium-Type": "",
    "Tunnel-Client-Endpt": "",
    "Tunnel-Server-Endpt": "",
    "Acct-Tunnel-Conn": "",
    "Tunnel-Pvt-Group-ID": "",
    "Tunnel-Assignment-ID": "",
    "Tunnel-Preference": "",
    "MS-Acct-Auth-Type": "",
    "MS-Acct-EAP-Type": "",
    "MS-RAS-Version": "",
    "MS-RAS-Vendor": "",
    "MS-CHAP-Error": "",
    "MS-CHAP-Domain": "",
    "MS-MPPE-Encryption-Types": "",
    "MS-MPPE-Encryption-Policy": "",
    "Proxy-Policy-Name": "Use Windows authentication for all users",
    "Provider-Type": "1",
    "Provider-Name": "",
    "Remote-Server-Address": "",
    "MS-RAS-Client-Name": "",
    "MS-RAS-Client-Version": ""
}
```

### `SysLog`레코드 구문 분석기
<a name="directory-source-configuration-syslog"></a>

에 대 한`SysLog`레코드 파서를 사용하는 경우 원본의 구문 분석 된 출력에는 다음 정보가 포함됩니다.


| 속성 | 유형 | 설명 | 
| --- | --- | --- | 
| SysLogTimeStamp | 문자열 | syslog가 포맷한 로그 파일의 원래 날짜 및 시간입니다. | 
| Hostname | 문자열 | syslog로 포맷된 로그 파일이 있는 컴퓨터의 이름입니다. | 
| Program | 문자열 | 로그 파일을 생성한 애플리케이션 또는 서비스의 이름입니다. | 
| Message | 문자열 | 응용 프로그램 또는 서비스에서 생성된 로그 메시지입니다. | 
| TimeStamp | 문자열 | ISO 8601 형식의 구문 분석 날짜 및 시간입니다. | 

다음은 JSON으로 변환된 SysLog 데이터의 예입니다.

```
{
    "SysLogTimeStamp": "Jun 18 01:34:56",
    "Hostname": "myhost1.example.mydomain.com",
    "Program": "mymailservice:",
    "Message": "Info: ICID 123456789 close",
    "TimeStamp": "2017-06-18T01:34.56.000"
}
```

### Summary
<a name="directory-source-configuration-summary"></a>

다음에 사용할 수 있는 키-값 페어의 요약은`DirectorySource`소스 및`RecordParser`이 키-값 페어와 관련되어 있습니다.


| 키 이름 | 레코드파서 | 참고 | 
| --- | --- | --- | 
| SourceType | 모든 사용자에게 필수 | 값이 있어야 합니다.DirectorySource | 
| Directory | 모든 사용자에게 필수 |  | 
| FileNameFilter | 모든 항목에 대한 선택 사항 |  | 
| RecordParser | 모든 사용자에게 필수 |  | 
| TimestampField | 의 경우 선택 사항SingleLineJson |  | 
| TimestampFormat | 의 필수 사항Timestamp에 대한 필수SingleLineJson다음과 같은 경우TimestampField가 지정됩니다. |  | 
| Pattern | 의 필수 사항Regex |  | 
| ExtractionPattern | 의 경우 선택 사항Regex | 의 필수 사항Regex싱크가 지정하는 경우json또는xmlformat | 
| Delimiter | 의 필수 사항Delimited |  | 
| HeaderPattern | 의 경우 선택 사항Delimited |  | 
| Headers | 의 경우 선택 사항Delimited |  | 
| RecordPattern | 의 경우 선택 사항Delimited |  | 
| CommentPattern | 의 경우 선택 사항Delimited |  | 
| TimeZoneKind | 의 경우 선택 사항Regex,Timestamp,SysLog, 및SingleLineJson타임 스탬프 필드가 식별 될 때 |  | 
| SkipLines | 모든 항목에 대한 선택 사항 |  | 

## Exchange 로그소스 구성
<a name="exchange-source-configuration"></a>

 이`ExchangeLogSource`유형은 마이크로소프트 익스체인지에서 로그를 수집하는 데 사용됩니다. Exchange는 여러 종류의 로그 형식으로 로그를 생성합니다. 이 소스 유형은 모두 구문 분석합니다. 그것을 사용하여 구문 분석 할 수는 있지만`DirectorySource`유형을`Regex`레코드 파서를 사용하는 것이 훨씬 간단합니다`ExchangeLogSource`. 로그 파일의 정규식을 디자인하고 제공할 필요가 없기 때문입니다. 다음은 예제입니다.`ExchangeLogSource`선언: 

```
{
   "Id": "MyExchangeLog",
   "SourceType": "ExchangeLogSource",
   "Directory": "C:\\temp\\ExchangeLogTest",
   "FileNameFilter": "*.log"
}
```

모든 교환 선언은 다음 키-값 페어를 제공할 수 있습니다.

`SourceType`  
리터럴 문자열이어야 합니다.`"ExchangeLogSource"`(필수).

`Directory`  
로그 파일이 들어 있는 디렉토리의 경로입니다 (필수 사항).

`FileNameFilter`  
선택적으로 와일드카드 파일 이름 지정 패턴에 따라 로그 데이터가 수집되는 디렉터리의 파일 집합을 제한합니다. 이 키-값 쌍을 지정하지 않으면 기본적으로 디렉토리의 모든 파일에서 로그 데이터가 수집됩니다.

`TimestampField`  
레코드의 날짜 및 시간을 포함하는 열의 이름입니다. 이 키 - 값 쌍은 선택 사항이며 필드 이름이`date-time`또는`DateTime`. 그렇지 않으면 필요합니다.

## W3SV클로그소스 구성
<a name="iis-source-configuration"></a>

 이`W3SVCLogSource`유형은 Windows용 IIS (인터넷 정보 서비스) 에서 로그를 수집하는 데 사용됩니다.

다음은 예제입니다.`W3SVCLogSource`선언: 

```
{
   "Id": "MyW3SVCLog",
   "SourceType": "W3SVCLogSource",
   "Directory": "C:\\inetpub\\logs\\LogFiles\\W3SVC1",
   "FileNameFilter": "*.log"
}
```

모두`W3SVCLogSource`선언은 다음 키-값 페어를 제공할 수 있습니다.

`SourceType`  
리터럴 문자열이어야 합니다.`"W3SVCLogSource"`(필수).

`Directory`  
로그 파일이 들어 있는 디렉토리의 경로입니다 (필수 사항).

`FileNameFilter`  
선택적으로 와일드카드 파일 이름 지정 패턴에 따라 로그 데이터가 수집되는 디렉터리의 파일 집합을 제한합니다. 이 키-값 쌍을 지정하지 않으면 기본적으로 디렉토리의 모든 파일에서 로그 데이터가 수집됩니다.

## UlsSource 구성
<a name="sharepoint-source-configuration"></a>

 이`UlsSource`유형은 마이크로 소프트 SharePoint 포인트에서 로그를 수집하는 데 사용됩니다. 다음은 예제입니다.`UlsSource`선언: 

```
{
    "Id": "UlsSource",
    "SourceType": "UlsSource",
    "Directory": "C:\\temp\\uls",
    "FileNameFilter": "*.log"
}
```

모두`UlsSource`선언은 다음 키-값 페어를 제공할 수 있습니다.

`SourceType`  
리터럴 문자열이어야 합니다.`"UlsSource"`(필수).

`Directory`  
로그 파일이 들어 있는 디렉토리의 경로입니다 (필수 사항).

`FileNameFilter`  
선택적으로 와일드카드 파일 이름 지정 패턴에 따라 로그 데이터가 수집되는 디렉터리의 파일 집합을 제한합니다. 이 키-값 쌍을 지정하지 않으면 기본적으로 디렉토리의 모든 파일에서 로그 데이터가 수집됩니다.

## 창 세븐로그소스 구성
<a name="window-event-source-configuration"></a>

이`WindowsEventLogSource`유형은 Windows 이벤트 로그 서비스에서 이벤트를 수집하는 데 사용됩니다. 다음은 예제입니다.`WindowsEventLogSource`선언: 

```
{
    "Id": "mySecurityLog",
    "SourceType": "WindowsEventLogSource",
    "LogName": "Security"
}
```

모두`WindowsEventLogSource`선언은 다음 키-값 페어를 제공할 수 있습니다.

`SourceType`  
리터럴 문자열이어야 합니다.`"WindowsEventLogSource"`(필수).

`LogName`  
이벤트는 지정된 로그에서 수집됩니다. 일반적인 값은 다음과 같습니다.`Application`,`Security`, 및`System`를 사용할 수 있지만 유효한 Windows 이벤트 로그 이름을 지정할 수 있습니다. 이 키-값 페어가 필요합니다.

`Query`  
선택적으로 어떤 이벤트가 출력되는지를 제한합니다`WindowsEventLogSource`. 이 키 - 값 쌍을 지정하지 않으면 기본적으로 모든 이벤트가 출력됩니다. 이 값의 구문에 대한 자세한 내용은 다음 () 을 참조하십시오.[이벤트 쿼리 및 이벤트 XML](https://msdn.microsoft.com/en-us/library/bb399427(v=vs.90).aspx)에서 Windows 설명서를 참조하십시오. 로그 수준 정의에 대한 자세한 내용은 단원을 참조하십시오.[이벤트 유형](https://docs.microsoft.com/en-us/windows/desktop/eventlog/event-types)에서 Windows 설명서를 참조하십시오.

`IncludeEventData`  
선택적으로 이 키-값 쌍의 값이`"true"`. 성공적으로 직렬화할 수 있는 이벤트 데이터만 포함됩니다. 이 키-값 쌍은 선택 사항이며 지정하지 않으면 공급자 관련 이벤트 데이터가 수집되지 않습니다.  
이벤트 데이터를 포함하면 이 소스에서 스트리밍되는 데이터의 양이 크게 늘어날 수 있습니다. 이벤트의 최대 크기는 이벤트 데이터가 포함된 262,143바이트가 될 수 있습니다.

의 구문 분석 된 출력`WindowsEventLogSource`에는 다음 정보가 포함됩니다.


| 속성 | 유형 | 설명 | 
| --- | --- | --- | 
| EventId | 정수 | 이벤트 유형의 식별자입니다. | 
| Description | 문자열 | 이벤트의 세부 정보를 설명하는 텍스트입니다. | 
| LevelDisplayName | 문자열 | 이벤트 범주 (오류, 경고, 정보, 성공 감사, 실패 감사 중 하나) 입니다. | 
| LogName | 문자열 | 이벤트가 기록된 위치 (일반적인 값은Application,Security, 및System, 그러나 많은 가능성이있다). | 
| MachineName | 문자열 | 이벤트를 기록한 컴퓨터입니다. | 
| ProviderName | 문자열 | 이벤트를 기록한 응용 프로그램 또는 서비스 | 
| TimeCreated | 문자열 | ISO 8601 형식으로 이벤트가 발생한 경우 | 
| Index | 정수 | 로그에있는 항목입니다. | 
| UserName | 문자열 | 알려진 경우 누가 항목을 만들었습니다. | 
| Keywords | 문자열 | 이벤트의 유형입니다. 표준 값은 다음과 같습니다.AuditFailure(실패한 보안 감사 이벤트),AuditSuccess(성공적인 보안 감사 이벤트),Classic와 함께 발생 이벤트 (RaiseEvent함수)Correlation Hint(전송 이벤트),SQM(서비스 품질 메커니즘 이벤트),WDI Context(Windows 진단 인프라 컨텍스트 이벤트) 및WDI Diag(Windows 진단 인프라 진단 이벤트). | 
| EventData | List object | 로그 이벤트에 대한 공급자별 추가 데이터 (선택 사항) 에 대 한 값 경우에만 포함 됩니다IncludeEventData키-값 페어는"true". | 

다음은 JSON으로 변환된 이벤트 예제입니다.

```
{[ 
    "EventId": 7036, 
    "Description": "The Amazon SSM Agent service entered the stopped state.", 
    "LevelDisplayName": "Informational", 
    "LogName": "System", 
    "MachineName": "mymachine.mycompany.com", 
    "ProviderName": "Service Control Manager", 
    "TimeCreated": "2017-10-04T16:42:53.8921205Z", 
    "Index": 462335, 
    "UserName": null, 
    "Keywords": "Classic", 
    "EventData": [ 
    "Amazon SSM Agent", 
    "stopped", 
    "rPctBAMZFhYubF8zVLcrBd3bTTcNzHvY5Jc2Br0aMrxxx==" 
]}
```

## 창 세븐로그폴링소스 구성
<a name="eventlogpolling-source-configuration"></a>

`WindowsEventLogPollingSource`는 폴링 기반 메커니즘을 사용하여 구성된 매개 변수와 일치하는 이벤트 로그에서 모든 새 이벤트를 수집합니다. 폴링 간격은 마지막 폴링 중에 수집된 이벤트 수에 따라 100ms에서 5000ms 사이에서 동적으로 업데이트됩니다. 다음은 예제입니다.`WindowsEventLogPollingSource`선언:

```
{
    "Id": "MySecurityLog",
    "SourceType": "WindowsEventLogPollingSource",
    "LogName": "Security",
    "IncludeEventData": "true",
    "Query": "",
    "CustomFilters": "ExcludeOwnSecurityEvents"
}
```

모두`WindowsEventLogPollingSource`선언은 다음 키-값 페어를 제공할 수 있습니다.

`SourceType`  
리터럴 문자열이어야 합니다.`"WindowsEventLogPollingSource"`(필수).

`LogName`  
로그를 지정합니다. 유효한 옵션은 다음과 같습니다.`Application`,`Security`,`System`또는 기타 유효한 로그가 있습니다.

`IncludeEventData`  
선택 사항입니다. 일시`true`는 JSON 및 XML로 스트리밍될 때 추가 EventData 포함되도록 지정합니다. 기본값은 `false`.

`Query`  
선택 사항입니다. Windows 이벤트 로그는 XPath 식을 사용하여 이벤트를 쿼리하는 기능을 지원합니다.`Query`. 자세한 내용은 단원을 참조하십시오.[이벤트 쿼리 및 이벤트 XML](https://docs.microsoft.com/en-us/previous-versions/bb399427(v=vs.90))에서 Microsoft 설명서를 참조하십시오.

`CustomFilters`  
선택 사항입니다. 세미콜론으로 구분된 필터 목록 (`;`). 다음 필터를 지정할 수 있습니다.    
`ExcludeOwnSecurityEvents`  
Windows용 Kinesis 에이전트에서 생성된 보안 이벤트를 제외합니다.

## 창 집합소스 구성
<a name="etw-source-configuration"></a>

 이`WindowsETWEventSource`유형은 ETW (Windows용 이벤트 추적) 라는 기능을 사용하여 응용 프로그램 및 서비스 이벤트 추적을 수집하는 데 사용됩니다. 자세한 내용은 단원을 참조하십시오.[이벤트 추적](https://docs.microsoft.com/en-us/windows/desktop/etw/event-tracing-portal)에서 Windows 설명서를 참조하십시오.

다음은 예제입니다.`WindowsETWEventSource`선언:

```
{
    "Id": "ClrETWEventSource",
    "SourceType": "WindowsETWEventSource",
    "ProviderName": "Microsoft-Windows-DotNETRuntime",
    "TraceLevel": "Verbose",
    "MatchAnyKeyword": 32768
}
```

모두`WindowsETWEventSource`선언은 다음 키-값 페어를 제공할 수 있습니다.

`SourceType`  
리터럴 문자열이어야 합니다.`"WindowsETWEventSource"`(필수).

`ProviderName`  
추적 이벤트를 수집하는 데 사용할 이벤트 공급자를 지정합니다. 이 이름은 설치된 공급자에 대해 유효한 ETW 제공자 이름이어야 합니다. 설치된 공급자를 확인하려면 Windows 명령 프롬프트 창에서 다음을 실행합니다.  

```
logman query providers
```

`TraceLevel`  
수집해야 하는 추적 이벤트 범주를 지정합니다. 허용되는 값은 다음과 같습니다.`Critical`,`Error`,`Warning`,`Informational`, 및`Verbose`. 정확한 의미는 선택한 ETW 공급자에 따라 다릅니다.

`MatchAnyKeyword`  
이 값은 각 비트가 개별 키워드를 나타내는 64비트 숫자입니다. 각 키워드는 수집할 이벤트의 범주를 설명합니다. 지원되는 키워드 및 해당 값 및 해당 키워드와 관련된 방법`TraceLevel`에 대한 자세한 내용은 해당 공급자의 설명서를 참조하십시오. 예를 들어 CLR ETW 공급자에 대한 자세한 내용은[CLR ETW 키워드 및 레벨](https://docs.microsoft.com/en-us/dotnet/framework/performance/clr-etw-keywords-and-levels)Microsoft .NET Framework 설명서를 참조하십시오.  
앞의 예제에서 32768 (0x00008000) 은`ExceptionKeyword`throw된 예외에 대한 정보를 수집하도록 공급자에게 지시하는 CLR ETW 공급자에 대해 설명합니다. JSON은 기본적으로 16 진수 상수를 지원하지 않지만`MatchAnyKeyword`문자열에 배치하여. 여러 상수를 쉼표로 구분하여 지정할 수도 있습니다. 예를 들어, 다음을 사용하여`ExceptionKeyword`및`SecurityKeyword`(0x00000400):  

```
{
   "Id": "MyClrETWEventSource",
   "SourceType": "WindowsETWEventSource",
   "ProviderName": "Microsoft-Windows-DotNETRuntime",
   "TraceLevel": "Verbose",
   "MatchAnyKeyword": "0x00008000, 0x00000400"
}
```
공급자에 대해 지정된 모든 키워드가 활성화되도록 하려면 OR을 사용하여 여러 키워드 값을 결합하고 해당 공급자에게 전달합니다.

의 출력`WindowsETWEventSource`에는 각 이벤트에 대해 다음 정보가 포함됩니다.


| 속성 | 유형 | 설명 | 
| --- | --- | --- | 
| EventName | 문자열 | 어떤 이벤트가 발생했는지. | 
| ProviderName | 문자열 | 이벤트를 감지한 공급자입니다. | 
| FormattedMessage | 문자열 | 이벤트에 대한 텍스트 요약입니다. | 
| ProcessID | 정수 | 이벤트를 보고한 프로세스입니다. | 
| ExecutingThreadID | 정수 | 프로세스 내의 어떤 스레드가 이벤트를보고했습니다. | 
| MachineName | 문자열 | 이벤트를 보고하는 데스크톱 또는 서버의 이름입니다. | 
| Payload | 해시 테이블 | 문자열 키와 모든 종류의 객체를 값으로 사용하는 테이블입니다. 키는 페이로드 항목 이름이고 값은 페이로드 항목의 값입니다. 페이로드는 공급자에 따라 다릅니다. | 

다음은 JSON으로 변환된 이벤트 예제입니다.

```
{ 
     "EventName": "Exception/Start", 
     "ProviderName": "Microsoft-Windows-DotNETRuntime", 
     "FormattedMessage": "ExceptionType=System.Exception;\r\nExceptionMessage=Intentionally unhandled exception.;\r\nExceptionEIP=0x2ab0499;\r\nExceptionHRESULT=-2,146,233,088;\r\nExceptionFlags=CLSCompliant;\r\nClrInstanceID=9 ",
     "ProcessID": 3328, 
     "ExecutingThreadID": 6172, 
     "MachineName": "MyHost.MyCompany.com", 
     "Payload": 
      { 
        "ExceptionType": "System.Exception", 
        "ExceptionMessage": "Intentionally unhandled exception.", 
        "ExceptionEIP": 44762265, 
        "ExceptionHRESULT": -2146233088, 
        "ExceptionFlags": 16, 
        "ClrInstanceID": 9 
      } 
}
```

## 창기능카운터 소스 구성
<a name="performance-counter-source-configuration"></a>

 이`WindowsPerformanceCounterSource`유형은 Windows에서 성능 카운터 메트릭을 수집합니다. 다음은 예제입니다.`WindowsPerformanceCounterSource`선언: 

```
{
	"Id": "MyPerformanceCounter",
	"SourceType": "WindowsPerformanceCounterSource",
	"Categories": [{
			"Category": "Server",
			"Counters": ["Files Open", "Logon Total", "Logon/sec", "Pool Nonpaged Bytes"]
		},
		{
			"Category": "System",
			"Counters": ["Processes", "Processor Queue Length", "System Up Time"]
		},
		{
			"Category": "LogicalDisk",
			"Instances": "*",
			"Counters": [
				"% Free Space", "Avg. Disk Queue Length",
				{
					"Counter": "Disk Reads/sec",
					"Unit": "Count/Second"
				},
				"Disk Writes/sec"
			]
		},
		{
			"Category": "Network Adapter",
			"Instances": "^Local Area Connection\* \d$",
			"Counters": ["Bytes Received/sec", "Bytes Sent/sec"]
		}
	]
}
```

모두`WindowsPerformanceCounterSource`선언은 다음 키-값 페어를 제공할 수 있습니다.

`SourceType`  
리터럴 문자열이어야 합니다.`"WindowsPerformanceCounterSource"`(필수).

`Categories`  
Windows에서 수집할 성능 카운터 메트릭 그룹 집합을 지정합니다. 각 지표 그룹에는 다음과 같은 키-값 페어가 저장됩니다.    
`Category`  
수집할 메트릭 카운터 집합을 지정합니다 (필수).  
`Instances`  
개체당 고유한 성능 카운터 집합이 있을 때 관심 있는 개체 집합을 지정합니다. 예를 들어 범주가`LogicalDisk`에는 디스크 드라이브당 일련의 성능 카운터가 있습니다. 이 키-값 페어는 선택 사항입니다. 와일드 카드를 사용할 수 있습니다.`*`및`?`를 사용하여 여러 인스턴스와 일치시킵니다. 모든 인스턴스에서 값을 집계하려면`_Total`.  
다음을 사용할 수도 있습니다.`InstanceRegex`를 포함하는 정규 표현식을 받아들이는`*`와일드카드 문자를 인스턴스 이름의 일부로 사용합니다.  
`Counters`  
지정된 범주에 대해 수집할 메트릭을 지정합니다. 이 키-값 페어가 필요합니다. 와일드 카드를 사용할 수 있습니다.`*`및`?`를 사용하여 여러 카운터를 일치시킵니다. 다음을 지정할 수 있습니다.`Counters`이름만 사용하거나 이름과 단위를 사용하여. 카운터 단위를 지정하지 않으면 Windows용 Kinesis 에이전트는 이름에서 장치를 유추하려고 시도합니다. 이러한 추론이 올바르지 않으면 단위를 명시 적으로 지정할 수 있습니다. 변경할 수 있습니다.`Counter`이름을 지정할 수 있습니다. 카운터의 보다 복잡한 표현은 다음 키-값 페어를 사용하는 객체입니다.    
`Counter`  
카운터의 이름입니다. 이 키-값 페어가 필요합니다.  
`Rename`  
싱크대에 제시 할 카운터의 이름입니다. 이 키-값 페어는 선택 사항입니다.  
`Unit`  
카운터와 연관된 값의 의미입니다. 유효한 장치 이름의 전체 목록은[MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)의*Amazon CloudWatch API 참조*.
다음은 복잡한 카운터 사양을 보여주는 예제입니다.  

```
{
   "Counter": "Disk Reads/sec, 
   "Rename": "Disk Reads per second",
   "Unit": "Count/Second"
}
```

`WindowsPerformanceCounterSource`은 Amazon CloudWatch 싱크를 지정하는 파이프에서만 사용할 수 있습니다. Windows용 Kinesis 에이전트의 기본 제공 지표도 CloudWatch 로 스트리밍되는 경우 별도의 싱크를 사용합니다. 서비스 시작 후 Kinesis Agent for Windows용 로그를 검사하여 장치가`WindowsPerformanceCounterSource`선언을 참조하십시오. PowerShell 을 사용 하 여 범주, 인스턴스 및 카운터에 대 한 유효한 이름을 확인 합니다.

카운터 세트와 연결된 카운터를 포함하여 모든 범주에 대한 정보를 보려면 PowerShell 창에서 다음 명령을 실행합니다.

```
    Get-Counter -ListSet * | Sort-Object
```

카운터 집합의 각 카운터에 사용할 수 있는 인스턴스를 확인하려면 PowerShell 창에서 다음 예제와 유사한 명령을 실행합니다.

```
    Get-Counter -Counter "\Process(*)\% Processor Time"
```

의 값`Counter`매개 변수의 경로 중 하나여야 합니다.`PathsWithInstances`멤버 앞에 나열된`Get-Counter -ListSet`명령 호출로 이동합니다.

## Windows용 Kinesis 에이전트 기본 제공 메트릭 소스
<a name="kinesis-agent-builin-metrics-source"></a>

다음과 같은 일반적인 메트릭 소스 외에도`WindowsPerformanceCounterSource`유형 ([창기능카운터 소스 구성](#performance-counter-source-configuration)) 에서 CloudWatch 싱크 유형은 Windows용 Kinesis 에이전트에 대한 메트릭을 수집하는 특수 소스에서 메트릭을 수신할 수 있습니다. 또한 Windows용 Kinesis 에이전트 측정치를 사용할 수도 있습니다.`KinesisTap`Windows 성능 카운터의 범주입니다.

이`MetricsFilter`키-값 쌍은 내장 Windows용 Kinesis 에이전트 메트릭 소스에서 CloudWatch로 스트리밍되는 메트릭을 지정합니다. 값은 세미콜론으로 구분된 하나 이상의 필터 표현식을 포함하는 문자열입니다. 예를 들면 다음과 같습니다.

`"MetricsFilter": "`*필터변환 표현식1*`;`*필터변환 표현식2*`"`

하나 이상의 필터 표현식과 일치하는 지표는 CloudWatch 로 스트리밍됩니다.

단일 인스턴스 메트릭은 본질적으로 전역이며 특정 소스 또는 싱크에 연결되지 않습니다. 여러 인스턴스 메트릭은 소스 또는 싱크 선언에 따라 차원적`Id`. 각 소스 또는 싱크 유형은 서로 다른 메트릭 집합을 가질 수 있습니다.

Windows용 Kinesis 에이전트 메트릭 이름의 기본 제공 목록은[Windows용 Kinesis 에이전트 메트릭 목록](#kinesis-agent-metric-list).

단일 인스턴스 메트릭의 경우 필터 표현식은 메트릭의 이름입니다. 예를 들면 다음과 같습니다.

```
"MetricsFilter": "SourcesFailedToStart;SinksFailedToStart"
```

여러 인스턴스 메트릭의 경우 필터 표현식은 메트릭의 이름, 마침표 (`.`) 를 선택한 다음`Id`해당 메트릭을 생성 한 소스 또는 싱크 선언의 예를 들어, 싱크 선언이 있다고 가정하면`Id`의`MyFirehose`:

```
"MetricsFilter": "KinesisFirehoseRecordsFailedNonrecoverable.MyFirehose"      
```

단일 인스턴스 메트릭과 다중 인스턴스 메트릭을 구분하도록 설계된 특수 와일드카드 패턴을 사용할 수 있습니다.
+ 별표 (`*`) 는 마침표를 제외한 0 개 이상의 문자와 일치합니다 (`.`).
+ 물음표 (`?`) 는 마침표를 제외한 한 문자와 일치합니다.
+ 다른 문자는 자체 만 일치합니다.
+ `_Total`는 차원에서 일치하는 모든 여러 인스턴스 값을 집계하는 특수 토큰입니다.

다음 예제에서는 모든 단일 인스턴스 지표를 찾습니다.

```
"MetricsFilter": "*"
```

별표가 기간 문자와 일치하지 않으므로 단일 인스턴스 메트릭만 포함됩니다.

다음 예제에서는 여러 인스턴스 지표를 모두 비교합니다.

```
"MetricsFilter": "*.*"
```

다음 예제에서는 모든 지표 (단일 및 다중) 와 일치합니다.

```
"MetricsFilter": "*;*.*"
```

다음 예에서는 모든 소스 및 싱크에서 여러 인스턴스 메트릭을 모두 집계합니다.

```
"MetricsFilter": "*._Total"
```

다음 예제에서는 모든 Kinesis Data Firehose 싱크에 대한 모든 Kinesis 데이터 파이어호스 지표를 집계합니다.

```
"MetricsFilter": "*Firehose*._Total"
```

다음 예제에서는 모든 단일 인스턴스 오류 메트릭과 다중 인스턴스 오류 메트릭을 일치시킵니다.

```
"MetricsFilter": "*Failed*;*Error*.*;*Failed*.*"
```

다음 예에서는 모든 소스 및 싱크에서 집계된 복구 불가능한 모든 오류 메트릭을 찾습니다.

```
"MetricsFilter": "*Nonrecoverable*._Total"
```



Windows용 Kinesis 에이전트 기본 제공 메트릭 소스를 사용하는 파이프를 지정하는 방법에 대한 자세한 내용은[Windows 메트릭 파이프용 Kinesis 에이전트 구성](pipe-object-declarations.md#kinesis-agent-metric-pipe-configuration).

## Windows용 Kinesis 에이전트 메트릭 목록
<a name="kinesis-agent-metric-list"></a>

다음은 Windows용 Kinesis 에이전트에서 사용할 수 있는 단일 인스턴스 및 여러 인스턴스 메트릭의 목록입니다.

### 단일 인스턴스 지표
<a name="single-instance-metrics"></a>

다음과 같은 단일 인스턴스 지표를 사용할 수 있습니다.

`KinesisTapBuildNumber`  
Windows용 Kinesis 에이전트의 버전 번호입니다.

`PipesConnected`  
얼마나 많은 파이프가 소스를 싱크대에 성공적으로 연결했는지.

`PipesFailedToConnect`  
얼마나 많은 파이프가 소스를 싱크대에 연결했습니까?

`SinkFactoriesFailedToLoad`  
Windows용 Kinesis 에이전트에 로드되지 않은 싱크 유형이 몇 개입니까?

`SinkFactoriesLoaded`  
Windows용 Kinesis 에이전트에 성공적으로 로드된 싱크 유형 수

`SinksFailedToStart`  
얼마나 많은 싱크가 성공적으로 시작되지 않았습니까? 대개 잘못된 싱크 선언으로 인해.

`SinksStarted`  
얼마나 많은 싱크가 성공적으로 시작되었는지.

`SourcesFailedToStart`  
얼마나 많은 소스가 성공적으로 시작되지 않았습니까? 대개 잘못된 소스 선언으로 인해.

`SourcesStarted`  
얼마나 많은 출처가 성공적으로 시작되었는지.

`SourceFactoriesFailedToLoad`  
Windows용 Kinesis 에이전트에 로드되지 않은 소스 유형 수

`SourceFactoriesLoaded`  
Windows용 Kinesis 에이전트에 성공적으로 로드된 소스 유형 수

### 다중 인스턴스 지표
<a name="multiple-instance-metrics"></a>

다음과 같은 여러 인스턴스 지표를 사용할 수 있습니다.

#### 디렉토리소스 지표
<a name="directory-source-metrics"></a>

`DirectorySourceBytesRead`  
이 간격 동안 읽은 바이트 수`DirectorySource`.

`DirectorySourceBytesToRead`  
Windows용 Kinesis 에이전트에서 아직 읽지 않은 읽을 수 있는 알려진 바이트 수입니다.

`DirectorySourceFilesToProcess`  
Windows용 Kinesis 에이전트에서 아직 검사하지 않은 알려진 파일 수

`DirectorySourceRecordsRead`  
이 간격 동안 읽은 레코드 수`DirectorySource`.

#### 창로그소스 지표
<a name="windows-event-log-source-metrics"></a>

`EventLogSourceEventsError`  
얼마나 많은 Windows 이벤트 로그 이벤트를 성공적으로 읽지 못했습니다.

`EventLogSourceEventsRead`  
얼마나 많은 Windows 이벤트 로그 이벤트를 성공적으로 읽었습니다.

#### KinesisFirehose 싱크 메트릭
<a name="kinesis-firehose-sink-metrics"></a>

`KinesisFirehoseBytesAccepted`  
간격 동안 허용되는 바이트 수입니다.

`KinesisFirehoseClientLatency`  
레코드 생성과 레코드 스트리밍 사이에 Kinesis Data Firehose 서비스에 전달된 시간이 얼마나 걸렸습니다.

`KinesisFirehoseLatency`  
Kinesis Data Firehose 서비스에 대한 레코드 스트리밍의 시작과 종료 사이에 경과된 시간

`KinesisFirehoseNonrecoverableServiceErrors`  
재시도에도 불구하고 Kinesis Data Firehose 서비스에 오류 없이 레코드를 전송할 수 없는 횟수입니다.

`KinesisFirehoseRecordsAttempted`  
Kinesis Data Firehose 서비스로 스트리밍하려고 시도한 레코드의 수입니다.

`KinesisFirehoseRecordsFailedNonrecoverable`  
재시도에도 불구하고 Kinesis Data Firehose 서비스에 성공적으로 스트리밍되지 않은 레코드 수

`KinesisFirehoseRecordsFailedRecoverable`  
얼마나 많은 레코드가 Kinesis Data Firehose 서비스로 성공적으로 스트리밍되었으나 재시도만 가능합니다.

`KinesisFirehoseRecordsSuccess`  
재시도 없이 Kinesis Data Firehose 서비스로 성공적으로 스트리밍된 레코드 수

`KinesisFirehoseRecoverableServiceErrors`  
얼마나 많은 레코드가 Kinesis Data Firehose 서비스로 성공적으로 전송될 수 있었지만 재시도만 가능합니다.

#### KinesisStream 지표
<a name="kinesis-stream-metrics"></a>

`KinesisStreamBytesAccepted`  
간격 동안 허용되는 바이트 수입니다.

`KinesisStreamClientLatency`  
레코드 생성과 레코드 스트리밍 사이에 Kinesis Data Streams 서비스로 전달된 시간

`KinesisStreamLatency`  
Kinesis Data Streams 서비스에 대한 레코드 스트리밍의 시작과 끝 사이에 경과된 시간입니다.

`KinesisStreamNonrecoverableServiceErrors`  
재시도에도 불구하고 Kinesis Data Streams 서비스에 오류 없이 레코드를 전송할 수 없는 횟수입니다.

`KinesisStreamRecordsAttempted`  
Kinesis Data Streams 서비스로 스트리밍하려고 시도한 레코드 수입니다.

`KinesisStreamRecordsFailedNonrecoverable`  
재시도에도 불구하고 Kinesis Data Streams 서비스에 성공적으로 스트리밍되지 않은 레코드 수입니다.

`KinesisStreamRecordsFailedRecoverable`  
얼마나 많은 레코드가 Kinesis Data Streams 서비스로 성공적으로 스트리밍되었으나 재시도만 가능합니다.

`KinesisStreamRecordsSuccess`  
재시도 없이 Kinesis Data Streams 서비스로 성공적으로 스트리밍된 레코드 수입니다.

`KinesisStreamRecoverableServiceErrors`  
Kinesis Data Streams 서비스에 성공적으로 레코드가 전송될 수 있지만 재시도만 가능합니다.

#### CloudWatch Log 지표
<a name="cloud-watch-log-metrics"></a>

`CloudWatchLogBytesAccepted`  
간격 동안 허용되는 바이트 수입니다.

`CloudWatchLogClientLatency`  
CloudWatch Logs 서비스에 대한 레코드 생성과 레코드 스트리밍 사이에 경과된 시간입니다.

`CloudWatchLogLatency`  
CloudWatch Logs 서비스에 대한 레코드 스트리밍의 시작과 끝 사이에 경과된 시간입니다.

`CloudWatchLogNonrecoverableServiceErrors`  
재시도에도 불구하고 CloudWatch Logs 서비스에 오류 없이 레코드를 전송할 수 없는 횟수입니다.

`CloudWatchLogRecordsAttempted`  
CloudWatch Logs 서비스로 스트리밍하려고 시도한 레코드 수입니다.

`CloudWatchLogRecordsFailedNonrecoverable`  
재시도에도 불구하고 CloudWatch Logs 서비스로 스트리밍되지 않은 레코드 수입니다.

`CloudWatchLogRecordsFailedRecoverable`  
CloudWatch Logs 서비스로 성공적으로 스트리밍된 레코드 수 (재시도 횟수만 포함)

`CloudWatchLogRecordsSuccess`  
다시 시도 없이 CloudWatch Logs 서비스로 성공적으로 스트리밍된 레코드 수입니다.

`CloudWatchLogRecoverableServiceErrors`  
레코드를 CloudWatch Logs 서비스로 성공적으로 전송할 수 있지만 재시도만 할 수 있습니다.

#### CloudWatch 측정치
<a name="cloud-watch-metrics"></a>

`CloudWatchLatency`  
CloudWatch 서비스에 대한 지표 스트리밍의 시작과 끝 사이에 평균 시간이 경과된 시간입니다.

`CloudWatchNonrecoverableServiceErrors`  
재시도에도 불구하고 CloudWatch 서비스에 오류 없이 지표를 전송할 수 없는 횟수입니다.

`CloudWatchRecoverableServiceErrors`  
지표가 CloudWatch 서비스에 오류 없이 전송되었으나 재시도로만 전송된 횟수입니다.

`CloudWatchServiceSuccess`  
재시도 없이 CloudWatch 서비스에 오류 없이 지표가 전송된 횟수입니다.

## 책갈피 구성
<a name="advanced-source-configuration"></a>

 기본적으로 Windows용 Kinesis 에이전트는 에이전트가 시작된 후 생성된 싱크로 로그 레코드를 전송합니다. 때로는 자동 업데이트 중에 Kinesis Agent가 중지되는 기간 동안 생성된 로그 레코드와 같이 이전 로그 레코드를 전송하는 것이 유용합니다. 북마크 기능은 싱크로 전송 된 레코드를 추적합니다. Windows용 Kinesis 에이전트가 북마크 모드에 있고 시작되면 이후에 생성된 모든 로그 레코드와 함께 Windows용 Kinesis 에이전트가 중지된 후 생성된 모든 로그 레코드가 전송됩니다. 이 동작을 제어하기 위해 파일 기반 소스 선언에는 선택적으로 다음 키 - 값 쌍이 포함될 수 있습니다.

`InitialPosition`  
책갈피의 초기 상황을 지정합니다. 가능한 값은 다음과 같습니다.    
`EOS`  
EOS (스트림의 끝) 를 지정합니다. 에이전트가 실행되는 동안 생성된 로그 레코드만 싱크로 전송됩니다.  
`0`  
사용 가능한 모든 로그 레코드와 이벤트가 처음에 전송됩니다. 그런 다음 북마크가 생성되어 북마크가 생성된 후 생성된 모든 새 로그 레코드와 이벤트가 결국 전송되도록 하기 위해 Kinesis Agent for Windows용 실행 여부와 상관없이 북마크가 생성됩니다.  
`Bookmark`  
북마크는 최신 로그 레코드 또는 이벤트 직후에 초기화됩니다. 그런 다음 북마크가 생성되어 북마크가 생성된 후 생성된 모든 새 로그 레코드와 이벤트가 결국 전송되도록 하기 위해 Kinesis Agent for Windows용 실행 여부와 상관없이 북마크가 생성됩니다.  
책갈피는 기본적으로 활성화되어 있습니다. 파일은`%ProgramData%\Amazon\KinesisTap`디렉토리에 추가합니다.  
`Timestamp`  
로그 레코드 및 이벤트 후에 생성 된`InitialPositionTimestamp`값 (정의 다음) 이 전송됩니다. 그런 다음 책갈피가 생성되어 북마크가 생성된 후 생성된 모든 새 로그 레코드와 이벤트가 결국 Windows용 Kinesis 에이전트가 실행 중인지 여부에 관계없이 전송됩니다.

`InitialPositionTimestamp`  
원하는 가장 빠른 로그 레코드 또는 이벤트 타임스탬프를 지정합니다. 이 키-값 페어를 지정하는 경우`InitialPosition`의 값은`Timestamp`.

`BookmarkOnBufferFlush`  
 이 설정은 북마크 가능한 소스에 추가할 수 있습니다. 로 설정된 경우`true`를 사용하면 싱크가 AWS 에 이벤트를 성공적으로 발송할 때만 책갈피 업데이트가 수행되도록 할 수 있습니다. 단일 싱크만 소스에 가입할 수 있습니다. 로그를 여러 대상으로 발송하는 경우 소스를 복제하여 데이터 손실과 관련된 잠재적인 문제를 방지하십시오.

Windows용 Kinesis 에이전트가 오랫동안 중지된 경우 북마크된 로그 레코드와 이벤트가 더 이상 존재하지 않을 수 있으므로 해당 책갈피를 삭제해야 할 수 있습니다. 주어진 북마크 파일*소스 ID*은 에 위치합니다.`%PROGRAMDATA%\Amazon\AWSKinesisTap\source id.bm`.

이름이 바뀌거나 잘린 파일에는 책갈피가 작동하지 않습니다. ETW 이벤트 및 성능 카운터의 특성으로 인해 북마크할 수 없습니다.

# sink 선언
<a name="sink-object-declarations"></a>

*sink 선언*는 다양한 AWS 서비스로 전송해야 하는 로그, 이벤트 및 메트릭을 지정할 수 있습니다. 다음 섹션에서는 Microsoft Windows용 Amazon Kinesis 에이전트에서 사용할 수 있는 기본 제공 싱크 유형의 구성에 대해 설명합니다. Windows용 Kinesis 에이전트는 확장할 수 있으므로 사용자 정의 싱크 유형을 추가할 수 있습니다. 각 싱크 유형은 일반적으로 해당 싱크 유형과 관련된 구성 선언에서 고유 한 키 - 값 쌍을 필요로합니다.

모든 싱크 선언은 다음 키-값 페어를 포함할 수 있습니다.

`Id`  
구성 파일 (필수) 에서 특정 싱크를 식별하는 고유한 문자열입니다.

`SinkType`  
이 싱크에 대한 싱크 유형의 이름입니다 (필수 사항). 싱크 유형은 이 싱크에서 스트리밍되는 로그, 이벤트 또는 메트릭 데이터의 대상을 지정합니다.

`AccessKey`  
싱크 유형과 연결된 AWS 서비스에 대한 액세스 권한을 부여할 때 사용할 AWS 액세스 키를 지정합니다. 이 키-값 페어는 선택 사항입니다. 자세한 내용은 [sink 보안 구성](#configuring-kinesis-agent-windows-sink-security-configuration) 섹션을 참조하세요.

`SecretKey`  
싱크 유형과 연결된 AWS 서비스에 대한 액세스 권한을 부여할 때 사용할 AWS 보안 키를 지정합니다. 이 키-값 페어는 선택 사항입니다. 자세한 내용은 [sink 보안 구성](#configuring-kinesis-agent-windows-sink-security-configuration) 섹션을 참조하세요.

`Region`  
스트리밍을 위한 대상 리소스가 포함된 AWS 리전을 지정합니다. 이 키-값 페어는 선택 사항입니다.

`ProfileName`  
인증에 사용할 AWS 프로필을 지정합니다. 이 키 - 값 쌍은 선택 사항이지만, 지정된 경우, 지정된 액세스 키와 비밀 키를 재정의합니다. 자세한 내용은 [sink 보안 구성](#configuring-kinesis-agent-windows-sink-security-configuration) 섹션을 참조하세요.

`RoleARN`  
싱크 유형과 연결된 AWS 서비스에 액세스할 때 사용할 IAM 역할을 지정합니다. 이 옵션은 Windows용 Kinesis 에이전트가 EC2 인스턴스에서 실행 중이지만 인스턴스 프로필에서 참조하는 역할보다 다른 역할이 더 적합할 때 유용합니다. 예를 들어 교차 계정 역할을 사용하여 EC2 인스턴스와 동일한 AWS 계정에 있지 않은 리소스를 타겟팅할 수 있습니다. 이 키-값 페어는 선택 사항입니다.

`Format`  
스트리밍 전에 로그 및 이벤트 데이터에 적용되는 직렬화 종류를 지정합니다. 유효한 값은 `json` 및 `xml`입니다. 이 옵션은 데이터 파이프라인의 다운스트림 분석에서 특정 형식의 데이터를 요구하거나 선호하는 경우에 유용합니다. 이 키-값 쌍은 선택 사항이며, 지정하지 않으면 소스의 일반 텍스트가 싱크에서 싱크 유형과 연결된 AWS 서비스로 스트리밍됩니다.

`TextDecoration`  
없는 경우`Format`가 지정되어 있는 경우`TextDecoration`는 로그 또는 이벤트 레코드를 스트리밍할 때 포함할 추가 텍스트를 지정합니다. 자세한 내용은 [싱크 장식 구성](#configuring-kinesis-agent-windows-decoration-configuration) 섹션을 참조하세요. 이 키-값 페어는 선택 사항입니다.

`ObjectDecoration`  
일시`Format`가 지정되어 있는 경우`ObjectDecoration`는 직렬화 및 스트리밍 전에 로그 또는 이벤트 레코드에 포함될 추가 데이터를 지정합니다. 자세한 내용은 [싱크 장식 구성](#configuring-kinesis-agent-windows-decoration-configuration) 섹션을 참조하세요. 이 키-값 페어는 선택 사항입니다.

`BufferInterval`  
싱크 유형과 연결된 AWS 서비스에 대한 API 호출을 최소화하기 위해 Windows용 Kinesis 에이전트는 스트리밍하기 전에 여러 로그, 이벤트 또는 메트릭 레코드를 버퍼링합니다. 이를 통해 API 호출당 청구되는 서비스에 대한 비용을 절감할 수 있습니다.`BufferInterval`는 AWS 서비스로 스트리밍하기 전에 레코드가 버퍼링되어야 하는 최대 시간 (초) 을 지정합니다. 이 키 - 값 쌍은 선택 사항이며, 지정된 경우 값을 나타내는 문자열을 사용합니다.

`BufferSize`  
싱크 유형과 연결된 AWS 서비스에 대한 API 호출을 최소화하기 위해 Windows용 Kinesis 에이전트는 스트리밍하기 전에 여러 로그, 이벤트 또는 메트릭 레코드를 버퍼링합니다. 이를 통해 API 호출당 청구되는 서비스에 대한 비용을 절감할 수 있습니다.`BufferSize`는 AWS 서비스로 스트리밍하기 전에 버퍼링할 최대 레코드 수를 지정합니다. 이 키 - 값 쌍은 선택 사항이며, 지정된 경우 값을 나타내는 문자열을 사용합니다.

`MaxAttempts`  
일관되게 스트리밍이 실패할 경우 Kinesis Agent가 일련의 로그, 이벤트 및 메트릭 레코드를 AWS 서비스로 스트리밍하려고 시도하는 최대 횟수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 문자열을 사용하여 값을 나타냅니다. 기본값은”`3`“.

다양한 종류의 싱크를 사용하는 전체 구성 파일의 예는[Windows 응용 프로그램 이벤트 로그에서 싱크로 스트리밍](configuring-kaw-examples.md#configuring-kaw-examples-sinks).

**Topics**
+ [`KinesisStream`sink 구성](#sink-object-declarations-kinesis-stream)
+ [`KinesisFirehose`sink 구성](#sink-object-declarations-kinesis-firehose)
+ [CloudWatch 싱크 구성](#sink-object-declarations-cloud-watch)
+ [`CloudWatchLogs`sink 구성](#sink-object-declarations-cloud-watch-logs)
+ [로컬`FileSystem`sink 구성](#sink-object-declarations-local-filesystem)
+ [sink 보안 구성](#configuring-kinesis-agent-windows-sink-security-configuration)
+ [구성`ProfileRefreshingAWSCredentialProvider`AWS 자격 증명 새로 고침](#configuring-credential-refresh)
+ [싱크 장식 구성](#configuring-kinesis-agent-windows-decoration-configuration)
+ [싱크 변수 대체 구성](#configuring-kinesis-agent-windows-sink-variable-substitution)
+ [싱크대 대기열 구성](#configuring-kinesis-agent-windows-queuing)
+ [싱크에 대한 프록시 구성](#configuring-kinesis-agent-windows-sink-proxy)
+ [더 많은 싱크 속성에서 해석 변수 구성](#configuring-resolving-variables)
+ [AWS 싱크에서 RoleARN 속성을 사용할 때 AWS STS 리전 엔드포인트 구성](#configuring-sts-endpoints)
+ [AWS 싱크용 VPC 엔드포인트 구성](#configuring-vpc-endpoint)
+ [대체 프록시 수단 구성](#configuring-alternate-proxy)

## `KinesisStream`sink 구성
<a name="sink-object-declarations-kinesis-stream"></a>

이`KinesisStream`싱크 유형은 Kinesis Data Streams 서비스에 기록과 이벤트를 기록합니다. 일반적으로 Kinesis 데이터 스트림으로 스트리밍되는 데이터는 다양한 AWS 서비스를 사용하여 실행되는 하나 이상의 사용자 지정 애플리케이션에 의해 처리됩니다. 데이터는 Kinesis 데이터 스트림을 사용하여 구성된 명명된 스트림으로 스트리밍됩니다. 자세한 내용은 단원을 참조하십시오.*[Amazon Kinesis Data Streams 개발자 가이드](https://docs.aws.amazon.com/streams/latest/dev/)*.

다음은 Kinesis Data Streams 싱크 선언의 예입니다.

```
{
    "Id": "TestKinesisStreamSink",
    "SinkType": "KinesisStream",
    "StreamName": "MyTestStream",
    "Region": "us-west-2"
}
```

모두`KinesisStream`싱크 선언은 다음과 같은 추가 키-값 페어를 제공할 수 있습니다.

`SinkType`  
을 지정해야 하며 값은 리터럴 문자열이어야 합니다.`KinesisStream`.

`StreamName`  
에서 스트리밍된 데이터를 수신하는 Kinesis 데이터 스트림의 이름을 지정합니다.`KinesisStream`싱크 유형 (필수). 데이터를 스트리밍하기 전에 AWS 관리 콘솔, AWS CLI에서 또는 Kinesis 데이터 스트림 API를 사용하는 애플리케이션을 통해 스트림을 구성합니다.

`RecordsPerSecond`  
초당 Kinesis Data Streams 으로 스트리밍되는 최대 레코드 수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본 값은 1000 개 레코드입니다.

`BytesPerSecond`  
Kinesis Data Streams 으로 스트리밍되는 초당 최대 바이트 수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본값은 1MB입니다.

기본 설정`BufferInterval`이 싱크 유형의 경우 1 초이고 기본`BufferSize`은 500개의 레코드입니다.

## `KinesisFirehose`sink 구성
<a name="sink-object-declarations-kinesis-firehose"></a>

이`KinesisFirehose`싱크 유형은 Kinesis Data Firehose 서비스에 로그 레코드와 이벤트를 스트리밍합니다. Kinesis Data Firehose 는 스트리밍된 데이터를 스토리지용으로 다른 서비스로 제공합니다. 일반적으로 저장된 데이터는 데이터 파이프라인의 후속 단계에서 분석됩니다. 데이터는 Kinesis Data Firehose 를 사용하여 구성된 명명된 전송 스트림으로 스트리밍됩니다. 자세한 내용은 단원을 참조하십시오.*[Amazon Kinesis Data Firehose se를 개발자 가이드](https://docs.aws.amazon.com/firehose/latest/dev/)*.

다음은 Kinesis Data Firehose 싱크 선언의 예입니다.

```
{
   "Id": "TestKinesisFirehoseSink",
   "SinkType": "KinesisFirehose",
   "StreamName": "MyTestFirehoseDeliveryStream",
   "Region": "us-east-1",
   "CombineRecords": "true"
}
```

모두`KinesisFirehose`싱크 선언은 다음과 같은 추가 키-값 페어를 제공할 수 있습니다.

`SinkType`  
을 지정해야 하며 값은 리터럴 문자열이어야 합니다.`KinesisFirehose`.

`StreamName`  
에서 스트리밍된 데이터를 수신하는 Kinesis Data Firehose 전송 스트림의 이름을 지정합니다.`KinesisStream`싱크 유형 (필수). 데이터를 스트리밍하기 전에 AWS 관리 콘솔, AWS CLI를 사용하거나 Kinesis Data Firehose API를 사용하는 애플리케이션을 통해 전송 스트림을 구성합니다.

`CombineRecords`  
로 설정된 경우`true`는 여러 개의 작은 레코드를 최대 크기가 5KB인 큰 레코드로 결합하도록 지정합니다. 이 키-값 페어는 선택 사항입니다. 이 함수를 사용하여 결합 된 레코드는`\n`. AWS Lambda 를 사용하여 Kinesis Data Firehose 레코드를 변환하는 경우 Lambda 함수에서 구분 문자를 고려해야 합니다.

`RecordsPerSecond`  
초당 Kinesis Data Streams 으로 스트리밍되는 최대 레코드 수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본값은 5000개 레코드입니다.

`BytesPerSecond`  
초당 Kinesis Data Streams 으로 스트리밍되는 최대 바이트 수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본값은 5MB입니다.

기본 설정`BufferInterval`이 싱크 유형의 경우 1 초이고 기본`BufferSize`은 500개의 레코드입니다.

## CloudWatch 싱크 구성
<a name="sink-object-declarations-cloud-watch"></a>

이`CloudWatch`싱크 유형은 메트릭을 CloudWatch 서비스로 스트리밍합니다. AWS Management Console에서 지표를 볼 수 있습니다. 자세한 내용은 *[Amazon CloudWatch 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)*를 참조하십시오.

다음은 예제입니다.`CloudWatch`sink 선언:

```
{
   "Id": "CloudWatchSink",
   "SinkType": "CloudWatch"
}
```

모두`CloudWatch`싱크 선언은 다음과 같은 추가 키-값 페어를 제공할 수 있습니다.

`SinkType`  
을 지정해야 하며 값은 리터럴 문자열이어야 합니다.`CloudWatch`.

`Interval`  
Windows용 Kinesis 에이전트가 메트릭을 CloudWatch 서비스에 보고하는 빈도 (초) 를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본 값은 60초입니다. 고해상도 CloudWatch 메트릭을 원할 경우 1초를 지정합니다.

`Namespace`  
지표 데이터가 보고되는 CloudWatch 네임스페이스를 지정합니다. CloudWatch 네임스페이스는 지표 집합을 함께 그룹화합니다. 이 키-값 페어는 선택 사항입니다. 기본 값은 `KinesisTap`입니다.

`Dimensions`  
네임스페이스 내에서 메트릭 집합을 격리하는 데 사용되는 CloudWatch 차원을 지정합니다. 예를 들어 각 데스크톱 또는 서버에 대해 별도의 메트릭 데이터 세트를 제공하는 데 유용할 수 있습니다. 이 키-값 쌍은 선택 사항이며, 지정된 경우 값은 다음 형식을 준수해야 합니다.`"`*키1*`=`*Value1*;*키 2*`=`*Value2...*`"`. 기본 값은 `"ComputerName={computername};InstanceId={instance_id}"`입니다. 이 값은 싱크 변수 대체를 지원합니다. 자세한 내용은 [싱크 변수 대체 구성](#configuring-kinesis-agent-windows-sink-variable-substitution) 섹션을 참조하세요.

`MetricsFilter`  
내장된 Windows용 Kinesis 에이전트 메트릭 소스에서 CloudWatch 로 스트리밍되는 메트릭을 지정합니다. 이 키-값 쌍의 값 구문 세부 정보를 포함하여 기본 제공 Kinesis Windows용 에이전트 메트릭 소스에 대한 자세한 내용은[Windows용 Kinesis 에이전트 기본 제공 메트릭 소스](source-object-declarations.md#kinesis-agent-builin-metrics-source).

## `CloudWatchLogs`sink 구성
<a name="sink-object-declarations-cloud-watch-logs"></a>

이`CloudWatchLogs`싱크 유형은 Amazon CloudWatch Logs Logs로 기록과 이벤트를 스트림합니다. AWS Management Console에서 로그를 보거나 데이터 파이프라인의 추가 단계를 통해 로그를 처리할 수 있습니다. 데이터는 CloudWatch Logs 로그에 구성된 명명된 로그 스트림으로 스트리밍됩니다. 로그 스트림은 명명된 로그 그룹으로 구성됩니다. 자세한 내용은 단원을 참조하십시오.*[Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)*.

다음은 CloudWatch Logs 싱크 선언의 예입니다.

```
{
   "Id": "MyCloudWatchLogsSink",
   "SinkType": "CloudWatchLogs",
   "BufferInterval": "60",
   "BufferSize": "100",
   "Region": "us-west-2",
   "LogGroup": "MyTestLogGroup",
   "LogStream": "MyTestStream"
}
```

모두`CloudWatchLogs`싱크 선언은 다음과 같은 추가 키-값 페어를 제공해야 합니다.

`SinkType`  
리터럴 문자열이어야 합니다.`CloudWatchLogs`.

`LogGroup`  
에서 스트리밍되는 로그 스트림과 이벤트 레코드를 수신하는 로그 스트림이 들어 있는 CloudWatch Logs 그룹의 이름을 지정합니다.`CloudWatchLogs`sink 타입입니다. 지정된 로그 그룹이 존재하지 않는 경우 Windows용 Kinesis 에이전트가 해당 그룹을 생성하려고 합니다.

`LogStream`  
CloudWatch Logs 스트림의 이름을 지정합니다.`CloudWatchLogs`sink 타입입니다. 이 값은 싱크 변수 대체를 지원합니다. 자세한 내용은 [싱크 변수 대체 구성](#configuring-kinesis-agent-windows-sink-variable-substitution) 섹션을 참조하세요. 지정된 로그 스트림이 존재하지 않는 경우 Windows용 Kinesis 에이전트가 해당 스트림을 생성하려고 합니다.

기본 설정`BufferInterval`이 싱크 유형의 경우 1 초이고 기본`BufferSize`은 500개의 레코드입니다. 최대 버퍼 크기는 10,000개 레코드입니다.

## 로컬`FileSystem`sink 구성
<a name="sink-object-declarations-local-filesystem"></a>

싱크 타입`FileSystem`는 로그 및 이벤트 레코드를 AWS 서비스로 스트리밍하지 않고 로컬 파일 시스템의 파일에 저장합니다.`FileSystem`싱크는 테스트 및 진단에 유용합니다. 예를 들어, 이 싱크 유형을 사용하여 레코드를 AWS 로 보내기 전에 레코드를 검사할 수 있습니다.

다음으로 바꿉니다.`FileSystem`싱크의 경우 구성 파라미터를 사용하여 일괄 처리, 제한 및 오류 발생 시 재시도를 시뮬레이션하여 실제 AWS 싱크의 동작을 모방할 수도 있습니다.

에 연결된 모든 소스의 모든 레코드`FileSystem`싱크는 다음과 같이 지정된 단일 파일에 저장됩니다.`FilePath`. 다음의 경우,`FilePath`지정하지 않으면 레코드가 라는 파일에 저장됩니다.`SinkId.txt`의`%TEMP%`디렉토리로, 일반적으로`C:\Users\UserName\AppData\Local\Temp`를 참조하십시오.`SinkId`은 싱크의 고유 식별자입니다.`UserName`은 활성 사용자의 Windows 사용자 이름입니다.

이 싱크 유형은 텍스트 장식 속성을 지원합니다. 자세한 내용은 [싱크 장식 구성](#configuring-kinesis-agent-windows-decoration-configuration) 섹션을 참조하세요.

예제`FileSystem`싱크 유형 구성은 다음 예시와 같이 표시됩니다.

```
{
	   "Id": "LocalFileSink",
	   "SinkType": "FileSystem",
	   "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt",
	   "Format": "json",
	   "TextDecoration": "",
	   "ObjectDecoration": ""
}
```

이`FileSystem`구성은 다음과 같은 키-값 페어입니다.

`SinkType`  
리터럴 문자열이어야 합니다.`FileSystem`.

`FilePath`  
레코드가 저장되는 경로와 파일을 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정하지 않은 경우 기본값은 입니다.`TempPath\\SinkId.txt`를 참조하십시오.`TempPath`에 저장된 폴더입니다.`%TEMP%`및 변수`SinkId`은 싱크의 고유 식별자입니다.

`Format`  
이벤트의 형식이 될 지정합니다.`json`또는`xml`. 이 키 값 쌍은 선택 사항이며 대/소문자를 구분하지 않습니다. 생략하면 이벤트가 일반 텍스트로 파일에 기록됩니다.

`TextDecoration`  
일반 텍스트로 작성된 이벤트에만 적용됩니다. 이 키-값 페어는 선택 사항입니다.

`ObjectDecoration`  
이벤트에만 적용됩니다.`Format`다음의 경우 이 로 설정됩니다.`json`. 이 키-값 페어는 선택 사항입니다.

### 고급 사용 — 스로틀링 및 실패 시뮬레이션 기록
<a name="file-system-sink-advanced"></a>

`FileSystem`는 레코드 제한을 시뮬레이션하여 AWS 싱크의 동작을 모방할 수 있습니다. 다음 키-값 페어를 사용하여 레코드 제한 및 실패 시뮬레이션 속성을 지정할 수 있습니다.

대상 파일에 대한 잠금을 획득하고 쓰기를 방지하여`FileSystem`싱크를 사용하여 네트워크 실패 시 AWS 싱크의 동작을 시뮬레이션하고 검사합니다.

다음 예제는`FileSystem`구성을 시뮬레이션 속성과 함께 사용합니다.

```
{
	   "Id": "LocalFileSink",
	   "SinkType": "FileSystem",
	   "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt",
	   "TextDecoration": "",
	   "RequestsPerSecond": "100",
    "BufferSize": "10",
    "MaxBatchSize": "1024"
}
```

`RequestsPerSecond`  
선택 사항이며 문자열 유형으로 지정됩니다. 생략할 경우 기본값은 입니다.`"5"`. 레코드 수가 아니라 싱크가 처리하는 요청 속도 (즉, 파일에 쓰기) 를 제어합니다. Windows용 Kinesis 에이전트는 AWS 엔드포인트에 일괄 요청을 하므로 요청에 여러 레코드가 포함될 수 있습니다.

`BufferSize`  
선택 사항이며 문자열 유형으로 지정됩니다. 싱크가 파일에 저장하기 전에 배치되는 최대 이벤트 레코드 수를 지정합니다.

`MaxBatchSize`  
선택 사항이며 문자열 유형으로 지정됩니다. 싱크가 파일에 저장하기 전에 배치되는 최대 이벤트 레코드 데이터 양 (바이트) 을 지정합니다.

최대 레코드 속도 제한은`BufferSize`은 요청 당 최대 레코드 수를 결정하고`RequestsPerSecond`. 다음 공식을 사용하여 초당 레코드 속도 제한을 계산할 수 있습니다.

**레코드레이트**=`BufferSize`\$1`RequestsPerSecond`

위의 예에서 구성 값을 감안할 때 초당 1000 레코드의 최대 레코드 속도가 있습니다.

## sink 보안 구성
<a name="configuring-kinesis-agent-windows-sink-security-configuration"></a>

### 인증 구성
<a name="configuring-kinesis-agent-windows-authentication"></a>

Windows용 Kinesis 에이전트가 로그, 이벤트 및 메트릭을 AWS 서비스에 스트리밍하려면 액세스를 인증해야 합니다. Windows용 Kinesis 에이전트에 인증을 제공하는 데에는 다음과 같은 몇 가지 방법이 있습니다. 실행 방법은 Windows용 Kinesis 에이전트가 실행 중인 상황과 특정 조직에 대한 특정 보안 요구 사항에 따라 다릅니다.
+ Windows용 Kinesis 에이전트가 Amazon EC2 호스트에서 실행 중인 경우 인증을 제공하는 가장 안전하고 간단한 방법은 필수 AWS 서비스에 필요한 작업에 충분한 액세스 권한을 가진 IAM 역할과 해당 역할을 참조하는 EC2 인스턴스 프로필을 생성하는 것입니다. 인스턴스 프로필 생성에 대한 자세한 내용은 단원을 참조하십시오.[인스턴스 프로파일 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html). IAM 역할에 추가해야 하는 정책에 대한 자세한 내용은 단원을 참조하십시오.[권한 부여 구성](#configuring-kinesis-agent-windows-authorization).

  인스턴스 프로필을 생성한 후 Windows용 Kinesis 에이전트를 사용하는 EC2 인스턴스와 연결할 수 있습니다. 인스턴스에 이미 연결된 인스턴스 프로필이 있는 경우 해당 인스턴스 프로필과 연결된 역할에 적절한 정책을 연결할 수 있습니다.
+ Windows용 Kinesis 에이전트가 한 계정의 EC2 호스트에서 실행되지만 싱크의 대상인 리소스가 다른 계정에 상주하는 경우 교차 계정 액세스를 위한 IAM 역할을 생성할 수 있습니다. 자세한 내용은 단원을 참조하십시오.[자습서: IAM 역할을 사용하여 AWS 계정 간 액세스 권한 위임](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html). 교차 계정 역할을 생성한 후 교차 계정 역할의 Amazon 리소스 이름 (ARN) 을`RoleARN`싱크 선언에서 키-값 페어입니다. 그런 다음 Windows용 Kinesis 에이전트는 해당 싱크의 싱크 유형과 연결된 AWS 리소스에 액세스할 때 지정된 교차 계정 역할을 수임하려고 시도합니다.
+ Windows용 Kinesis 에이전트가 Amazon EC2 외부에서 실행 중인 경우 (예: 온프레미스) 다음과 같은 몇 가지 옵션이 있습니다.
  + 온프레미스 서버 또는 데스크톱 시스템을 Amazon EC2 Systems Manager 관리 인스턴스로 등록할 수 있는 경우 다음 프로세스를 사용하여 인증을 구성합니다.

    1. 에 설명된 프로세스를 사용하십시오.[하이브리드 환경에서 AWS Systems Manager 설정](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html)를 사용하여 서비스 역할을 만들고, 관리되는 인스턴스에 대한 활성화를 만들고, SSM 에이전트를 설치합니다.

    1. 적절한 정책을 서비스 역할에 연결하여 Kinesis Agent가 구성된 싱크에서 데이터를 스트리밍하는 데 필요한 리소스에 액세스할 수 있도록 합니다. IAM 역할에 추가해야 하는 정책에 대한 자세한 내용은 단원을 참조하십시오.[권한 부여 구성](#configuring-kinesis-agent-windows-authorization).

    1. 에 설명된 프로세스를 사용하십시오.[구성`ProfileRefreshingAWSCredentialProvider`AWS 자격 증명 새로 고침](#configuring-credential-refresh)AWS 자격 증명을 새로 고칩니다.

    SSM 및 AWS 에서 자격 증명을 안전하게 관리하므로 비 EC2 인스턴스에 권장되는 접근 방식입니다.
  + 기본 시스템 계정 대신 특정 사용자로 Kinesis Windows용 에이전트용 AWSkinesistap 서비스를 실행할 수 있는 경우 다음 프로세스를 사용합니다.

    1. AWS 서비스를 사용할 AWS 계정에서 IAM 사용자를 생성합니다. 생성 프로세스 중에 이 사용자의 액세스 키와 보안 키를 캡처합니다. 이 프로세스의 이후 단계를 위해 이 정보가 필요합니다.

    1. 필요한 서비스에 필요한 작업에 대한 액세스 권한을 부여하는 정책을 IAM 사용자에게 연결합니다. IAM 사용자에게 연결할 정책에 대한 자세한 내용은[권한 부여 구성](#configuring-kinesis-agent-windows-authorization).

    1. 각 데스크톱 또는 서버에서 AWSkinesistap 서비스를 변경하여 기본 시스템 계정이 아닌 특정 사용자에서 실행되도록 합니다.

    1. 앞에서 기록한 액세스 키와 보안 키를 사용하여 SDK 저장소에 프로필을 생성합니다. 자세한 내용은 [AWS 자격 증명 구성](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html)을 참조하십시오.

    1. 업데이트`AWSKinesisTap.exe.config`파일의`%PROGRAMFILES%\Amazon\AWSKinesisTap`디렉토리를 클릭하여 이전 단계에서 생성된 프로파일의 이름을 지정합니다. 자세한 내용은 [AWS 자격 증명 구성](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html)을 참조하십시오.

    이는 특정 호스트 및 특정 사용자에 대해 자격 증명이 암호화되므로 관리할 수 없는 비 EC2 호스트에 권장되는 방법입니다.
  + 기본 시스템 계정에서 Windows용 Kinesis 에이전트용 AWSkinesisTap 서비스를 실행해야 하는 경우 공유 자격 증명 파일을 사용해야 합니다. 이는 시스템 계정에 SDK 저장소를 사용하도록 설정하기 위한 Windows 사용자 프로필이 없기 때문입니다. 공유 자격 증명 파일은 암호화되지 않으므로 이 방법을 사용하지 않는 것이 좋습니다. 공유 구성 파일을 사용하는 방법에 대한 자세한 내용은[AWS 자격 증명 구성](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html)의*.NET용 AWS SDK*. 이 방법을 사용하는 경우 NTFS 암호화 및 공유 구성 파일에 대한 제한된 파일 액세스를 사용하는 것이 좋습니다. 키는 관리 플랫폼에 의해 교체되어야 하며, 키 순환이 발생할 때 공유 구성 파일을 업데이트해야 합니다.

싱크 선언에 액세스 키와 비밀 키를 직접 제공 할 수는 있지만 선언이 암호화되지 않기 때문에이 방법은 권장되지 않습니다.

### 권한 부여 구성
<a name="configuring-kinesis-agent-windows-authorization"></a>

다음 정책을 따르는 적절한 정책을 Windows용 Kinesis 에이전트가 AWS 서비스로 데이터를 스트리밍하는 데 사용할 IAM 사용자 또는 역할에 연결합니다.

#### Kinesis Data Streams
<a name="minimum-permissions-kinesis-stream"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "kinesis:PutRecord",
                "kinesis:PutRecords"
            ],
            "Resource": "arn:aws:kinesis:*:*:stream/*"
        }
    ]
}
```

특정 리전, 계정 또는 스트림 이름으로 권한을 제한하려면 ARN 의 적절한 별표를 특정 값으로 바꿉니다. 자세한 내용은 의 “Kinesis Data Streams 의 Amazon 리소스 이름 (ARN) 을 참조하십시오.[IAM을 사용하여 Amazon Kinesis Data Streams 리소스에 대한 액세스 제어](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html).

#### Kinesis Data Firehose
<a name="minimum-permissions-kinesis-firehose"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Resource": "arn:aws:firehose:*:*:deliverystream/*"
        }
    ]
}
```

특정 리전, 계정 또는 전송 스트림 이름으로 권한을 제한하려면 ARN 의 적절한 별표를 특정 값으로 바꿉니다. 자세한 내용은 단원을 참조하십시오.[Amazon Kinesis Data Firehose 를 통한 액세스 제어](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)의*Amazon Kinesis Data Firehose se를 개발자 가이드*.

#### CloudWatch
<a name="minimum-permissions-cloud-watch"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "cloudwatch:PutMetricData",
            "Resource": "*"
        }
    ]
}
```

자세한 내용은 단원을 참조하십시오.[CloudWatch 리소스에 대한 액세스 권한 관리 개요](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-access-control-overview-cw.html)의*Amazon CloudWatch Logs*.

#### 기존 로그 그룹 및 로그 스트림이 있는 CloudWatch 로그
<a name="minimum-permissions-cloud-watch-logs1"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:*"
        },
        {
            "Sid": "VisualEditor4",
            "Effect": "Allow",
            "Action": "logs:PutLogEvents",
            "Resource": "arn:aws:logs:*:*:log-group:*:*:*"
        }
    ]
}
```

특정 리전, 계정, 로그 그룹 또는 로그 스트림에 대한 액세스를 제한하려면 ARN의 적절한 별표를 적절한 값으로 바꿉니다. 자세한 내용은 단원을 참조하십시오.[CloudWatch Logs 리소스에 대한 액세스 권한 관리 개요](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html)의*Amazon CloudWatch Logs*.

#### Kinesis 에이전트에서 로그 그룹 및 로그 스트림을 생성할 수 있는 추가 권한이 있는 CloudWatch 로그
<a name="minimum-permissions-cloud-watch-logs2"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor5",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:*"
        },
        {
            "Sid": "VisualEditor6",
            "Effect": "Allow",
            "Action": "logs:PutLogEvents",
            "Resource": "arn:aws:logs:*:*:log-group:*:*:*"
        },
        {
            "Sid": "VisualEditor7",
            "Effect": "Allow",
            "Action": "logs:CreateLogGroup",
            "Resource": "*"
        }
    ]
}
```

특정 리전, 계정, 로그 그룹 또는 로그 스트림에 대한 액세스를 제한하려면 ARN의 적절한 별표를 적절한 값으로 바꿉니다. 자세한 내용은 단원을 참조하십시오.[CloudWatch Logs 리소스에 대한 액세스 권한 관리 개요](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html)의*Amazon CloudWatch Logs*.

#### EC2 태그 변수 확장에 필요한 권한
<a name="ec2-permissions"></a>

함께 변수 확장을 사용하여`ec2tag`변수 접두사에는`ec2:Describe*`권한을 부여합니다.

```
{
   "Version": "2012-10-17",
   "Statement": [{
      "Sid": "VisualEditor8",
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    }
   ]
}
```

**참고**  
여러 명령문을 단일 정책으로 결합할 수 있습니다.`Sid`는 해당 정책 내에서 고유합니다. 정책 생성에 대한 자세한 내용은 단원을 참조하십시오.[IAM 정책 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)의*IAM 사용 설명서*.

## 구성`ProfileRefreshingAWSCredentialProvider`AWS 자격 증명 새로 고침
<a name="configuring-credential-refresh"></a>

하이브리드 환경에 AWS Systems Manager 사용하여 AWS 자격 증명을 관리하는 경우 시스템 관리자는`c:\Windows\System32\config\systemprofile\.aws\credentials`. 하이브리드 환경을 위한 Systems Manager 에 대한 자세한 내용은[하이브리드 환경을 위한 AWS Systems Manager 설정](https://docs.aws.amazon.com/(systems-manager/latest/userguide/systems-manager-managedinstances.html))의*AWS Systems Manager 사용자 가이드*.

AWS .net SDK는 새 자격 증명을 자동으로 선택하지 않으므로`ProfileRefreshingAWSCredentialProvider`플러그인을 사용하여 자격 증명을 새로 고칩니다.

다음을 수행할 수 있습니다.`CredentialRef`속성을 참조할 수 있는 모든 AWS 동기화 구성의`Credentials`정의를 참조하십시오.`CredentialType`속성이 로 설정되어 있습니다.`ProfileRefreshingAWSCredentialProvider`다음 예제에 표시된 대로 를 사용합니다.

```
{
    "Sinks": [{
		      "Id": "myCloudWatchLogsSink",
		      "SinkType": "CloudWatchLogs",
		      "CredentialRef": "ssmcred",
		      "Region": "us-west-2",
		      "LogGroup": "myLogGroup",
		      "LogStream": "myLogStream"
    }],
    "Credentials": [{
        "Id": "ssmcred",
        "CredentialType": "ProfileRefreshingAWSCredentialProvider",
        "Profile": "default",
        "FilePath": "%USERPROFILE%//.aws//credentials",
        "RefreshingInterval": 300
    }]
}
```

자격 증명 정의는 키-값 페어로 다음과 같은 특성으로 구성됩니다.

`Id`  
싱크 정의를 사용하여 지정할 수있는 문자열을 정의`CredentialRef`을 클릭하여 이 자격 증명 구성을 참조합니다.

`CredentialType`  
리터럴 문자열로 설정`ProfileRefreshingAWSCredentialProvider`.

`Profile`  
선택 사항입니다. 기본값은 `default`입니다.

`FilePath`  
선택 사항입니다. AWS 자격 증명 파일 경로를 지정합니다. 지정하지 않을 경우, `%USERPROFILE%/.aws/credentials`이 기본값입니다.

`RefreshingInterval`  
선택 사항입니다. 자격 증명이 새로 고쳐지는 빈도 (초) 입니다. 지정하지 않을 경우, `300`이 기본값입니다.

## 싱크 장식 구성
<a name="configuring-kinesis-agent-windows-decoration-configuration"></a>

싱크 선언에는 소스에서 수집한 레코드를 향상시키기 위해 다양한 AWS 서비스로 스트리밍할 추가 데이터를 지정하는 키-값 쌍이 선택적으로 포함될 수 있습니다.

`TextDecoration`  
이 키-값 페어를 사용합니다.`Format`은 싱크 선언에 지정됩니다. 이 값은 변수 대체가 발생하는 특수 형식 문자열입니다. 예를 들어,`TextDecoration`의`"{ComputerName}:::{timestamp:yyyy-MM-dd HH:mm:ss}:::{_record}"`싱크대 용으로 제공됩니다. 원본이 텍스트를 포함하는 로그 레코드를 내보내는 경우`The system has resumed from sleep.`이고 해당 소스가 파이프를 통해 싱크에 연결되면`MyComputer1:::2017-10-26 06:14:22:::The system has resumed from sleep.`는 싱크 유형과 연결된 AWS 서비스로 스트리밍됩니다. 이`{_record}`변수는 원본에서 전달한 원본 텍스트 레코드를 참조합니다.

`ObjectDecoration`  
이 키-값 페어를 사용합니다.`Format`레코드 직렬화 전에 추가 데이터를 추가하기 위해 싱크 선언에 지정됩니다. 예를 들어,`ObjectDecoration`의`"ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}"`JSON을 지정하는 싱크에 대해 제공됩니다.`Format`. 싱크 유형과 연결된 AWS 서비스로 스트리밍된 결과 JSON에는 원본의 원본 데이터 외에 다음 키-값 쌍이 포함됩니다.  

```
{
    ComputerName: "MyComputer2",
    DT: "2017-10-17 21:09:04"
}
```
`ObjectDecoration` 사용 예는 [자습서: 윈도우용 Kinesis 에이전트를 사용하여 JSON 로그 파일을 Amazon S3 로 스트리밍](directory-source-to-s3-tutorial.md) 단원을 참조하십시오.

`ObjectDecorationEx`  
에 비해 더 유연한 데이터 추출 및 형식을 허용하는 식을 지정합니다`ObjectDecoration`. 이 필드는 싱크의 형식이 될 때 사용할 수 있습니다`json`. 표현식 구문은 다음과 같습니다.  

```
"ObjectDecorationEx": "attribute1={expression1};attribute2={expression2};attribute3={expression3}(;...)"
```
예를 들어 다음과 같습니다.`ObjectDecorationEx`속성을 사용합니다.  

```
"ObjectDecorationEx": "host={env:ComputerName};message={upper(_record)};time={format(_timestamp, 'yyyyMMdd')}"
```
리터럴 레코드를 변환합니다.  
`System log message`  
표현식에 의해 반환 된 값과 함께 다음과 같이 JSON 객체로:  

```
{
    "host": "EC2AMAZ-1234",
    "message": "SYSTEM LOG MESSAGE",
    "time": "20210201"
}
```
표현식 수식에 대한 자세한 내용은 단원을 참조하십시오.[표현식 쓰기 팁](#configuring-expressions). 대부분의 경우`ObjectDecoration`선언은 타임 스탬프 변수를 제외하고 새로운 구문을 사용하여 작동해야합니다. A`{timestamp:yyyyMMdd}`의 필드를 입력합니다.`ObjectDecoration`로 표현됩니다.`{format(_timestamp,'yyyyMMdd')}`in`ObjectDecorationEx`.

`TextDecorationEx`  
에 비해 더 유연한 데이터 추출 및 형식을 허용하는 식을 지정합니다`TextDecoration`다음 예제에 표시된 대로 을 사용합니다.  

```
"TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"
```
다음을 수행할 수 있습니다.`TextDecorationEx`를 사용하여 JSON 객체를 작성할 수 있습니다. 다음 예제와 같이 '@ \$1'를 사용하여 열린 중괄호를 이스케이프합니다.  

```
"TextDecorationEx": "@{ \"var\": \"{upper($myvar1)}\" }"
```

싱크에 연결된 소스의 소스 유형이`DirectorySource`이면 싱크는 세 가지 추가 변수를 사용할 수 있습니다.

`_FilePath`  
로그 파일의 전체 경로입니다.

`_FileName`  
파일의 파일 이름 및 파일 이름 확장명입니다.

`_Position`  
로그 파일에서 레코드가 있는 위치를 나타내는 정수입니다.

이러한 변수는 모든 레코드를 단일 스트림으로 스트리밍하는 싱크에 연결된 여러 파일에서 로그 레코드를 수집하는 원본을 사용할 때 유용합니다. 이러한 변수의 값을 스트리밍 레코드에 주입하면 데이터 파이프라인의 다운스트림 분석이 파일 및 각 파일 내의 위치별로 레코드를 정렬할 수 있습니다.

### 표현식 쓰기 팁
<a name="configuring-expressions"></a>

표현식은 다음 중 하나일 수 있습니다.
+ 변수 표현식입니다.
+ 상수 표현식 (예:`'hello'`,`1`,`1.21`,`null`,`true`,`false`.
+ 다음 예제와 같이 함수를 호출하는 호출 표현식입니다.

  ```
  regexp_extract('Info: MID 118667291 ICID 197973259 RID 0 To: <jd@acme.com>', 'To: (\\\\S+)', 1)
  ```

#### 특수 문자
<a name="ex-special-char"></a>

특수 문자를 이스케이프하려면 두 개의 백 슬래시가 필요합니다.

#### Nesting
<a name="ex-nesting"></a>

다음 예제와 같이 함수 호출은 중첩될 수 있습니다.

```
format(date(2018, 11, 28), 'MMddyyyy')
```

#### Variables
<a name="ex-variables"></a>

로컬, 메타, 글로벌: 변수의 세 가지 유형이 있습니다.
+ **로컬 변수**로 시작`$`와 같은`$message`. 이벤트 객체의 속성, 이벤트가 사전인 경우 항목 또는 이벤트가 JSON 객체 인 경우 속성을 해결하는 데 사용됩니다. 지역 변수에 공백이나 특수 문자가 포함 된 경우 다음과 같은 인용 된 지역 변수를 사용`$'date created'`.
+ **메타 변수**밑줄로 시작합니다 (`_`) 로 설정되며 이벤트의 메타 데이터를 확인하는 데 사용됩니다. 모든 이벤트 유형은 다음 메타 변수를 지원합니다.  
`_timestamp`  
이벤트의 타임스탬프입니다.  
`_record`  
이벤트의 원시 텍스트 표현입니다.

  로그 이벤트는 다음과 같은 추가 메타 변수를 지원합니다.  
`_filepath`  
  
`_filename`  
  
`_position`  
  
`_linenumber`  


  
+ **전역 변수**는 환경 변수, EC2 인스턴스 메타데이터 또는 EC2Tag로 해석됩니다. 성능을 높이려면 접두사를 사용하여 검색 범위를 제한하는 것이 좋습니다.`{env:ComputerName}`,`{ec2:InstanceId}`, 및`{ec2tag:Name}`.

#### 기본 제공 함수 함수
<a name="ex-built-in-functions"></a>

Windows용 Kinesis 에이전트는 다음과 같은 기본 제공 기능을 지원합니다. 인수 중 하나라도`NULL`이 함수는 처리하도록 설계되지 않았습니다.`NULL`,`NULL`객체가 반환됩니다.

```
//string functions
int length(string input)
string lower(string input)
string lpad(string input, int size, string padstring)
string ltrim(string input)
string rpad(string input, int size, string padstring)
string rtrim(string input)
string substr(string input, int start)
string substr(string input, int start, int length)
string trim(string input)
string upper(string str)

//regular expression functions
string regexp_extract(string input, string pattern)
string regexp_extract(string input, string pattern, int group)

//date functions
DateTime date(int year, int month, int day)
DateTime date(int year, int month, int day, int hour, int minute, int second)
DateTime date(int year, int month, int day, int hour, int minute, int second, int millisecond)

//conversion functions
int? parse_int(string input)
decimal? parse_decimal(string input)
DateTime? parse_date(string input, string format)
string format(object o, string format)

//coalesce functions
object coalesce(object obj1, object obj2)
object coalesce(object obj1, object obj2, object obj3)
object coalesce(object obj1, object obj2, object obj3, object obj4)
object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5) 
object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5, object obj6)
```

## 싱크 변수 대체 구성
<a name="configuring-kinesis-agent-windows-sink-variable-substitution"></a>

이`KinesisStream`,`KinesisFirehose`, 및`CloudWatchLogs`싱크 선언에는`LogStream`또는`StreamName`키-값 페어를 입력합니다. 이러한 키-값의 값에는 Windows용 Kinesis 에이전트에 의해 자동으로 해석되는 변수 참조가 포함될 수 있습니다. 용`CloudWatchLogs`,`LogGroup`키-값 쌍도 필요하며 Windows용 Kinesis 에이전트에 의해 자동으로 해석되는 변수 참조를 포함할 수 있습니다. 변수는 템플릿을 사용하여 지정됩니다`{`*`prefix`*`:`*`variablename`*`}`여기서 각 항목은 다음과 같습니다.*`prefix`*`:`는 선택 사항입니다. 지원되는 접두사는 다음과 같습니다.
+ `env`— 변수 참조가 같은 이름의 환경 변수 값으로 해석됩니다.
+ `ec2`— 변수 참조가 같은 이름의 EC2 인스턴스 메타데이터로 확인됩니다.
+ `ec2tag`— 변수 참조가 같은 이름의 EC2 인스턴스 태그 값으로 확인됩니다. 이`ec2:Describe*`권한은 인스턴스 태그에 액세스하는 데 필요합니다. 자세한 내용은 [EC2 태그 변수 확장에 필요한 권한](#ec2-permissions) 섹션을 참조하세요.

접두사를 지정하지 않으면 다음과 같은 이름의 환경 변수가있는 경우`variablename`이면 변수 참조가 환경 변수 값으로 해석됩니다. 그렇지 않을 경우 입니다.`variablename`확장하는 데`instance_id`또는`hostname`로 설정하면 변수 참조가 동일한 이름의 EC2 메타데이터 값으로 확인됩니다. 그렇지 않으면 변수 참조가 확인되지 않습니다.

다음은 변수 참조를 사용하는 유효한 키-값 페어의 예입니다.

```
"LogStream": "LogStream_{instance_id}"
"LogStream": "LogStream_{hostname}"
"LogStream": "LogStream_{ec2:local-hostname}"
"LogStream": "LogStream_{computername}"
"LogStream": "LogStream_{env:computername}"
```

이`CloudWatchLogs`싱크 선언은 원본의 원래 로그 또는 이벤트 레코드의 타임 스탬프가 로그 스트림의 이름을 변경할 수 있도록 허용하는 특수 형식 타임 스탬프 변수를 지원합니다. 형식은 `{timestamp:``timeformat``}`입니다. 다음 예를 참조하십시오.

```
"LogStream": "LogStream_{timestamp:yyyyMMdd}"
```

로그 또는 이벤트 레코드가 2017년 6월 5일에 생성된 경우`LogStream`이전 예제에서 키-값 페어는`"LogStream_20170605"`.

권한이 있는 경우`CloudWatchLogs`싱크 유형은 생성 된 이름을 기반으로 필요한 경우 자동으로 새 로그 스트림을 만들 수 있습니다. 다른 싱크 유형에서는 스트림 이름 이외의 추가 구성이 필요하기 때문에 이 작업을 수행할 수 없습니다.

텍스트 및 개체 장식에서 발생하는 특수 변수 대체가 있습니다. 자세한 내용은 [싱크 장식 구성](#configuring-kinesis-agent-windows-decoration-configuration) 섹션을 참조하세요.

## 싱크대 대기열 구성
<a name="configuring-kinesis-agent-windows-queuing"></a>

이`KinesisStream`,`KinesisFirehose`, 및`CloudWatchLogs`싱크 선언은 일시적인 연결 문제로 인해 이러한 싱크 유형과 연결된 AWS 서비스로 스트리밍하지 못한 레코드의 대기열을 선택적으로 활성화할 수 있습니다. 연결이 복원될 때 큐 및 자동 스트리밍 재시도를 활성화하려면 싱크 선언에서 다음 키-값 쌍을 사용합니다.

`QueueType`  
사용할 대기열 메커니즘의 종류를 지정합니다. 지원되는 유일한 값은`file`는 레코드가 파일에서 대기열에 있어야 함을 나타냅니다. 이 키-값 쌍은 Windows용 Kinesis 에이전트의 큐 기능을 활성화하기 위해 필요합니다. 지정되지 않은 경우 기본 동작은 메모리에만 대기하고 메모리 대기열 제한에 도달하면 스트리밍에 실패합니다.

`QueuePath`  
대기 중인 레코드의 파일이 들어 있는 폴더 경로를 지정합니다. 이 키-값 페어는 선택 사항입니다. 기본값은 입니다.`%PROGRAMDATA%\KinesisTap\Queue\`*신키드*여기서 각 항목은 다음과 같습니다.*신키드*의 값으로 할당 된 식별자입니다`Id`싱크 선언에 대한.

`QueueMaxBatches`  
스트리밍을 위해 레코드를 대기열에 넣을 때 Kinesis Windows용 에이전트가 사용할 수 있는 총 공간을 제한합니다. 공간의 양은 이 키-값 쌍의 값에 일괄 처리당 최대 바이트 수를 곱한 값으로 제한됩니다. 에 대 한 일괄 처리 당 최대 바이트`KinesisStream`,`KinesisFirehose`, 및`CloudWatchLogs`싱크 유형은 각각 5MB, 4MB 및 1MB입니다. 이 제한에 도달하면 스트리밍 실패가 대기열에 추가되지 않고 복구할 수 없는 실패로 보고됩니다. 이 키-값 페어는 선택 사항입니다. 기본값은 10,000개의 배치입니다.

## 싱크에 대한 프록시 구성
<a name="configuring-kinesis-agent-windows-sink-proxy"></a>

AWS 서비스에 액세스하는 모든 Windows용 Kinesis 에이전트 싱크 유형에 대한 프록시를 구성하려면`%Program Files%\Amazon\KinesisTap\AWSKinesisTap.exe.config`. 지침은 다음 () 을 참조하십시오.`proxy`의 섹션을 참조하십시오.[.NET용 AWS SDK에 대한 구성 파일 참조](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/net-dg-config-ref.html#net-dg-config-ref-elements-proxy)의*.NET용 AWS SDK 개발자 안내서*.

## 더 많은 싱크 속성에서 해석 변수 구성
<a name="configuring-resolving-variables"></a>

다음 예제에서는 사용하는 싱크 구성을 보여 줍니다.`Region`환경 변수의 값에 대한`Region`속성 키-값 페어를. 용`RoleARN`, 그것은 EC2 태그 키를 지정`MyRoleARN`은 해당 키와 연관된 값으로 평가됩니다.

```
"Id": "myCloudWatchLogsSink",
"SinkType": "CloudWatchLogs",
"LogGroup": "EC2Logs",
"LogStream": "logs-{instance_id}"
"Region": "{env:Region}"
"RoleARN": "{ec2tag:MyRoleARN}"
```

## AWS 싱크에서 RoleARN 속성을 사용할 때 AWS STS 리전 엔드포인트 구성
<a name="configuring-sts-endpoints"></a>

이 기능은 Amazon EC2 KinesisPap을 사용하고`RoleARN`속성을 사용하여 대상 AWS 서비스를 인증할 외부 IAM 역할을 가정할 수 있습니다.

설정함으로써`UseSTSRegionalEndpoints`to`true`에서 에이전트가 지역 끝점을 사용하도록 지정할 수 있습니다 (예:`https://sts.us-east-1.amazonaws.com`) 대신 전역 끝점 (예:`https://sts.amazonaws.com`). 지역 STS 끝점을 사용하면 작업에 대한 왕복 대기 시간이 줄어들고 글로벌 끝점 서비스에서 실패의 영향이 제한됩니다.

## AWS 싱크용 VPC 엔드포인트 구성
<a name="configuring-vpc-endpoint"></a>

싱크 구성에서 VPC 엔드포인트를 지정할 수 있습니다.`CloudWatchLogs`,`CloudWatch`,`KinesisStreams`, 및`KinesisFirehose`sink 유형. VPC 엔드포인트를 이용하면 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결 없이도 AWS PrivateLink로 지원하는 지원되는 AWS 서비스 및 VPC 엔드포인트 서비스에 비공개로 연결할 수 있습니다. VPC의 인스턴스는 서비스의 리소스와 통신하는 데 퍼블릭 IP 주소를 필요로 하지 않습니다. VPC와 기타 서비스 간의 트래픽은 Amazon 네트워크를 벗어나지 않습니다. 자세한 내용은 단원을 참조하십시오.[VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)의*Amazon VPC 사용 설명서*.

VPC 엔드포인트는`ServiceURL`속성의 다음 예제에 표시된 대로`CloudWatchLogs`sink 구성을 선택합니다. 값을 설정합니다.`ServiceURL`에 표시된 값으로**VPC 엔드포인트 정보**탭에서 Amazon VPC 콘솔을 사용합니다.

```
{
    "Id": "myCloudWatchLogsSink",
    "SinkType": "CloudWatchLogs",
    "LogGroup": "EC2Logs",
    "LogStream": "logs-{instance_id}",
    "ServiceURL":"https://vpce-ab1c234de56-ab7cdefg.logs.us-east-1.vpce.amazonaws.com"
}
```

## 대체 프록시 수단 구성
<a name="configuring-alternate-proxy"></a>

이 기능을 사용하면 .NET 대신 AWS SDK에 내장된 프록시 지원을 사용하여 싱크 구성으로 프록시 서버를 구성할 수 있습니다. 이전에는 프록시를 사용하도록 에이전트를 구성하는 유일한 방법은.NET의 기본 기능을 사용하는 것이었습니다. 이 기능은 프록시 파일에 정의된 프록시를 통해 모든 HTTP/S 요청을 자동으로 라우팅했습니다.

현재 프록시 서버에서 에이전트를 사용 중인 경우 이 방법을 사용하기 위해 오버를 변경할 필요가 없습니다.

다음을 수행할 수 있습니다.`ProxyHost`및`ProxyPort`속성을 사용하여 다음 예제와 같이 대체 프록시를 구성합니다.

```
{
    "Id": "myCloudWatchLogsSink",
    "SinkType": "CloudWatchLogs",
    "LogGroup": "EC2Logs",
    "LogStream": "logs-{instance_id}",
    "Region": "us-west-2",
    "ProxyHost": "myproxy.mydnsdomain.com",
    "ProxyPort": "8080"
}
```

# 파이프 선언
<a name="pipe-object-declarations"></a>

사용*파이프 선언*를 사용하여 소스를 연결합니다 ([소스 선언](source-object-declarations.md)) 를 싱크 ([sink 선언](sink-object-declarations.md)) Microsoft Windows에 대한 Amazon Kinesis 에이전트에 로그인합니다. 파이프 선언은 JSON 객체로 표현됩니다. Windows용 Kinesis 에이전트가 시작되면 지정된 파이프에 대한 소스에서 로그, 이벤트 또는 메트릭이 수집됩니다. 그런 다음 해당 파이프와 연결된 싱크를 사용하여 다양한 AWS 서비스로 스트리밍됩니다.

다음은 파이프 선언의 예입니다.

```
{
   "Id": "MyAppLogToCloudWatchLogs", 
   "SourceRef": "MyAppLog", 
   "SinkRef": "MyCloudWatchLogsSink" 
}
```

**Topics**
+ [파이프 구성](#kinesis-agent-pipe-configuration)
+ [Windows 메트릭 파이프용 Kinesis 에이전트 구성](#kinesis-agent-metric-pipe-configuration)

## 파이프 구성
<a name="kinesis-agent-pipe-configuration"></a>

모든 파이프 선언에는 다음 키-값 페어가 포함될 수 있습니다.

`Id`  
파이프의 이름을 지정합니다 (필수). 구성 파일 내에서 고유해야 합니다.

`Type`  
로그 데이터가 소스에서 싱크로 전송될 때 파이프에 의해 적용되는 변환 유형 (있는 경우) 을 지정합니다. 지원되는 유일한 값은 `RegexFilterPipe`입니다. 이 값을 사용하면 로그 레코드의 기본 텍스트 표현에 대한 정규 표현식 필터링을 사용할 수 있습니다. 필터링을 사용하면 관련 로그 레코드만 데이터 파이프라인으로 전송하여 전송 및 저장 비용을 줄일 수 있습니다. 이 키-값 페어는 선택 사항입니다. 기본 값은 변환을 제공하지 않는 것입니다.

`FilterPattern`  
에 대한 정규 표현식을 지정합니다`RegexFilterPipe`싱크로 전송되기 전에 소스에서 수집한 로그 레코드를 필터링하는 데 사용되는 파이프라인 로그 레코드는`RegexFilterPipe`유형 파이프는 정규 표현식이 레코드의 기본 텍스트 표현과 일치 할 때 사용됩니다. 생성된 구조화된 로그 레코드 (예:`ExtractionPattern`키-값 페어를 입력합니다.`DirectorySource`선언을 사용하여 필터링 할 수 있습니다`RegexFilterPipe`메커니즘에 저장됩니다. 이 메커니즘은 구문 분석하기 전에 원래 텍스트 표현에 대해 작동하기 때문입니다. 이 키 - 값 쌍은 선택 사항이지만 파이프가`RegexFilterPipe`유형의 값이 포함됩니다.  
다음은 예제입니다.`RegexFilterPipe`파이프 선언:  

```
{
	"Id": "MyAppLog2ToFirehose",
	"Type": "RegexFilterPipe",
	"SourceRef": "MyAppLog2",
	"SinkRef": "MyFirehose",
	"FilterPattern": "^(10|11),.*",
	"IgnoreCase": false,
	"Negate": false
}
```

`SourceRef`  
이름 (의 값을 지정`Id`키-값 쌍) 을 통해 파이프에 대한 로그, 이벤트 및 메트릭 데이터를 수집하는 소스를 정의하는 소스 선언을 정의합니다 (필수).

`SinkRef`  
이름 (의 값을 지정`Id`키 - 값 쌍) 파이프에 대한 로그, 이벤트 및 메트릭 데이터를 수신하는 싱크를 정의하는 싱크 선언의 (필수).

`IgnoreCase`  
선택 사항입니다. 다음 값을 허용합니다.`true`또는`false`. 로 설정된 경우`true`로 설정하면 정규식은 대소 문자를 구분하지 않는 방식으로 레코드와 일치합니다.

`Negate`  
선택 사항입니다. 다음 값을 허용합니다.`true`또는`false`. 로 설정된 경우`true`, 파이프는 레코드를 전달합니다*안 함*정규식 와 일치해야 합니다.

전체 구성 파일의 예는`RegexFilterPipe`파이프 유형에 대한 자세한 내용은[파이프 사용](configuring-kaw-examples.md#configuring-kaw-examples-pipes).

## Windows 메트릭 파이프용 Kinesis 에이전트 구성
<a name="kinesis-agent-metric-pipe-configuration"></a>

라는 기본 제공 메트릭 소스가 있습니다.`_KinesisTapMetricsSource`에서 Windows용 Kinesis 에이전트에 대한 메트릭을 생성합니다. 있는 경우`CloudWatch`와 싱크 선언`Id`의`MyCloudWatchSink`의 경우 다음 예제 파이프라인 선언은 Windows용 Kinesis 에이전트가 생성한 메트릭을 해당 싱크로 전송합니다.

```
{
   "Id": "KinesisAgentMetricsToCloudWatch",
   "SourceRef": "_KinesisTapMetricsSource",
   "SinkRef": "MyCloudWatchSink"
}
```

Windows용 Kinesis 에이전트 기본 제공 메트릭 소스에 대한 자세한 내용은[Windows용 Kinesis 에이전트 기본 제공 메트릭 소스](source-object-declarations.md#kinesis-agent-builin-metrics-source).

구성 파일에서 Windows 성능 카운터 메트릭도 스트리밍하는 경우 Windows용 Kinesis 에이전트 메트릭 및 Windows 성능 카운터 메트릭 모두에 동일한 싱크를 사용하는 대신 별도의 파이프와 싱크를 사용하는 것이 좋습니다.

# 자동 업데이트 구성
<a name="update-configuration-options"></a>

사용`appsettings.json`구성 파일을 사용하여 Microsoft Windows용 Amazon Kinesis 에이전트와 Windows용 Kinesis 에이전트의 구성 파일을 자동으로 업데이트할 수 있습니다. 업데이트 동작을 제어하려면`Plugins`키 - 값 쌍은 다음과 같은 구성 파일의 동일한 수준에있다.`Sources`,`Sinks`, 및`Pipes`.

이`Plugins`키 - 값 쌍은 소스, 싱크 및 파이프의 범주에 특별히 해당하지 않는 사용할 추가 일반 기능을 지정합니다. 예를 들어 Windows용 Kinesis 에이전트를 업데이트하기 위한 플러그인이 있으며`appsettings.json`구성 파일을 입력합니다. 플러그인은 JSON 객체로 표현되며 항상`Type`키-값 페어를 입력합니다. 이`Type`플러그인에 대해 다른 키-값 페어를 지정할 수 있는지를 결정합니다. 지원되는 플러그인 유형은 다음과 같습니다.

`PackageUpdate`  
Windows용 Kinesis 에이전트가 패키지 버전 구성 파일을 주기적으로 확인하도록 지정합니다. 패키지 버전 파일에 다른 버전의 Windows용 Kinesis 에이전트가 설치되어야 한다고 표시되면 Windows용 Kinesis 에이전트가 해당 버전을 다운로드하여 설치합니다. 이`PackageUpdate`플러그인 키-값 페어는 다음과 같습니다.    
`Type`  
값은 문자열 이어야 합니다.`PackageUpdate`이며 필수입니다.  
`Interval`  
패키지 버전 파일에서 문자열로 표시되는 변경 사항을 분 단위로 확인하는 빈도를 지정합니다. 이 키-값 페어는 선택 사항입니다. 이 값을 지정하지 않으면 기본값은 60분입니다. 값이 1보다 작으면 업데이트 확인이 수행되지 않습니다.  
`PackageVersion`  
패키지 버전 JSON 파일의 위치를 지정합니다. 파일은 파일 공유에 있을 수 있습니다 (`file://`), 웹 사이트 (`http://`) 또는 Amazon S3 (`s3://`). 예를 들어 값`s3://mycompany/config/agent-package-version.json`는 Windows용 Kinesis 에이전트가`config/agent-package-version.json`파일의`mycompany`Amazon S3 버킷입니다. 해당 파일의 내용을 기반으로 업데이트를 수행해야합니다.  
의 값이`PackageVersion`키-값 쌍은 Amazon S3 경우 대/소문자를 구분합니다.
다음은 패키지 버전 파일의 내용을 보여주는 예제입니다.  

```
{
    "Name": "AWSKinesisTap",
    "Version": "1.0.0.106",
    "PackageUrl": "https://s3-us-west-2.amazonaws.com/kinesis-agent-windows/downloads/AWSKinesisTap.{Version}.nupkg"
}
```
이`Version`키-값 쌍은 아직 설치되지 않은 경우 설치할 Kinesis 에이전트의 버전을 지정합니다. 이`{Version}`변수 참조의`PackageUrl`는 사용자가 지정한 값을 해결합니다.`Version`키-값 페어를 입력합니다. 이 예제에서 변수는 문자열`1.0.0.106`. 이 변수 해상도는 패키지 버전 파일에 원하는 특정 버전이 저장되는 단일 위치가있을 수 있도록 제공됩니다. 여러 패키지 버전 파일을 사용하여 더 큰 배포 전에 새 버전의 유효성을 검사하기 위해 Windows용 Kinesis Agent의 새 버전을 롤아웃하는 속도를 제어할 수 있습니다. Windows용 Kinesis 에이전트 배포를 롤백하려면 하나 이상의 패키지 버전 파일을 변경하여 사용자 환경에서 작동하는 것으로 알려진 Windows용 Kinesis 에이전트의 이전 버전을 지정합니다.  
의 값이`PackageVersion`키 - 값 쌍은 다른 패키지 버전 파일의 자동 선택을 용이하게하기 위해 변수 대체의 영향을받습니다. 변수 대체에 대한 자세한 내용은 단원을 참조하세요.[싱크 변수 대체 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-sink-variable-substitution).  
`AccessKey`  
Amazon S3 패키지 버전 파일에 대한 액세스를 인증할 때 사용할 액세스 키를 지정합니다. 이 키-값 페어는 선택 사항입니다. 이 키-값 페어를 사용하는 것은 권장하지 않습니다. 권장되는 대체 인증 방법은[인증 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication).  
`SecretKey`  
Amazon S3 패키지 버전 파일에 대한 액세스를 인증할 때 사용할 비밀 키를 지정합니다. 이 키-값 페어는 선택 사항입니다. 이 키-값 페어를 사용하는 것은 권장하지 않습니다. 권장되는 대체 인증 방법은[인증 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication).  
`Region`  
Amazon S3 에서 패키지 버전 파일에 액세스할 때 사용할 리전 엔드포인트를 지정합니다. 이 키-값 페어는 선택 사항입니다.  
`ProfileName`  
Amazon S3 패키지 버전 파일에 대한 액세스를 인증할 때 사용할 보안 프로필을 지정합니다. 자세한 내용은 [인증 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication) 섹션을 참조하세요. 이 키-값 페어는 선택 사항입니다.  
`RoleARN`  
교차 계정 시나리오에서 Amazon S3 패키지 버전 파일에 대한 액세스를 인증할 때 위임할 역할을 지정합니다. 자세한 내용은 [인증 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication) 섹션을 참조하세요. 이 키-값 페어는 선택 사항입니다.
그렇지 않은 경우`PackageUpdate`플러그인이 지정되면 업데이트가 필요한지 확인하기 위해 패키지 버전 파일이 검사되지 않습니다.

`ConfigUpdate`  
Windows용 Kinesis 에이전트가 업데이트된`appsettings.json`구성 파일을 파일 공유, 웹 사이트 또는 Amazon S3. 업데이트된 구성 파일이 있는 경우 Windows용 Kinesis 에이전트에서 다운로드하여 설치합니다.`ConfigUpdate`키-값 페어는 다음과 같습니다.    
`Type`  
값은 문자열 이어야 합니다.`ConfigUpdate`이며 필수입니다.  
`Interval`  
새 구성 파일을 확인하는 빈도를 문자열로 표시되는 분 단위로 지정합니다. 이 키 - 값 쌍은 선택 사항이며 지정되지 않은 경우 기본값은 5 분입니다. 값이 1보다 작으면 구성 파일 업데이트가 확인되지 않습니다.  
`Source`  
업데이트된 구성 파일을 찾을 위치를 지정합니다. 파일은 파일 공유에 있을 수 있습니다 (`file://`), 웹 사이트 (`http://`) 또는 Amazon S3 (`s3://`). 예를 들어 값`s3://mycompany/config/appsettings.json`는 Windows용 Kinesis 에이전트가`config/appsettings.json`파일의`mycompany`Amazon S3 버킷입니다.  
의 값이`Source`키-값 쌍은 Amazon S3 경우 대/소문자를 구분합니다.
의 값이`Source`키 - 값 쌍은 다른 구성 파일의 자동 선택을 용이하게하기 위해 변수 대체에 의해 영향을받습니다. 변수 대체에 대한 자세한 내용은 단원을 참조하세요.[싱크 변수 대체 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-sink-variable-substitution).  
`Destination`  
로컬 시스템에서 구성 파일을 저장할 위치를 지정합니다. 상대 경로, 절대 경로 또는 다음과 같은 환경 변수 참조가 포함 된 경로 일 수 있습니다.`%PROGRAMDATA%`. 경로가 상대 경로인 경우 Windows용 Kinesis 에이전트가 설치된 위치에 상대적입니다. 일반적으로 값은 다음과 같아야 합니다.`.\appsettings.json`. 이 키-값 페어가 필수입니다.  
`AccessKey`  
Amazon S3 구성 파일에 대한 액세스를 인증할 때 사용할 액세스 키를 지정합니다. 이 키-값 페어는 선택 사항입니다. 이 키-값 페어를 사용하는 것은 권장하지 않습니다. 권장되는 대체 인증 방법은[인증 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication).  
`SecretKey`  
Amazon S3 구성 파일에 대한 액세스를 인증할 때 사용할 비밀 키를 지정합니다. 이 키-값 페어는 선택 사항입니다. 이 키-값 페어를 사용하는 것은 권장하지 않습니다. 권장되는 대체 인증 방법은[인증 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication).  
`Region`  
Amazon S3 에서 구성 파일에 액세스할 때 사용할 리전 엔드포인트를 지정합니다. 이 키-값 페어는 선택 사항입니다.  
`ProfileName`  
Amazon S3 구성 파일에 대한 액세스를 인증할 때 사용할 보안 프로필을 지정합니다. 자세한 내용은 [인증 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication) 섹션을 참조하세요. 이 키-값 페어는 선택 사항입니다.  
`RoleARN`  
교차 계정 시나리오에서 Amazon S3 구성 파일에 대한 액세스를 인증할 때 위임할 역할을 지정합니다. 자세한 내용은 [인증 구성](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication) 섹션을 참조하세요. 이 키-값 페어는 선택 사항입니다.
그렇지 않은 경우`ConfigUpdate`플러그인이 지정되면 구성 파일 업데이트가 필요한지 여부를 확인하기 위해 구성 파일이 검사되지 않습니다.

다음은 예제입니다.`appsettings.json`사용 방법을 보여 주는 구성 파일`PackageUpdate`및`ConfigUpdate`플러그인입니다. 이 예제에서는 패키지 버전 파일이 있는`mycompany`이라는 Amazon S3 버킷의 이름이`config/agent-package-version.json`. 이 파일은 약 2시간마다 변경 사항을 확인합니다. 다른 버전의 Windows용 Kinesis 에이전트가 패키지 버전 파일에 지정된 경우 지정된 에이전트 버전이 패키지 버전 파일의 지정된 위치에서 설치됩니다.

또한, 이`appsettings.json`구성 파일에 저장된`mycompany`이라는 Amazon S3 버킷의 이름이`config/appsettings.json`. 약 30분마다 해당 파일이 현재 구성 파일과 비교됩니다. 서로 다른 경우 업데이트된 구성 파일이 Amazon S3 에서 다운로드되고`appsettings.json`구성 파일을 입력합니다.

```
{
  "Sources": [
    {
      "Id": "ApplicationLogSource",
      "SourceType": "DirectorySource",
      "Directory": "C:\\LogSource\\",
      "FileNameFilter": "*.log",
      "RecordParser": "SingleLine"
    }
  ],
  "Sinks": [
    {
       "Id": "ApplicationLogKinesisFirehoseSink",
       "SinkType": "KinesisFirehose",
       "StreamName": "ApplicationLogFirehoseDeliveryStream",
       "Region": "us-east-1"
    }  
    ],
  "Pipes": [
    {
      "Id": "ApplicationLogSourceToApplicationLogKinesisFirehoseSink",
      "SourceRef": "ApplicationLogSource",
      "SinkRef": "ApplicationLogKinesisFirehoseSink"
    }
  ],
  "Plugins": [
    {
      "Type": "PackageUpdate"
      "Interval": "120",
      "PackageVersion": "s3://mycompany/config/agent-package-version.json"
    },
    {
      "Type": "ConfigUpdate",
      "Interval": "30", 
      "Source": "s3://mycompany/config/appsettings.json",
      "Destination": ".\appSettings.json"      
    }
  ]
}
```

# Windows용 Kinesis 에이전트 구성 예
<a name="configuring-kaw-examples"></a>

 이`appsettings.json`구성 파일은 Microsoft Windows용 Amazon Kinesis 에이전트가 로그, 이벤트 및 메트릭을 수집하는 방법을 제어하는 JSON 문서입니다. 또한 Windows용 Kinesis 에이전트가 해당 데이터를 변환하고 이를 다양한 AWS 서비스로 스트리밍하는 방법을 제어합니다. 구성 파일의 소스, 싱크 및 파이프 선언에 대한 자세한 내용은[소스 선언](source-object-declarations.md),[sink 선언](sink-object-declarations.md), 및[파이프 선언](pipe-object-declarations.md).

다음 섹션에는 여러 가지 시나리오에 대한 구성 파일의 예가 포함되어 있습니다.

**Topics**
+ [다양한 소스에서 Kinesis Data Streams 으로 스트리밍](#configuring-kaw-examples-sources)
+ [Windows 응용 프로그램 이벤트 로그에서 싱크로 스트리밍](#configuring-kaw-examples-sinks)
+ [파이프 사용](#configuring-kaw-examples-pipes)
+ [여러 소스 및 파이프 사용](#configuring-kaw-examples-multiple)

## 다양한 소스에서 Kinesis Data Streams 으로 스트리밍
<a name="configuring-kaw-examples-sources"></a>

다음 예제는`appsettings.json`구성 파일은 다양한 소스에서 Kinesis Data Streams 으로, Windows 성능 카운터에서 Amazon CloudWatch 메트릭에 이르는 스트리밍 로그 및 이벤트를 보여 줍니다.

### `DirectorySource`,`SysLog`레코드 구문 분석기
<a name="configuring-kaw-examples-sources-ds-sl"></a>

다음 파일은 모든 파일에서 syslog 형식 로그 레코드를`.log`파일 확장명입니다.`C:\LogSource\`디렉터리를`SyslogKinesisDataStream`us-east-1 리전에서 Kinesis 데이터 스트림 스트림입니다. 에이전트를 종료했다가 나중에 다시 시작하는 경우에도 로그 파일의 모든 데이터가 전송되도록 책갈피가 설정됩니다. 사용자 지정 응용 프로그램에서 레코드를 읽고 처리할 수 있는`SyslogKinesisDataStream`Streams.

```
{
  "Sources": [
    {
      "Id": "SyslogDirectorySource",
      "SourceType": "DirectorySource",
      "Directory": "C:\\LogSource\\",
      "FileNameFilter": "*.log",
      "RecordParser": "SysLog",
      "TimeZoneKind": "UTC",
      "InitialPosition": "Bookmark"
    }
  ],
  "Sinks": [
    {
      "Id": "KinesisStreamSink",
      "SinkType": "KinesisStream",
      "StreamName": "SyslogKinesisDataStream",
      "Region": "us-east-1"
    }
  ],
  "Pipes": [
    {
      "Id": "SyslogDS2KSSink",
      "SourceRef": "SyslogDirectorySource",
      "SinkRef": "KinesisStreamSink"
    }
  ]
}
```

### `DirectorySource`,`SingleLineJson`레코드 구문 분석기
<a name="configuring-kaw-examples-sources-ds-slj"></a>

다음 파일은 모든 파일에서 JSON 형식의 로그 레코드를`.log`파일 확장명입니다.`C:\LogSource\`디렉터리를`JsonKinesisDataStream`us-east-1 리전에서 Kinesis 데이터 스트림 스트림입니다. 의 키-값 페어를 스트리밍하기 전에`ComputerName`및`DT`키는 컴퓨터 이름 및 레코드가 처리되는 날짜 및 시간과 함께 각 JSON 객체에 추가됩니다. 사용자 지정 응용 프로그램에서 레코드를 읽고 처리할 수 있는`JsonKinesisDataStream`Streams.

```
{
  "Sources": [
    {
      "Id": "JsonLogSource",
      "SourceType": "DirectorySource",
      "RecordParser": "SingleLineJson",
      "Directory": "C:\\LogSource\\",
      "FileNameFilter": "*.log",
      "InitialPosition": 0
    }
  ],
  "Sinks": [
    {
      "Id": "KinesisStreamSink",
      "SinkType": "KinesisStream",
      "StreamName": "JsonKinesisDataStream",
      "Region": "us-east-1",
      "Format": "json",
      "ObjectDecoration": "ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}"
    }
  ],
  "Pipes": [
    {
      "Id": "JsonLogSourceToKinesisStreamSink",
      "SourceRef": "JsonLogSource",
      "SinkRef": "KinesisStreamSink"
    }
  ]
}
```

### `ExchangeLogSource`
<a name="configuring-kaw-examples-sources-exchange"></a>

다음 파일은 Microsoft Exchange에 의해 생성되고`.log`확장명입니다.`C:\temp\ExchangeLog\`디렉터리를`ExchangeKinesisDataStream`JSON 형식의 us-east-1 리전에서 Kinesis 데이터 스트림입니다. Exchange 로그는 JSON 형식이 아니지만 Windows용 Kinesis 에이전트는 로그를 구문 분석하여 JSON으로 변환할 수 있습니다. 의 키-값 페어를 스트리밍하기 전에`ComputerName`및`DT`키는 컴퓨터 이름 및 레코드가 처리되는 날짜 및 시간 값을 포함하는 각 JSON 객체에 추가됩니다. 사용자 지정 응용 프로그램에서 레코드를 읽고 처리할 수 있는`ExchangeKinesisDataStream`Streams.

```
{
  "Sources": [
    {
       "Id": "ExchangeSource",
       "SourceType": "ExchangeLogSource",
       "Directory": "C:\\temp\\ExchangeLog\",
       "FileNameFilter": "*.log"
    }
  ],
  "Sinks": [
    {
      "Id": "KinesisStreamSink",
      "SinkType": "KinesisStream",
      "StreamName": "ExchangeKinesisDataStream",
      "Region": "us-east-1",
      "Format": "json",
      "ObjectDecoration": "ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}"
    }
  ],
  "Pipes": [
    {
      "Id": "ExchangeSourceToKinesisStreamSink",
      "SourceRef": "ExchangeSource",
      "SinkRef": "KinesisStreamSink"
    }
  ]
}
```

### `W3SVCLogSource`
<a name="configuring-kaw-examples-sources-iis"></a>

다음 파일은 해당 파일의 표준 위치에 저장된 Windows 로그 레코드에 대한 IIS (인터넷 정보 서비스) 를`IISKinesisDataStream`us-east-1 리전에서 Kinesis 데이터 스트림 스트림입니다. 사용자 지정 응용 프로그램에서 레코드를 읽고 처리할 수 있는`IISKinesisDataStream`Streams. IIS는 윈도우 용 웹 서버입니다.

```
{
  "Sources": [
    {
       "Id": "IISLogSource",
       "SourceType": "W3SVCLogSource",
       "Directory": "C:\\inetpub\\logs\\LogFiles\\W3SVC1",
       "FileNameFilter": "*.log"
    }
  ],
  "Sinks": [
    {
      "Id": "KinesisStreamSink",
      "SinkType": "KinesisStream",
      "StreamName": "IISKinesisDataStream",
      "Region": "us-east-1"
    }
  ],
  "Pipes": [
    {
      "Id": "IISLogSourceToKinesisStreamSink",
      "SourceRef": "IISLogSource",
      "SinkRef": "KinesisStreamSink"
    }
  ]
}
```

### `WindowsEventLogSource`쿼리 포함
<a name="configuring-kaw-examples-sources-wevq"></a>

다음 파일 스트림 로그 이벤트 수준 Windows 시스템 이벤트 로그에서`Critical`또는`Error`(2보다 작거나 같은) 을`SystemKinesisDataStream`JSON 형식의 us-east-1 리전에서 Kinesis 데이터 스트림입니다. 사용자 지정 응용 프로그램에서 레코드를 읽고 처리할 수 있는`SystemKinesisDataStream`Streams.

```
{
  "Sources": [
    {
         "Id": "SystemLogSource",
         "SourceType": "WindowsEventLogSource",
         "LogName": "System",
         "Query": "*[System/Level<=2]"
    }
  ],
  "Sinks": [
    {
      "Id": "KinesisStreamSink",
      "SinkType": "KinesisStream",
      "StreamName": "SystemKinesisDataStream",
      "Region": "us-east-1",
      "Format": "json"
    }
  ],
  "Pipes": [
    {
      "Id": "SLSourceToKSSink",
      "SourceRef": "SystemLogSource",
      "SinkRef": "KinesisStreamSink"
    }
  ]
}
```

### `WindowsETWEventSource`
<a name="configuring-kaw-examples-sources-etw"></a>

다음 파일은 Microsoft CLR (공용 언어 런타임) 예외 및 보안 이벤트를`ClrKinesisDataStream`JSON 형식의 us-east-1 리전에서 Kinesis 데이터 스트림입니다. 사용자 지정 응용 프로그램에서 레코드를 읽고 처리할 수 있는`ClrKinesisDataStream`Streams.

```
{
  "Sources": [
    {
       "Id": "ClrETWEventSource",
       "SourceType": "WindowsETWEventSource",
       "ProviderName": "Microsoft-Windows-DotNETRuntime",
       "TraceLevel": "Verbose",
       "MatchAnyKeyword": "0x00008000, 0x00000400"
    }
  ],
  "Sinks": [
    {
      "Id": "KinesisStreamSink",
      "SinkType": "KinesisStream",
      "StreamName": "ClrKinesisDataStream",
      "Region": "us-east-1",
      "Format": "json"
    }
  ],
  "Pipes": [
    {
      "Id": "ETWSourceToKSSink",
      "SourceRef": "ClrETWEventSource",
      "SinkRef": "KinesisStreamSink"
    }
  ]
}
```

### `WindowsPerformanceCounterSource`
<a name="configuring-kaw-examples-sources-wpc"></a>

다음 파일은 열려있는 총 파일 수, 재부팅 이후 총 로그인 시도 횟수, 초당 디스크 읽기 수, us-east-1 리전의 CloudWatch 지표에 대한 사용 가능한 디스크 공간 비율에 대한 성능 카운터를 스트리밍합니다. CloudWatch 에서 이러한 지표를 그래프로 만들고, 그래프에서 대시보드를 만들고, 임계값이 초과되면 알림을 보내는 경보를 설정할 수 있습니다.

```
{
  "Sources": [
    {
      "Id": "PerformanceCounter",
      "SourceType": "WindowsPerformanceCounterSource",
      "Categories": [
        {
          "Category": "Server",
          "Counters": [
            "Files Open",
            "Logon Total"
          ]
        },
        {
          "Category": "LogicalDisk",
          "Instances": "*",
          "Counters": [
            "% Free Space",
            {
              "Counter": "Disk Reads/sec",
              "Unit": "Count/Second"
            }
          ]
        }
      ],
    }
  ],
  "Sinks": [
    {
      "Namespace": "MyServiceMetrics",
      "Region": "us-east-1",
      "Id": "CloudWatchSink",
      "SinkType": "CloudWatch"
    }
  ],
  "Pipes": [
    {
      "Id": "PerformanceCounterToCloudWatch",
      "SourceRef": "PerformanceCounter",
      "SinkRef": "CloudWatchSink"
    }
  ]
}
```

## Windows 응용 프로그램 이벤트 로그에서 싱크로 스트리밍
<a name="configuring-kaw-examples-sinks"></a>

다음 예제는`appsettings.json`구성 파일은 Windows 애플리케이션 이벤트 로그를 Microsoft Windows용 Amazon Kinesis 에이전트의 다양한 싱크로 스트리밍하는 것을 보여 줍니다. 사용의 예는`KinesisStream`및`CloudWatch`싱크 유형에 대한 자세한 내용은[다양한 소스에서 Kinesis Data Streams 으로 스트리밍](#configuring-kaw-examples-sources).

### `KinesisFirehose`
<a name="configuring-kaw-examples-sinks-fh"></a>

다음 파일 스트림`Critical`또는`Error`Windows 응용 프로그램 로그 이벤트를`WindowsLogFirehoseDeliveryStream`us-east-1 리전에서 Kinesis Data Firehose 전송 스트림. Kinesis Data Firehose 에 대한 연결이 중단되면 이벤트는 먼저 메모리에 대기됩니다. 그런 다음 필요한 경우 연결이 복원될 때까지 디스크의 파일에 대기합니다. 그런 다음 이벤트는 대기열에 없어져 새 이벤트가 전송됩니다.

데이터 파이프라인 요구 사항에 따라 스트리밍된 데이터를 여러 종류의 스토리지 및 분석 서비스에 저장하도록 Kinesis Data Firehose를 구성할 수 있습니다.

```
{
  "Sources": [
    {
         "Id": "ApplicationLogSource",
         "SourceType": "WindowsEventLogSource",
         "LogName": "Application",
         "Query": "*[System/Level<=2]"
    }
  ],
  "Sinks": [
    {
       "Id": "WindowsLogKinesisFirehoseSink",
       "SinkType": "KinesisFirehose",
       "StreamName": "WindowsLogFirehoseDeliveryStream",
       "Region": "us-east-1",
       "QueueType": "file"
    }  
    ],
  "Pipes": [
    {
      "Id": "ALSource2ALKFSink",
      "SourceRef": "ApplicationLogSource",
      "SinkRef": "WindowsLogKinesisFirehoseSink"
    }
  ]
}
```

### `CloudWatchLogs`
<a name="configuring-kaw-examples-sinks-cwl"></a>

다음 파일 스트림`Critical`또는`Error`클라우드 워치 로그 스트림에 대한 Windows 애플리케이션 로그 이벤트`MyServiceApplicationLog-Group`로그 그룹을 생성합니다. 각 스트림의 이름은`Stream-`. 스트림이 생성된 4자리 연도, 2자리 월 및 2자리 날짜로 끝납니다. (예:`Stream-20180501`는 2018 년 5 월 1 일에 생성 된 스트림입니다).

```
{
  "Sources": [
    {
         "Id": "ApplicationLogSource",
         "SourceType": "WindowsEventLogSource",
         "LogName": "Application",
         "Query": "*[System/Level<=2]"
    }
  ],
  "Sinks": [
    {
      "Id": "CloudWatchLogsSink",
      "SinkType": "CloudWatchLogs",
      "LogGroup": "MyServiceApplicationLog-Group",
      "LogStream": "Stream-{timestamp:yyyyMMdd}",
      "Region": "us-east-1",
      "Format": "json"
    }
  ],
  "Pipes": [
    {
      "Id": "ALSource2CWLSink",
      "SourceRef": "ApplicationLogSource",
      "SinkRef": "CloudWatchLogsSink"
    }
  ]
}
```

## 파이프 사용
<a name="configuring-kaw-examples-pipes"></a>

다음 예제는`appsettings.json`구성 파일은 파이프 관련 기능을 사용하는 방법을 보여 줍니다.

 이 예제에서는 로그 항목을`c:\LogSource\`에`ApplicationLogFirehoseDeliveryStream`Kinesis Data Firehose 전송 스트림. 그것은에 의해 지정된 정규 표현식과 일치하는 줄 만 포함`FilterPattern`키-값 페어의 형태로 표시됩니다. 특히 로그 파일의 줄만`10`또는`11`는 Kinesis Data Firehose 로 스트리밍됩니다.

```
{
  "Sources": [
    {
      "Id": "ApplicationLogSource",
      "SourceType": "DirectorySource",
      "Directory": "C:\\LogSource\\",
      "FileNameFilter": "*.log",
      "RecordParser": "SingleLine"
    }
  ],
  "Sinks": [
    {
       "Id": "ApplicationLogKinesisFirehoseSink",
       "SinkType": "KinesisFirehose",
       "StreamName": "ApplicationLogFirehoseDeliveryStream",
       "Region": "us-east-1"
    }  
    ],
  "Pipes": [
    {
      "Id": "ALSourceToALKFSink",
      "Type": "RegexFilterPipe",
      "SourceRef": "ApplicationLogSource",
      "SinkRef": "ApplicationLogKinesisFirehoseSink",
      "FilterPattern": "^(10|11),.*"
    }
  ]
}
```

## 여러 소스 및 파이프 사용
<a name="configuring-kaw-examples-multiple"></a>

다음 예제는`appsettings.json`구성 파일은 여러 소스 및 파이프 사용을 보여줍니다.

이 예제에서는 응용 프로그램, 보안 및 시스템 Windows 이벤트 로그를`EventLogStream`Kinesis Data Firehose 전송 스트림은 세 개의 소스, 세 개의 파이프 및 단일 싱크를 사용합니다.

```
{
    "Sources": [
		{
		  "Id": "ApplicationLog",
		  "SourceType": "WindowsEventLogSource",
		  "LogName": "Application"
		},
		{
		  "Id": "SecurityLog",
		  "SourceType": "WindowsEventLogSource",
		  "LogName": "Security"
		},
		{
		  "Id": "SystemLog",
		  "SourceType": "WindowsEventLogSource",
		  "LogName": "System"
		}
    ],
    "Sinks": [
		{
		  "Id": "EventLogSink",
		  "SinkType": "KinesisFirehose",
		  "StreamName": "EventLogStream",
		  "Format": "json"
		},
    ],
    "Pipes": [
		{
		  "Id": "ApplicationLogToFirehose",
		  "SourceRef": "ApplicationLog",
		  "SinkRef": "EventLogSink"
		},
		{
		  "Id": "SecurityLogToFirehose",
		  "SourceRef": "SecurityLog",
		  "SinkRef": "EventLogSink"
		},
		{
		  "Id": "SystemLogToFirehose",
		  "SourceRef": "SystemLog",
		  "SinkRef": "EventLogSink"
		}
    ]
}
```

# 원격 분석 구성
<a name="telemetrics-configuration-option"></a>

더 나은 지원을 활성화하기 위해 기본적으로 Microsoft Windows용 Amazon Kinesis 에이전트는 에이전트 작동에 대한 통계를 수집하여 AWS 로 전송합니다. 이 정보에는 개인 식별 정보가 포함되어 있지 않습니다. AWS 서비스로 수집하거나 스트리밍하는 데이터는 포함되지 않습니다. 60분마다 약 1\$12KB의 이 메트릭 데이터를 수집합니다.

이러한 통계 수집 및 전송을 옵트아웃할 수 있습니다. 이렇게 하려면 다음 키-값 페어를`appsettings.json`구성 파일을 소스, 싱크 및 파이프와 동일한 수준으로 설정합니다.

```
"Telemetrics": 
    { "off": "true" }
```

예를 들어 다음 구성 파일은 소스, 싱크 및 파이프를 구성하고 원격 측정도 비활성화합니다.

```
{
  "Sources": [
    {
      "Id": "ApplicationLogSource",
      "SourceType": "DirectorySource",
      "Directory": "C:\\LogSource\\",
      "FileNameFilter": "*.log",
      "RecordParser": "SingleLine"
    }
  ],
  "Sinks": [
    {
       "Id": "ApplicationLogKinesisFirehoseSink",
       "SinkType": "KinesisFirehose",
       "StreamName": "ApplicationLogFirehoseDeliveryStream",
       "Region": "us-east-1"
    }  
    ],
  "Pipes": [
    {
      "Id": "ApplicationLogSourceToApplicationLogKinesisFirehoseSink",
      "SourceRef": "ApplicationLogSource",
      "SinkRef": "ApplicationLogKinesisFirehoseSink"
    }
  ],
  "Telemetrics":
    {
      "off": "true"
    }
}
```

원격 분석이 활성화된 경우 다음 메트릭을 수집합니다.

`ClientId`  
소프트웨어가 설치될 때 자동으로 할당된 고유 ID입니다.

`ClientTimestamp`  
원격 분석이 수집된 날짜 및 시간입니다.

`OSDescription`  
운영 체제 설명.

`DotnetFramework`  
현재 닷넷 프레임워크 버전입니다.

`MemoryUsage`  
Windows용 Kinesis 에이전트에서 사용하는 메모리 양 (MB) 입니다.

`CPUUsage`  
Windows용 Kinesis 에이전트 CPU 사용률의 양 (십진수) 입니다. 예를 들어, 0.01은 1% 를 의미합니다.

`InstanceId`  
Windows용 Kinesis 에이전트가 Amazon EC2 인스턴스에서 실행 중인 경우 Amazon EC2 인스턴스 ID입니다.

`InstanceType (string)`  
Windows용 Kinesis 에이전트가 Amazon EC2 인스턴스에서 실행 중인 경우 Amazon EC2 인스턴스 유형입니다.

또한, 우리는에 나열된 메트릭을 수집[Windows용 Kinesis 에이전트 메트릭 목록](source-object-declarations.md#kinesis-agent-metric-list).