

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konfigurasikan agen Kinesis untuk mengirim data
<a name="writing-with-agents"></a>

Agen Amazon Kinesis adalah aplikasi perangkat lunak Java mandiri yang berfungsi sebagai implementasi referensi untuk menunjukkan bagaimana Anda dapat mengumpulkan dan mengirim data ke Firehose. Agen terus memantau sekumpulan file dan mengirimkan data baru ke aliran Firehose Anda. Agen menunjukkan bagaimana Anda dapat menangani rotasi file, checkpointing, dan coba lagi setelah kegagalan. Ini menunjukkan bagaimana Anda dapat mengirimkan data Anda dengan cara yang andal, tepat waktu, dan sederhana. Ini juga menunjukkan bagaimana Anda dapat memancarkan CloudWatch metrik untuk memantau dan memecahkan masalah proses streaming dengan lebih baik. Untuk mempelajari lebih lanjut, [awslabs/ amazon-kinesis-agent](https://github.com/awslabs/amazon-kinesis-agent).

Secara default, catatan diurai dari setiap file berdasarkan karakter baris baru (`'\n'`). Namun, agen juga dapat dikonfigurasi untuk mengurai catatan multi-baris (lihat [Tentukan pengaturan konfigurasi agen](agent-config-settings.md)). 

Anda dapat menginstal agen di lingkungan server berbasis Linux seperti server web, server log, dan server basis data. Setelah menginstal agen, konfigurasikan dengan menentukan file yang akan dipantau dan aliran Firehose untuk data. Setelah agen dikonfigurasi, agen akan mengumpulkan data dari file dan mengirimkannya dengan andal ke aliran Firehose.

## Prasyarat
<a name="prereqs"></a>

Sebelum Anda mulai menggunakan Agen Kinesis, pastikan Anda memenuhi prasyarat berikut.
+ Sistem operasi Anda harus Amazon Linux, atau Red Hat Enterprise Linux versi 7 atau yang lebih baru. 
+ Agen versi 2.0.0 atau yang lebih baru berjalan menggunakan JRE versi 1.8 atau yang lebih baru. Agen versi 1.1.x berjalan menggunakan JRE 1.7 atau yang lebih baru. 
+ Jika Anda menggunakan Amazon EC2 untuk menjalankan agen Anda, luncurkan instans EC2 Anda.
+ Peran atau AWS kredensil IAM yang Anda tentukan harus memiliki izin untuk menjalankan [PutRecordBatch](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)operasi Amazon Data Firehose agar agen dapat mengirim data ke aliran Firehose Anda. Jika Anda mengaktifkan CloudWatch pemantauan untuk agen, izin untuk melakukan CloudWatch [PutMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html)operasi juga diperlukan. Untuk informasi selengkapnya, lihat [Mengontrol akses dengan Amazon Data Firehose](controlling-access.md)[Pantau kesehatan Agen Kinesis](agent-health.md), dan [Otentikasi dan Kontrol Akses untuk Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/auth-and-access-control-cw.html).

# Mengelola AWS kredensyal
<a name="agent-credentials"></a>

Kelola AWS kredensyal Anda menggunakan salah satu metode berikut:
+ Buat penyedia kredensial khusus. Lihat perinciannya di [Buat penyedia kredensi khusus](custom-cred-provider.md).
+ Tentukan IAM role ketika Anda meluncurkan instans EC2 Anda.
+ Tentukan AWS kredensil saat Anda mengonfigurasi agen (lihat entri untuk `awsAccessKeyId` dan `awsSecretAccessKey` di tabel konfigurasi di bawah). [Tentukan pengaturan konfigurasi agen](agent-config-settings.md)
+ Edit `/etc/sysconfig/aws-kinesis-agent` untuk menentukan AWS Region dan kunci AWS akses Anda.
+ Jika instans EC2 Anda berada di AWS akun yang berbeda, buat peran IAM untuk menyediakan akses ke layanan Amazon Data Firehose. [Tentukan peran tersebut saat Anda mengonfigurasi agen (lihat [assumeRoleExternalAssumeroLearn](agent-config-settings.md#assumeRoleARN) dan Id).](agent-config-settings.md#assumeRoleExternalId) Gunakan salah satu metode sebelumnya untuk menentukan AWS kredensi pengguna di akun lain yang memiliki izin untuk mengambil peran ini.

# Buat penyedia kredensi khusus
<a name="custom-cred-provider"></a>

Anda dapat membuat penyedia kredensial khusus dan memberikan nama kelas dan jalur jarnya ke agen Kinesis dalam pengaturan konfigurasi berikut: `userDefinedCredentialsProvider.classname` dan `userDefinedCredentialsProvider.location`. Untuk deskripsi dari dua pengaturan konfigurasi ini, lihat [Tentukan pengaturan konfigurasi agen](agent-config-settings.md).

Untuk membuat penyedia kredensial khusus, tentukan kelas yang mengimplementasikan antarmuka `AWS CredentialsProvider`, seperti yang ada di contoh berikut.

```
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;

public class YourClassName implements AWSCredentialsProvider {
    public YourClassName() {
    }

    public AWSCredentials getCredentials() {
        return new BasicAWSCredentials("key1", "key2");
    }

    public void refresh() {
    }
}
```

Kelas Anda harus memiliki konstruktor yang tidak mengambil argumen.

AWS memanggil metode penyegaran secara berkala untuk mendapatkan kredensyal yang diperbarui. Jika Anda ingin penyedia kredensial Anda memberikan kredensial yang berbeda sepanjang masa pakainya, sertakan kode untuk menyegarkan kredensial dalam metode ini. Atau, Anda dapat membiarkan metode ini kosong jika Anda ingin penyedia kredensial yang menyediakan kredensial statis (tidak berubah). 

# Unduh dan instal Agen
<a name="download-install"></a>

Pertama-tama, hubungkan ke instans Anda. Untuk informasi selengkapnya, lihat [Connect to Your Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-connect-to-instance-linux.html) di *Panduan Pengguna Amazon EC2*. Jika Anda mengalami masalah saat menyambung, lihat [Pemecahan Masalah Menyambung ke Instans Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html) di Panduan Pengguna *Amazon EC2*.

Selanjutnya, instal agen menggunakan salah satu metode berikut.
+ **Untuk mengatur agen dari repositori Amazon Linux**

  Metode ini hanya berfungsi untuk instans Amazon Linux. Gunakan perintah berikut:

  ```
  sudo yum install –y aws-kinesis-agent
  ```

  Agen v 2.0.0 atau yang lebih baru diinstal pada komputer dengan sistem operasi Amazon Linux 2 ()AL2. Versi agen ini membutuhkan Java versi 1.8 atau yang lebih baru. Jika versi Java yang diperlukan belum ada, proses instalasi agen akan menginstalnya. Untuk informasi lebih lanjut tentang Amazon Linux 2 lihat [https://aws.amazon.com/amazon-linux-2/](https://aws.amazon.com/amazon-linux-2/).
+ **Untuk mengatur agen dari repositori Amazon S3**

  Metode ini berfungsi untuk Red Hat Enterprise Linux, serta instans Amazon Linux 2 karena metode ini menginstal agen dari repositori yang tersedia untuk umum. Gunakan perintah berikut untuk mengunduh dan menginstal versi terbaru dari versi agen 2.x.x: 

  ```
  sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn2.noarch.rpm
  ```

  Untuk menginstal versi tertentu dari agen, tentukan nomor versi dalam perintah. Sebagai contoh, perintah berikut menginstal agen v 2.0.1. 

  ```
  sudo yum install –y https://streaming-data-agent.s3.amazonaws.com/aws-kinesis-agent-2.0.1-1.amzn1.noarch.rpm
  ```

  Jika Anda memiliki Java 1.7 dan tidak ingin meng-upgrade-nya, Anda dapat mengunduh agen versi 1.x.x, yang kompatibel dengan Java 1.7. Misalnya, untuk mengunduh agen v1.1.6, Anda dapat menggunakan perintah berikut: 

  ```
  sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-1.1.6-1.amzn1.noarch.rpm
  ```

  Anda dapat mengunduh agen terbaru dengan perintah berikut

  ```
  sudo yum install -y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn2.noarch.rpm
  ```
+ **Untuk mengatur agen dari GitHub repo**

  1. Pertama, pastikan bahwa Anda menginstal versi Java yang diperlukan, tergantung pada versi agen.

  1.  Unduh agen dari [amazon-kinesis-agent GitHub awslabs/repo](https://github.com/awslabs/amazon-kinesis-agent).

  1. Instal agen dengan menavigasi ke direktori unduhan dan menjalankan perintah berikut:

     ```
     sudo ./setup --install
     ```
+ 

**Untuk mengatur agen dalam wadah Docker**  
Agen Kinesis dapat dijalankan dalam wadah juga melalui basis wadah [amazonlinux](https://docs.aws.amazon.com/AmazonECR/latest/userguide/amazon_linux_container_image.html). Gunakan Dockerfile berikut dan kemudian jalankan. `docker build`

  ```
  FROM amazonlinux
  
  RUN yum install -y aws-kinesis-agent which findutils
  COPY agent.json /etc/aws-kinesis/agent.json
  
  CMD ["start-aws-kinesis-agent"]
  ```

# Konfigurasikan dan mulai Agen
<a name="config-start"></a>

**Untuk mengonfigurasi dan memulai agen**

1. Buka dan edit file konfigurasi (sebagai pengguna super jika menggunakan izin akses file default): `/etc/aws-kinesis/agent.json` 

   Dalam file konfigurasi ini, tentukan file (`"filePattern"`) dari mana agen mengumpulkan data, dan nama Firehose stream `"deliveryStream"` () tempat agen mengirimkan data. Nama file merupakan pola, dan agen mengenali rotasi file. Anda dapat memutar file atau membuat file baru satu kali per detik. Agen menggunakan stempel waktu pembuatan file untuk menentukan file mana yang akan dilacak dan diekor ke aliran Firehose Anda. Membuat file baru atau memutar file lebih sering dari satu kali per detik membuat agen tidak dapat membedakan file-file tersebut dengan benar.

   ```
   { 
      "flows": [
           { 
               "filePattern": "/tmp/app.log*", 
               "deliveryStream": "yourdeliverystream"
           } 
      ] 
   }
   ```

    AWS Wilayah default adalah`us-east-1`. Jika Anda menggunakan Wilayah yang berbeda, tambahkan pengaturan `firehose.endpoint` ke file konfigurasi, dan tentukan titik akhir untuk Wilayah Anda. Untuk informasi selengkapnya, lihat [Tentukan pengaturan konfigurasi agen](agent-config-settings.md).

1. Mulailah agen secara manual:

   ```
   sudo service aws-kinesis-agent start
   ```

1. (Opsional) Konfigurasikan agen untuk memulai pada startup sistem:

   ```
   sudo chkconfig aws-kinesis-agent on
   ```

Agen sekarang berjalan sebagai layanan sistem di latar belakang. Ini terus memantau file yang ditentukan dan mengirim data ke aliran Firehose yang ditentukan. Aktivitas agen masuk di `/var/log/aws-kinesis-agent/aws-kinesis-agent.log`. 

# Tentukan pengaturan konfigurasi agen
<a name="agent-config-settings"></a>

Agen mendukung dua pengaturan konfigurasi wajib, `filePattern` dan `deliveryStream`, ditambah pengaturan konfigurasi opsional untuk fitur tambahan. Anda dapat menentukan pengaturan konfigurasi wajib dan opsional di `/etc/aws-kinesis/agent.json`.

Setiap kali mengubah file konfigurasi, Anda harus menghentikan dan memulai agen, menggunakan perintah berikut:

```
sudo service aws-kinesis-agent stop
sudo service aws-kinesis-agent start
```

Atau, Anda dapat menggunakan perintah berikut:

```
sudo service aws-kinesis-agent restart
```

Berikut ini adalah pengaturan konfigurasi umum.


| Pengaturan Konfigurasi | Deskripsi | 
| --- | --- | 
| <a name="assumeRoleARN"></a>assumeRoleARN |  Amazon Resource Name (ARN) dari peran yang diambil oleh pengguna. Untuk informasi selengkapnya, lihat [Mendelegasikan Akses di Seluruh AWS Akun Menggunakan Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) di Panduan Pengguna *IAM*.  | 
| <a name="assumeRoleExternalId"></a>assumeRoleExternalId |  Pengidentifikasi opsional yang menentukan siapa yang dapat mengambil peran tersebut. Untuk informasi selengkapnya, lihat [Cara Menggunakan ID Eksternal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) di *Panduan Pengguna IAM*.  | 
| <a name="awsAccessKeyId"></a>awsAccessKeyId |  AWS ID kunci akses yang mengesampingkan kredensyal default. Pengaturan ini diutamakan daripada semua penyedia kredensial lainnya.  | 
| <a name="awsSecretAccessKey"></a>awsSecretAccessKey |  AWS kunci rahasia yang mengesampingkan kredensi default. Pengaturan ini diutamakan daripada semua penyedia kredensial lainnya.  | 
| cloudwatch.emitMetrics |  Memungkinkan agen untuk memancarkan metrik ke CloudWatch if set (true). Default: betul  | 
| cloudwatch.endpoint |  Titik akhir regional untuk CloudWatch. Default: `monitoring.us-east-1.amazonaws.com`  | 
| firehose.endpoint |  Titik akhir regional untuk Amazon Data Firehose. Default: `firehose.us-east-1.amazonaws.com`  | 
| sts.endpoint |  Titik akhir regional untuk Layanan Token AWS Keamanan. Default: `https://sts.amazonaws.com`  | 
| userDefinedCredentialsProvider.classname | Jika Anda menentukan penyedia kredensial khusus, beri nama kelas yang sepenuhnya memenuhi syarat menggunakan pengaturan ini. Jangan sertakan .class pada akhir nama kelas.  | 
| userDefinedCredentialsProvider.location | Jika Anda menentukan penyedia kredensial khusus, gunakan pengaturan ini untuk menentukan jalur absolut dari jar yang berisi penyedia kredensial khusus. Agen juga mencari file jar di lokasi berikut: /usr/share/aws-kinesis-agent/lib/. | 

Berikut ini adalah pengaturan konfigurasi aliran.


| Pengaturan Konfigurasi | Deskripsi | 
| --- | --- | 
| aggregatedRecordSizeBytes |  Untuk membuat catatan agregat agen dan kemudian memasukkannya ke aliran Firehose dalam satu operasi, tentukan pengaturan ini. Setel ke ukuran yang Anda inginkan untuk memiliki catatan agregat sebelum agen memasukkannya ke aliran Firehose.  Default: 0 (tidak ada agregasi)  | 
| dataProcessingOptions |  Daftar opsi pemrosesan diterapkan ke setiap catatan yang diuraikan sebelum dikirim ke aliran Firehose. Pilihan pemrosesan dilakukan dalam urutan yang ditentukan. Untuk informasi selengkapnya, lihat [Pra-proses data dengan Agen](pre-processing.md).  | 
| deliveryStream |  [Wajib] Nama aliran Firehose.  | 
| filePattern |  [Diperlukan] Sebuah glob untuk file yang perlu dipantau oleh agen. Setiap file yang cocok dengan pola ini diambil oleh agen secara otomatis dan dipantau. Untuk semua file yang cocok dengan pola ini, berikan izin baca untuk `aws-kinesis-agent-user`. Untuk direktori yang berisi file, berikan izin baca dan eksekusi untuk `aws-kinesis-agent-user`.  Agen mengambil file yang cocok dengan pola ini. Untuk memastikan bahwa agen tidak mengambil catatan yang tidak diinginkan, pilih pola ini dengan hati-hati.   | 
| initialPosition |  Posisi awal dari mana file mulai diurai. Nilai yang valid adalah `START_OF_FILE` dan `END_OF_FILE`. Default: `END_OF_FILE`  | 
| maxBufferAgeMillis |  Waktu maksimum, dalam milidetik, di mana agen buffer data sebelum mengirimnya ke aliran Firehose. Kisaran nilai: 1.000–900.000 (1 detik sampai 15 menit) Default: 60.000 (1 menit)  | 
| maxBufferSizeBytes |  Ukuran maksimum, dalam byte, dimana agen buffer data sebelum mengirimnya ke aliran Firehose. Kisaran nilai: 1–4.194.304 (4 MB) Default: 4.194.304 (4 MB)  | 
| maxBufferSizeRecords |  Jumlah maksimum catatan yang agen buffer data sebelum mengirimnya ke aliran Firehose. Kisaran nilai: 1–500 Default: 500  | 
| minTimeBetweenFilePollsMillis |  Interval waktu, dalam milidetik, saat agen melakukan polling dan mengurai file yang dipantau untuk data baru. Kisaran nilai: 1 atau lebih Default: 100  | 
| multiLineStartPattern |  Pola untuk mengidentifikasi awal catatan. Catatan dibuat dari baris yang cocok dengan pola tersebut dan baris berikutnya yang tidak cocok dengan pola tersebut. Nilai-nilai yang benar adalah ekspresi reguler. Secara default, setiap baris baru dalam file log diurai sebagai satu catatan.  | 
| skipHeaderLines |  Jumlah baris yang dilewati agen untuk diurai di awal file yang dipantau. Kisaran nilai: 0 atau lebih Default: 0 (nol)  | 
| truncatedRecordTerminator |  String yang digunakan agen untuk memotong rekaman yang diuraikan saat ukuran rekaman melebihi batas ukuran rekaman Amazon Data Firehose. (1.000 KB) Default: `'\n'` (baris baru)  | 

# Konfigurasikan beberapa direktori dan aliran file
<a name="sim-writes"></a>

Dengan menentukan beberapa pengaturan konfigurasi aliran, Anda dapat mengonfigurasi agen untuk memantau beberapa direktori file dan mengirim data ke beberapa aliran. Dalam contoh konfigurasi berikut, agen memonitor dua direktori file dan mengirimkan data ke aliran data Kinesis dan aliran Firehose masing-masing. Anda dapat menentukan titik akhir yang berbeda untuk Kinesis Data Streams dan Amazon Data Firehose sehingga aliran data dan aliran Firehose Anda tidak perlu berada di Wilayah yang sama.

```
{
    "cloudwatch.emitMetrics": true,
    "kinesis.endpoint": "https://your/kinesis/endpoint", 
    "firehose.endpoint": "https://your/firehose/endpoint", 
    "flows": [
        {
            "filePattern": "/tmp/app1.log*", 
            "kinesisStream": "yourkinesisstream"
        }, 
        {
            "filePattern": "/tmp/app2.log*",
            "deliveryStream": "yourfirehosedeliverystream" 
        }
    ] 
}
```

Untuk informasi lebih rinci tentang penggunaan agen dengan Amazon Kinesis Data Streams, lihat [Menulis ke Amazon Kinesis Data Streams dengan Agen Kinesis](https://docs.aws.amazon.com/kinesis/latest/dev/writing-with-agents.html).

# Pra-proses data dengan Agen
<a name="pre-processing"></a>

Agen dapat memproses catatan yang diuraikan dari file yang dipantau sebelum mengirimnya ke aliran Firehose Anda. Anda dapat mengaktifkan fitur ini dengan menambahkan pengaturan konfigurasi `dataProcessingOptions` ke aliran file Anda. Satu atau lebih opsi pemrosesan dapat ditambahkan, dan dilakukan dalam urutan yang ditentukan.

Agen mendukung opsi pemrosesan berikut. Karena agen adalah sumber terbuka, Anda dapat lebih mengembangkan dan memperluas pilihan pemrosesannya. Anda dapat mengunduh agen dari [Agen Kinesis](https://github.com/awslabs/amazon-kinesis-agent).Opsi Pemrosesan

`SINGLELINE`  
Mengonversi catatan multi-baris untuk catatan baris tunggal dengan menghapus karakter baris baru, spasi di bagian paling depan, dan spasi di bagian paling belakang.  

```
{
    "optionName": "SINGLELINE"
}
```

`CSVTOJSON`  
Mengonversi catatan dari format yang dipisahkan pembatas ke format JSON.  

```
{
    "optionName": "CSVTOJSON",
    "customFieldNames": [ "field1", "field2", ... ],
    "delimiter": "yourdelimiter"
}
```  
`customFieldNames`  
[Diperlukan] Nama-nama field yang digunakan sebagai kunci dalam setiap pasangan nilai kunci JSON. Misalnya, jika Anda menentukan `["f1", "f2"]`, catatan "v1, v2" dikonversi ke `{"f1":"v1","f2":"v2"}`.  
`delimiter`  
String yang digunakan sebagai pembatas dalam catatan. Default adalah koma (,).

`LOGTOJSON`  
Mengonversi catatan dari format log ke format JSON. Format log yang didukung adalah **Apache Common Log**, **Apache Combined Log**, **Apache Error Log**, dan **RFC3164 Syslog**.  

```
{
    "optionName": "LOGTOJSON",
    "logFormat": "logformat",
    "matchPattern": "yourregexpattern",
    "customFieldNames": [ "field1", "field2", … ]
}
```  
`logFormat`  
[Diperlukan] Format entri log. Berikut adalah nilai yang mungkin:  
+ `COMMONAPACHELOG` — Format Log Umum Apache. Setiap entri log memiliki pola berikut secara default: "`%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes}`".
+ `COMBINEDAPACHELOG` — Format Log Gabungan Apache. Setiap entri log memiliki pola berikut secara default: "`%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes} %{referrer} %{agent}`".
+ `APACHEERRORLOG` — Format Log Kesalahan Apache. Setiap entri log memiliki pola berikut secara default: "`[%{timestamp}] [%{module}:%{severity}] [pid %{processid}:tid %{threadid}] [client: %{client}] %{message}`".
+ `SYSLOG`— Format RFC3164 Syslog. Setiap entri log memiliki pola berikut secara default: "`%{timestamp} %{hostname} %{program}[%{processid}]: %{message}`".  
`matchPattern`  
Menimpa pola default untuk format log tertentu. Gunakan pengaturan ini untuk mengekstraksi nilai dari entri log jika nilai menggunakan format khusus. Jika menentukan `matchPattern`, Anda juga harus menentukan `customFieldNames`.  
`customFieldNames`  
Nama bidang khusus digunakan sebagai kunci dalam setiap pasangan nilai kunci JSON. Anda dapat menggunakan pengaturan ini untuk menentukan nama bidang untuk nilai-nilai yang diekstraksi dari `matchPattern`, atau menimpa nama bidang default dari format log yang telah ditetapkan sebelumnya.

**Example : Konfigurasi LOGTOJSON**  <a name="example-logtojson"></a>
Berikut adalah salah satu contoh konfigurasi `LOGTOJSON` untuk entri Log Umum Apache yang dikonversi ke format JSON:  

```
{
    "optionName": "LOGTOJSON",
    "logFormat": "COMMONAPACHELOG"
}
```
Sebelum konversi:  

```
64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291
```
Setelah konversi:  

```
{"host":"64.242.88.10","ident":null,"authuser":null,"datetime":"07/Mar/2004:16:10:02 -0800","request":"GET /mailman/listinfo/hsdivision HTTP/1.1","response":"200","bytes":"6291"}
```

**Example : Konfigurasi LOGTOJSON dengan Bidang Khusus**  <a name="example-logtojson-custom-fields"></a>
Berikut adalah contoh lain konfigurasi `LOGTOJSON`:  

```
{
    "optionName": "LOGTOJSON",
    "logFormat": "COMMONAPACHELOG",
    "customFieldNames": ["f1", "f2", "f3", "f4", "f5", "f6", "f7"]
}
```
Dengan pengaturan konfigurasi ini, entri Log Umum Apache yang sama dari contoh sebelumnya dikonversi ke format JSON sebagai berikut:  

```
{"f1":"64.242.88.10","f2":null,"f3":null,"f4":"07/Mar/2004:16:10:02 -0800","f5":"GET /mailman/listinfo/hsdivision HTTP/1.1","f6":"200","f7":"6291"}
```

**Example : Mengonversi Entri Log Umum Apache**  <a name="example-apache-common-log-entry"></a>
Konfigurasi aliran berikut mengonversi entri Log Umum Apache ke catatan baris tunggal dalam format JSON:  

```
{ 
    "flows": [
        {
            "filePattern": "/tmp/app.log*", 
            "deliveryStream": "my-delivery-stream",
            "dataProcessingOptions": [
                {
                    "optionName": "LOGTOJSON",
                    "logFormat": "COMMONAPACHELOG"
                }
            ]
        }
    ] 
}
```

**Example : Mengonversi Catatan Multi-Baris**  <a name="example-convert-multi-line"></a>
Konfigurasi aliran berikut mengurai catatan multi-baris yang baris pertamanya dimulai dengan "`[SEQUENCE=`". Setiap catatan dikonversi ke catatan baris tunggal terlebih dahulu. Kemudian, nilai-nilai diekstraksi dari catatan tersebut berdasarkan pembatas tab. Nilai yang diekstraksi dipetakan ke nilai `customFieldNames` yang ditentukan untuk membentuk catatan baris tunggal dalam format JSON.  

```
{ 
    "flows": [
        {
            "filePattern": "/tmp/app.log*", 
            "deliveryStream": "my-delivery-stream",
            "multiLineStartPattern": "\\[SEQUENCE=",
            "dataProcessingOptions": [
                {
                    "optionName": "SINGLELINE"
                },
                {
                    "optionName": "CSVTOJSON",
                    "customFieldNames": [ "field1", "field2", "field3" ],
                    "delimiter": "\\t"
                }
            ]
        }
    ] 
}
```

**Example : Konfigurasi LOGTOJSON dengan Pola Pencocokan**  <a name="example-logtojson-match-pattern"></a>
Berikut adalah salah satu contoh konfigurasi `LOGTOJSON` untuk entri Log Umum Apache yang dikonversi ke format JSON, dengan bidang terakhir (byte) dihilangkan:  

```
{
    "optionName": "LOGTOJSON",
    "logFormat": "COMMONAPACHELOG",
    "matchPattern": "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3})",
    "customFieldNames": ["host", "ident", "authuser", "datetime", "request", "response"]
}
```
Sebelum konversi:  

```
123.45.67.89 - - [27/Oct/2000:09:27:09 -0400] "GET /java/javaResources.html HTTP/1.0" 200
```
Setelah konversi:  

```
{"host":"123.45.67.89","ident":null,"authuser":null,"datetime":"27/Oct/2000:09:27:09 -0400","request":"GET /java/javaResources.html HTTP/1.0","response":"200"}
```

# Gunakan perintah Agen CLI yang umum
<a name="cli-commands"></a>

Tabel berikut menyediakan satu set kasus penggunaan umum dan perintah yang sesuai untuk bekerja dengan agen AWS Kinesis. 


| Kasus penggunaan | Perintah | 
| --- | --- | 
|  Secara otomatis memulai agen pada sistem start up  |  <pre>sudo chkconfig aws-kinesis-agent on</pre>  | 
|  Periksa status agen  |  <pre>sudo service aws-kinesis-agent status</pre>  | 
|  Hentikan agen  |  <pre>sudo service aws-kinesis-agent stop</pre>  | 
|  Baca file log agen dari lokasi ini  |  <pre>/var/log/aws-kinesis-agent/aws-kinesis-agent.log</pre>  | 
|  Copot instalan agen  |  <pre>sudo yum remove aws-kinesis-agent</pre>  | 

# Memecahkan masalah saat mengirim dari Agen Kinesis
<a name="agent-faq"></a>

Tabel ini menyediakan informasi pemecahan masalah dan solusi untuk masalah umum yang dihadapi saat menggunakan Agen Amazon Kinesis. 


| Isu | Solusi | 
| --- | --- | 
| Mengapa Agen Kinesis tidak berfungsi di Windows? |  [Kinesis Agent untuk Windows](https://docs.aws.amazon.com/kinesis-agent-windows/latest/userguide/what-is-kinesis-agent-windows.html) adalah perangkat lunak yang berbeda dari Kinesis Agent untuk platform Linux.  | 
| Mengapa Agen Kinesis melambat dan/atau meningkat? RecordSendErrors |  Ini biasanya karena pelambatan dari Kinesis. Periksa `WriteProvisionedThroughputExceeded` metrik untuk Kinesis Data Streams `ThrottledRecords` atau metrik untuk aliran Firehose. Setiap peningkatan dari 0 dalam metrik ini menunjukkan bahwa batas aliran perlu ditingkatkan. [Untuk informasi selengkapnya, lihat [batas Kinesis Data Stream dan aliran](https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html) Firehose.](https://docs.aws.amazon.com/firehose/latest/dev/limits.html) Setelah Anda mengesampingkan pembatasan, lihat apakah Agen Kinesis dikonfigurasi untuk mengekor sejumlah besar file kecil. Ada penundaan ketika Agen Kinesis mengekor file baru, jadi Agen Kinesis harus membuntuti sejumlah kecil file yang lebih besar. Coba konsolidasikan file log Anda ke file yang lebih besar.  | 
| Bagaimana cara mengatasi java.lang.OutOfMemoryError pengecualian? | Ini terjadi ketika Agen Kinesis tidak memiliki cukup memori untuk menangani beban kerjanya saat ini. Cobalah meningkatkan JAVA\$1START\$1HEAP dan JAVA\$1MAX\$1HEAP masuk /usr/bin/start-aws-kinesis-agent dan memulai kembali agen. | 
| Bagaimana cara mengatasi IllegalStateException : connection pool shut down pengecualian? | Agen Kinesis tidak memiliki koneksi yang cukup untuk menangani beban kerjanya saat ini. Coba tingkatkan maxConnections dan maxSendingThreads dalam pengaturan konfigurasi agen umum Anda di/etc/aws-kinesis/agent.json. Nilai default untuk bidang ini adalah 12 kali prosesor runtime yang tersedia. Lihat [AgentConfiguration.java](https://github.com/awslabs/amazon-kinesis-agent/blob/master/src/com/amazon/kinesis/streaming/agent/config/AgentConfiguration.java) untuk mengetahui selengkapnya tentang pengaturan konfigurasi agen lanjutan.  | 
| Bagaimana saya bisa men-debug masalah lain dengan Agen Kinesis? | DEBUGlog level dapat diaktifkan di/etc/aws-kinesis/log4j.xml. | 
| Bagaimana cara mengonfigurasi Agen Kinesis? | Semakin kecilmaxBufferSizeBytes, semakin sering Agen Kinesis akan mengirim data. Ini bisa bagus karena mengurangi waktu pengiriman catatan, tetapi juga meningkatkan permintaan per detik ke Kinesis.  | 
| Mengapa Agen Kinesis mengirimkan catatan duplikat? | Ini terjadi karena kesalahan konfigurasi dalam file tailing. Pastikan masing-masing hanya fileFlow’s filePattern cocok dengan satu file. Ini juga dapat terjadi jika logrotate mode yang digunakan dalam copytruncate mode. Coba ubah mode ke mode default atau buat untuk menghindari duplikasi. Untuk informasi selengkapnya tentang penanganan rekaman duplikat, lihat [Menangani Rekaman Duplikat.](https://docs.aws.amazon.com/streams/latest/dev/kinesis-record-processor-duplicates.html) | 