

# Contoh Konfigurasi Kinesis Agent for Windows
<a name="configuring-kaw-examples"></a>

 File konfigurasi `appsettings.json` adalah dokumen JSON yang mengontrol bagaimana Amazon Kinesis Agent for Microsoft Windows mengumpulkan log, peristiwa, dan metrik. File ini juga mengontrol cara Kinesis Agent for Windows mengubah data tersebut dan mengalirkannya ke berbagai layanan AWS. Untuk detail tentang deklarasi sumber, sink, dan alur dalam file konfigurasi, lihat [Deklarasi Sumber](source-object-declarations.md), [Deklarasi Sink](sink-object-declarations.md), dan [Deklarasi Alur](pipe-object-declarations.md). 

Bagian berikut berisi contoh file konfigurasi untuk beberapa jenis skenario. 

**Topics**
+ [

## Streaming dari Berbagai Sumber ke Kinesis Data Streams
](#configuring-kaw-examples-sources)
+ [

## Streaming dari Log Peristiwa Aplikasi Windows ke Sink
](#configuring-kaw-examples-sinks)
+ [

## Menggunakan Alur
](#configuring-kaw-examples-pipes)
+ [

## Menggunakan Beberapa Sumber dan Alur
](#configuring-kaw-examples-multiple)

## Streaming dari Berbagai Sumber ke Kinesis Data Streams
<a name="configuring-kaw-examples-sources"></a>

Contoh file konfigurasi `appsettings.json` berikut menunjukkan log dan peristiwa streaming dari berbagai sumber ke Kinesis Data Streams dan dari pengukur performa Windows ke metrik Amazon CloudWatch.

### `DirectorySource`, Pengurai Catatan `SysLog`
<a name="configuring-kaw-examples-sources-ds-sl"></a>

File berikut mengalirkan catatan log berformat syslog dari semua file dengan ekstensi file `.log` di direktori `C:\LogSource\` ke aliran Kinesis Data Streams `SyslogKinesisDataStream` di Wilayah us-east-1. Bookmark dibuat untuk memastikan semua data dari berkas log dikirim bahkan meski agen dimatikan dan dinyalakan kembali kemudian. Aplikasi kustom dapat membaca dan memproses catatan dari aliran `SyslogKinesisDataStream`.

```
{
  "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`, Pengurai Catatan `SingleLineJson`
<a name="configuring-kaw-examples-sources-ds-slj"></a>

File berikut mengalirkan catatan log berformat JSON dari semua file dengan ekstensi file `.log` di direktori `C:\LogSource\` ke aliran Kinesis Data Streams `JsonKinesisDataStream` di Wilayah us-east-1. Sebelum streaming, pasangan kunci-nilai untuk kunci `ComputerName` dan `DT` ditambahkan ke setiap objek JSON, dengan nilai-nilai untuk nama komputer dan tanggal dan waktu catatan diproses. Aplikasi kustom dapat membaca dan memproses catatan dari aliran `JsonKinesisDataStream`. 

```
{
  "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>

File berikut mengalirkan catatan log yang dihasilkan oleh Microsoft Exchange dan disimpan dalam file dengan ekstensi `.log` di direktori `C:\temp\ExchangeLog\` ke aliran data Kinesis `ExchangeKinesisDataStream` di Wilayah us-east-1 dalam format JSON. Meskipun log Exchange tidak dalam format JSON, Kinesis Agent for Windows dapat mengurai log dan mentransformasinya menjadi JSON. Sebelum streaming, pasangan kunci-nilai untuk kunci `ComputerName` dan `DT` ditambahkan ke setiap objek JSON yang berisi nilai-nilai untuk nama komputer dan tanggal dan waktu catatan diproses. Aplikasi kustom dapat membaca dan memproses catatan dari aliran `ExchangeKinesisDataStream`. 

```
{
  "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>

File berikut mengalirkan Internet Information Services (IIS) untuk catatan log Windows yang disimpan di lokasi standar untuk file-file tersebut ke aliran Kinesis Data Streams `IISKinesisDataStream` di Wilayah us-east-1. Aplikasi kustom dapat membaca dan memproses catatan dari aliran `IISKinesisDataStream`. IIS adalah server web untuk Windows. 

```
{
  "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` dengan Kueri
<a name="configuring-kaw-examples-sources-wevq"></a>

File berikut mengalirkan log acara dari log peristiwa sistem Windows yang memiliki tingkat `Critical` atau `Error` (kurang dari atau sama dengan 2) ke aliran data Kinesis `SystemKinesisDataStream` di Wilayah us-east-1 dalam format JSON. Aplikasi kustom dapat membaca dan memproses catatan dari aliran `SystemKinesisDataStream`. 

```
{
  "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>

File berikut mengalirkan pengecualian Microsoft Common Language Runtime (CLR) dan peristiwa keamanan ke aliran data Kinesis `ClrKinesisDataStream` di Wilayah us-east-1 dalam format JSON. Aplikasi kustom dapat membaca dan memproses catatan dari aliran `ClrKinesisDataStream`. 

```
{
  "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>

File berikut mengalirkan pengukur performa untuk total file yang terbuka, total upaya masuk sejak reboot, jumlah pembacaan disk per detik, dan persentase ruang disk kosong ke metrik CloudWatch di Wilayah us-east-1. Anda dapat membuat grafik metrik ini di CloudWatch, membangun dasbor dari grafik, dan mengatur alarm yang mengirim notifikasi bila ambang batas terlampaui. 

```
{
  "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"
    }
  ]
}
```

## Streaming dari Log Peristiwa Aplikasi Windows ke Sink
<a name="configuring-kaw-examples-sinks"></a>

Contoh file konfigurasi `appsettings.json` berikut menunjukkan streaming log peristiwa aplikasi Windows ke berbagai sink di Amazon Kinesis Agent for Microsoft Windows. Untuk contoh menggunakan tipe sink `KinesisStream` dan `CloudWatch`, lihat [Streaming dari Berbagai Sumber ke Kinesis Data Streams](#configuring-kaw-examples-sources).

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

File berikut mengalirkan log acara aplikasi Windows `Critical` atau `Error` ke aliran pengiriman Kinesis Data Firehose `WindowsLogFirehoseDeliveryStream` di Wilayah us-east-1. Jika konektivitas ke Kinesis Data Firehose terganggu, peristiwa akan diantrekan terlebih dahulu di memori. Kemudian jika perlu, peristiwa akan diantrekan ke file pada disk sampai konektivitas dipulihkan. Kemudian, peristiwa akan dihapus dari antrean dan dikirim dengan diikuti peristiwa baru.

Anda dapat mengonfigurasi Kinesis Data Firehose agar menyimpan data yang dialirkan ke beberapa jenis layanan penyimpanan dan analisis berdasarkan persyaratan data pipeline. 

```
{
  "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>

File berikut mengalirkan log acara aplikasi Windows `Critical` atau `Error` ke aliran log CloudWatch Logs di grup log `MyServiceApplicationLog-Group`. Nama setiap aliran dimulai dengan `Stream-`. Nama diakhiri dengan empat digit tahun, dua digit bulan, dan dua digit tanggal pembuatan aliran, semua bersambung (misalnya, `Stream-20180501` adalah aliran yang dibuat pada tanggal 1 Mei 2018). 

```
{
  "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"
    }
  ]
}
```

## Menggunakan Alur
<a name="configuring-kaw-examples-pipes"></a>

Contoh file konfigurasi `appsettings.json` berikut menunjukkan penggunaan fitur terkait alur.

 Contoh ini mengalirkan entri log dari `c:\LogSource\` ke aliran pengiriman Kinesis Data Firehose `ApplicationLogFirehoseDeliveryStream`. Ini hanya mencakup baris yang cocok dengan ekspresi reguler yang ditentukan oleh pasangan kunci-nilai `FilterPattern`. Khususnya, hanya baris dalam berkas log yang dimulai dengan `10` atau `11` yang dialirkan ke 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),.*"
    }
  ]
}
```

## Menggunakan Beberapa Sumber dan Alur
<a name="configuring-kaw-examples-multiple"></a>

Contoh file konfigurasi `appsettings.json` berikut menunjukkan penggunaan beberapa sumber dan alur.

Contoh ini mengalirkan aplikasi, keamanan, dan sistem Log Peristiwa Windows ke aliran pengiriman Kinesis Data Firehose `EventLogStream` menggunakan tiga sumber, tiga alur, dan satu sink.

```
{
    "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"
		}
    ]
}
```