

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

# Mengirim data ke aliran Firehose
<a name="basic-write"></a>

Bagian ini menjelaskan bagaimana Anda dapat menggunakan sumber data yang berbeda untuk mengirim data ke aliran Firehose Anda. Jika Anda baru mengenal Amazon Data Firehose, luangkan waktu untuk membiasakan diri dengan konsep dan terminologi yang disajikan. [Apa itu Amazon Data Firehose?](what-is-this-service.md)

**catatan**  
Beberapa AWS layanan hanya dapat mengirim pesan dan acara ke aliran Firehose yang berada di Wilayah yang sama. Jika aliran Firehose Anda tidak muncul sebagai opsi saat mengonfigurasi target untuk CloudWatch Log Amazon, CloudWatch Peristiwa, atau AWS IoT, verifikasi bahwa aliran Firehose Anda berada di Wilayah yang sama dengan layanan Anda yang lain. Untuk informasi tentang titik akhir layanan untuk setiap Wilayah, lihat titik akhir [Amazon Data Firehose](https://docs.aws.amazon.com/general/latest/gr/fh.html#fh_region).

Anda dapat mengirim data ke aliran Firehose Anda dari sumber data berikut.

**Topics**
+ [

# Konfigurasikan agen Kinesis untuk mengirim data
](writing-with-agents.md)
+ [

# Kirim data dengan AWS SDK
](writing-with-sdk.md)
+ [

# Kirim CloudWatch Log ke Firehose
](writing-with-cloudwatch-logs.md)
+ [

# Kirim CloudWatch Acara ke Firehose
](writing-with-cloudwatch-events.md)
+ [

# Konfigurasi AWS IoT untuk mengirim data ke Firehose
](writing-with-iot.md)

# 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) | 

# Kirim data dengan AWS SDK
<a name="writing-with-sdk"></a>

[https://aws.amazon.com/sdk-for-python/](https://aws.amazon.com/sdk-for-python/) Jika Anda baru mengenal Amazon Data Firehose, luangkan waktu untuk membiasakan diri dengan konsep dan terminologi yang disajikan. [Apa itu Amazon Data Firehose?](what-is-this-service.md) Untuk informasi selengkapnya, lihat [Mulai Pengembangan dengan Amazon Web Services](https://aws.amazon.com/developers/getting-started/).

Contoh-contoh ini tidak mewakili kode siap produksi, karena contoh ini tidak memeriksa semua kemungkinan pengecualian, atau memperhitungkan semua kemungkinan pertimbangan keamanan atau performa. 

Amazon Data Firehose API menawarkan dua operasi untuk mengirim data ke aliran Firehose Anda: dan. [PutRecord[PutRecordBatch](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecord.html) `PutRecord()`mengirim satu catatan data dalam satu panggilan dan `PutRecordBatch()` dapat mengirim beberapa catatan data dalam satu panggilan. 

## Operasi penulisan tunggal menggunakan PutRecord
<a name="putrecord"></a>

Menempatkan data hanya membutuhkan nama aliran Firehose dan buffer byte (<=1000 KB). Karena Amazon Data Firehose mengumpulkan beberapa catatan sebelum memuat file ke Amazon S3, Anda mungkin ingin menambahkan pemisah rekaman. Untuk memasukkan data satu rekaman pada satu waktu ke aliran Firehose, gunakan kode berikut:

```
PutRecordRequest putRecordRequest = new PutRecordRequest();
putRecordRequest.setDeliveryStreamName(deliveryStreamName);

String data = line + "\n";

Record record = new Record().withData(ByteBuffer.wrap(data.getBytes()));
putRecordRequest.setRecord(record);

// Put record into the DeliveryStream
firehoseClient.putRecord(putRecordRequest);
```

Untuk konteks kode lainnya, lihat kode contoh yang disertakan dalam AWS SDK. Untuk informasi tentang sintaks permintaan dan respons, lihat topik yang relevan di Operasi [API Firehose](https://docs.aws.amazon.com/firehose/latest/APIReference/API_Operations.html).

## Operasi penulisan Batch menggunakan PutRecordBatch
<a name="putrecordbatch"></a>

Menempatkan data hanya memerlukan nama aliran Firehose dan daftar catatan. Karena Amazon Data Firehose mengumpulkan beberapa catatan sebelum memuat file ke Amazon S3, Anda mungkin ingin menambahkan pemisah rekaman. Untuk menempatkan catatan data dalam batch ke dalam aliran Firehose, gunakan kode berikut:

```
PutRecordBatchRequest putRecordBatchRequest = new PutRecordBatchRequest();
putRecordBatchRequest.setDeliveryStreamName(deliveryStreamName);
putRecordBatchRequest.setRecords(recordList);

// Put Record Batch records. Max No.Of Records we can put in a
// single put record batch request is 500
firehoseClient.putRecordBatch(putRecordBatchRequest);

recordList.clear();
```

Untuk konteks kode lainnya, lihat kode contoh yang disertakan dalam AWS SDK. Untuk informasi tentang sintaks permintaan dan respons, lihat topik yang relevan di Operasi [API Firehose](https://docs.aws.amazon.com/firehose/latest/APIReference/API_Operations.html).

# Kirim CloudWatch Log ke Firehose
<a name="writing-with-cloudwatch-logs"></a>

CloudWatch Peristiwa log dapat dikirim ke Firehose menggunakan filter CloudWatch berlangganan. Untuk informasi selengkapnya, lihat [Filter langganan dengan Amazon Data Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#FirehoseExample).

CloudWatch Peristiwa log dikirim ke Firehose dalam format gzip terkompresi. Jika Anda ingin mengirimkan peristiwa log yang didekompresi ke tujuan Firehose, Anda dapat menggunakan fitur dekompresi di Firehose untuk mendekompresi Log secara otomatis. CloudWatch 

**penting**  
Saat ini, Firehose tidak mendukung pengiriman CloudWatch Log ke tujuan OpenSearch Layanan Amazon karena Amazon CloudWatch menggabungkan beberapa peristiwa log ke dalam satu catatan Firehose dan OpenSearch Layanan Amazon tidak dapat menerima beberapa peristiwa log dalam satu catatan. Sebagai alternatif, Anda dapat mempertimbangkan [Menggunakan filter langganan untuk OpenSearch Layanan Amazon di CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_OpenSearch_Stream.html).

# Dekompresi CloudWatch Log
<a name="writing-with-cloudwatch-logs-decompression"></a>

[Jika Anda menggunakan Firehose untuk mengirimkan CloudWatch Log dan ingin mengirimkan data yang didekompresi ke tujuan aliran Firehose Anda, gunakan [Konversi Format Data](https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html) Firehose (Parket, ORC) atau partisi Dinamis.](https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html) Anda harus mengaktifkan dekompresi untuk aliran Firehose Anda.

Anda dapat mengaktifkan dekompresi menggunakan Konsol Manajemen AWS, AWS Command Line Interface atau AWS SDKs.

**catatan**  
Jika Anda mengaktifkan fitur dekompresi pada stream, gunakan streaming tersebut secara eksklusif untuk filter langganan CloudWatch Log, dan bukan untuk Vded Logs. Jika Anda mengaktifkan fitur dekompresi pada aliran yang digunakan untuk menelan CloudWatch Log dan Log Penjual, konsumsi Log Penjual ke Firehose gagal. Fitur dekompresi ini hanya untuk CloudWatch Log.

# Ekstrak pesan setelah dekompresi Log CloudWatch
<a name="Message_extraction"></a>

Saat Anda mengaktifkan dekompresi, Anda memiliki opsi untuk juga mengaktifkan ekstraksi pesan. Saat menggunakan ekstraksi pesan, Firehose menyaring semua metadata, seperti pemilik, loggroup, logstream, dan lainnya dari catatan CloudWatch Log yang didekompresi dan hanya mengirimkan konten di dalam bidang pesan. Jika Anda mengirimkan data ke tujuan Splunk, Anda harus mengaktifkan ekstraksi pesan untuk Splunk untuk mengurai data. Berikut ini adalah output sampel setelah dekompresi dengan dan tanpa ekstraksi pesan.

Gambar 1: Output sampel setelah dekompresi tanpa ekstraksi pesan:

```
{
 "owner": "111111111111",
 "logGroup": "CloudTrail/logs",
 "logStream": "111111111111_CloudTrail/logs_us-east-1",
 "subscriptionFilters": [
 "Destination"
 ],
 "messageType": "DATA_MESSAGE",
 "logEvents": [
 {
 "id": "31953106606966983378809025079804211143289615424298221568",
 "timestamp": 1432826855000,
 "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root1\"}"
 },
 {
 "id": "31953106606966983378809025079804211143289615424298221569",
 "timestamp": 1432826855000,
 "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root2\"}"
 },
 {
 "id": "31953106606966983378809025079804211143289615424298221570",
 "timestamp": 1432826855000,
 "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root3\"}"
 }
 ]
}
```

Gambar 2: Output sampel setelah dekompresi dengan ekstraksi pesan:

```
{"eventVersion":"1.03","userIdentity":{"type":"Root1"}
{"eventVersion":"1.03","userIdentity":{"type":"Root2"}
{"eventVersion":"1.03","userIdentity":{"type":"Root3"}
```

# Aktifkan dekompresi pada aliran Firehose baru dari konsol
<a name="writing-with-cloudwatch-logs-decompression-enabling-console"></a>

**Untuk mengaktifkan dekompresi pada aliran Firehose baru menggunakan Konsol Manajemen AWS**

1. [Masuk ke Konsol Manajemen AWS dan buka konsol Kinesis di /kinesis. https://console.aws.amazon.com](https://console.aws.amazon.com/kinesis)

1. Pilih **Amazon Data Firehose** di panel navigasi.

1. Pilih **Buat aliran Firehose**.

1. Di bawah **Pilih sumber dan tujuan**  
****Sumber****  
Sumber aliran Firehose Anda. Pilih salah satu sumber berikut:  
   + **Direct PUT** - Pilih opsi ini untuk membuat aliran Firehose yang ditulis langsung oleh aplikasi produser. Untuk daftar AWS layanan dan agen serta layanan open source yang terintegrasi dengan Direct PUT di Firehose, lihat bagian [ini](create-name.md).
   + **Aliran Kinesis:** Pilih opsi ini untuk mengonfigurasi aliran Firehose yang menggunakan aliran data Kinesis sebagai sumber data. Anda kemudian dapat menggunakan Firehose untuk membaca data dengan mudah dari aliran data Kinesis yang ada dan memuatnya ke tujuan. Untuk informasi selengkapnya, lihat [Menulis ke Firehose Menggunakan Kinesis](https://docs.aws.amazon.com/firehose/latest/dev/writing-with-kinesis-streams.html) Data Streams  
****Destinasi****  
Tujuan aliran Firehose Anda. Pilih salah satu cara berikut:  
   + Amazon S3
   + Splunk

1. Di bawah **nama aliran Firehose**, masukkan nama untuk streaming Anda.

1. (Opsional) Di bawah **Transform record**:
   + Di bagian **Decompress source records from Amazon CloudWatch Logs**, pilih **Aktifkan dekompresi**.
   + Jika Anda ingin menggunakan ekstraksi pesan setelah dekompresi, pilih **Aktifkan ekstraksi pesan**.

# Aktifkan dekompresi pada aliran Firehose yang ada
<a name="enabling-decompression-existing-stream-console"></a>

Bagian ini memberikan instruksi untuk mengaktifkan dekompresi pada aliran Firehose yang ada. Ini mencakup dua skenario - aliran dengan pemrosesan Lambda dinonaktifkan dan aliran dengan pemrosesan Lambda sudah diaktifkan. Bagian berikut menguraikan step-by-step prosedur untuk setiap kasus, termasuk pembuatan atau modifikasi fungsi Lambda, memperbarui pengaturan Firehose, dan metrik CloudWatch pemantauan untuk memastikan keberhasilan implementasi fitur dekompresi Firehose bawaan.

## Mengaktifkan dekompresi saat pemrosesan Lambda dinonaktifkan
<a name="enabling-decomp-exist-stream-lam-disable"></a>

Untuk mengaktifkan dekompresi pada aliran Firehose yang ada dengan pemrosesan Lambda dinonaktifkan, Anda harus mengaktifkan pemrosesan Lambda terlebih dahulu. Kondisi ini hanya berlaku untuk aliran yang ada. Langkah-langkah berikut menunjukkan cara mengaktifkan dekompresi pada aliran yang ada yang tidak mengaktifkan pemrosesan Lambda.

1. Buat fungsi Lambda. Anda dapat membuat catatan dummy pass through atau dapat menggunakan [cetak biru ini untuk membuat fungsi Lambda](https://github.com/aws-samples/aws-kinesis-firehose-resources/tree/main/blueprints/kinesis-firehose-cloudwatch-logs-processor) baru. 

1. Perbarui aliran Firehose Anda saat ini untuk mengaktifkan pemrosesan Lambda dan menggunakan fungsi Lambda yang Anda buat untuk diproses.

1. Setelah Anda memperbarui aliran dengan fungsi Lambda baru, kembali ke konsol Firehose dan aktifkan dekompresi.

1. Nonaktifkan pemrosesan Lambda yang Anda aktifkan di langkah 1. Anda sekarang dapat menghapus fungsi yang Anda buat di langkah 1.

## Mengaktifkan dekompresi saat pemrosesan Lambda diaktifkan
<a name="enabling-decomp-exist-stream-lam-enable"></a>

Jika Anda sudah memiliki aliran Firehose dengan fungsi Lambda, untuk melakukan dekompresi Anda dapat menggantinya dengan fitur dekompresi Firehose. Sebelum Anda melanjutkan, tinjau kode fungsi Lambda Anda untuk mengonfirmasi bahwa kode tersebut hanya melakukan dekompresi atau ekstraksi pesan. Output dari fungsi Lambda Anda akan terlihat mirip dengan contoh yang ditunjukkan pada [Gambar 1 atau Gambar 2](Message_extraction.md). Jika output terlihat serupa, Anda dapat mengganti fungsi Lambda menggunakan langkah-langkah berikut.

1. [Ganti fungsi Lambda Anda saat ini dengan cetak biru ini.](https://github.com/aws-samples/aws-kinesis-firehose-resources/tree/main/blueprints/kinesis-firehose-cloudwatch-logs-processor) Fungsi Lambda cetak biru baru secara otomatis mendeteksi apakah data yang masuk dikompresi atau didekompresi. Ini hanya melakukan dekompresi jika data inputnya dikompresi.

1. Nyalakan dekompresi menggunakan opsi Firehose bawaan untuk dekompresi.

1. Aktifkan CloudWatch metrik untuk aliran Firehose Anda jika belum diaktifkan. Pantau metrik `CloudWatchProcessorLambda_IncomingCompressedData` dan tunggu hingga metrik ini berubah menjadi nol. Ini mengonfirmasi bahwa semua data input yang dikirim ke fungsi Lambda Anda didekompresi dan fungsi Lambda tidak lagi diperlukan.

1. Hapus transformasi data Lambda karena Anda tidak lagi membutuhkannya untuk mendekompresi aliran Anda.

# Nonaktifkan dekompresi pada aliran Firehose
<a name="writing-with-cloudwatch-logs-decompression-disabling-console"></a>

****

Untuk menonaktifkan dekompresi pada aliran data menggunakan Konsol Manajemen AWS

1. [Masuk ke Konsol Manajemen AWS dan buka konsol Kinesis di /kinesis. https://console.aws.amazon.com](https://console.aws.amazon.com/kinesis)

1. Pilih **Amazon Data Firehose** di panel navigasi.

1. Pilih aliran Firehose yang ingin Anda edit.

1. Pada halaman **rincian aliran Firehose**, pilih tab **Konfigurasi**.

1. Di bagian **Transform and convert records**, pilih **Edit**.

1. Di bawah **Dekompresi catatan sumber dari Amazon CloudWatch Logs**, hapus **Aktifkan dekompresi**, lalu pilih **Simpan** perubahan.

# Memecahkan masalah dekompresi di Firehose
<a name="decomp-faq"></a>

Tabel berikut menunjukkan cara Firehose menangani kesalahan selama dekompresi dan pemrosesan data, termasuk mengirimkan catatan ke bucket S3 kesalahan, kesalahan pencatatan, dan metrik pemancar. Ini juga menjelaskan pesan kesalahan yang dikembalikan untuk operasi penempatan data yang tidak sah.


| Isu | Solusi | 
| --- | --- | 
| Apa yang terjadi pada data sumber jika terjadi kesalahan selama dekompresi? |  Jika Amazon Data Firehose tidak dapat mendekompresi rekaman, rekaman akan dikirimkan sebagaimana adanya (dalam format terkompresi) ke bucket S3 error yang Anda tentukan selama waktu pembuatan aliran Firehose. Seiring dengan catatan, objek yang dikirimkan juga menyertakan kode kesalahan dan pesan kesalahan dan objek ini akan dikirim ke awalan bucket S3 yang disebut. `decompression-failed` Firehose akan terus memproses catatan lain setelah dekompresi rekaman yang gagal.  | 
| Apa yang terjadi pada data sumber jika terjadi kesalahan dalam pipa pemrosesan setelah dekompresi berhasil? |  Jika Amazon Data Firehose terjadi kesalahan dalam langkah pemrosesan setelah dekompresi seperti Partisi Dinamis dan Konversi Format Data, rekaman akan dikirimkan dalam format terkompresi ke bucket S3 kesalahan yang Anda tentukan selama waktu pembuatan aliran Firehose. Seiring dengan catatan, objek yang dikirim juga mencakup kode kesalahan dan pesan kesalahan.  | 
| Bagaimana Anda diberitahu jika terjadi kesalahan atau pengecualian? |  Jika terjadi kesalahan atau pengecualian selama dekompresi, jika Anda mengonfigurasi CloudWatch Log, Firehose akan mencatat pesan CloudWatch kesalahan ke dalam Log. Selain itu, Firehose mengirimkan metrik ke CloudWatch metrik yang dapat Anda pantau. Anda juga dapat secara opsional membuat alarm berdasarkan metrik yang dipancarkan oleh Firehose.  | 
| Apa yang terjadi jika put operasi tidak berasal dari CloudWatch Log? | Ketika pelanggan puts tidak berasal dari CloudWatch Log, maka pesan kesalahan berikut dikembalikan: <pre>Put to Firehose failed for AccountId: <accountID>, FirehoseName:  <firehosename> because the request is not originating from allowed source types.</pre> | 
| Metrik apa yang dipancarkan Firehose untuk fitur dekompresi? | Firehose memancarkan metrik untuk dekompresi setiap catatan. Anda harus memilih periode (1 menit), statistik (jumlah), rentang tanggal untuk mendapatkan jumlah DecompressedRecords gagal atau berhasil atau DecompressedBytes gagal atau berhasil. Lihat informasi yang lebih lengkap di [CloudWatch Metrik Dekompresi Log](monitoring-with-cloudwatch-metrics.md#decompression-metrics-cw). | 

# Kirim CloudWatch Acara ke Firehose
<a name="writing-with-cloudwatch-events"></a>

Anda dapat mengonfigurasi Amazon CloudWatch untuk mengirim peristiwa ke aliran Firehose dengan menambahkan target ke aturan CloudWatch Acara.

**Untuk membuat target untuk aturan CloudWatch Acara yang mengirimkan peristiwa ke aliran Firehose yang ada**

1. Masuk ke Konsol Manajemen AWS dan buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Pilih **Buat aturan**.

1. Pada halaman **Langkah 1: Buat aturan**, untuk **Target**, pilih **Tambah target**, lalu pilih Aliran **Firehose**.

1. Pilih aliran **Firehose** yang ada.

Untuk informasi selengkapnya tentang membuat aturan CloudWatch Acara, lihat [Memulai CloudWatch Acara Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CWE_GettingStarted.html).

# Konfigurasi AWS IoT untuk mengirim data ke Firehose
<a name="writing-with-iot"></a>

Anda dapat mengonfigurasi AWS IoT untuk mengirim informasi ke aliran Firehose dengan menambahkan tindakan.

**Untuk membuat tindakan yang mengirimkan peristiwa ke aliran Firehose yang ada**

1. Saat membuat aturan di AWS IoT konsol, pada halaman **Buat aturan**, di bawah **Tetapkan satu atau beberapa tindakan**, pilih **Tambah tindakan**.

1. Pilih **Kirim pesan ke aliran Amazon Kinesis Firehose**.

1. Pilih **Konfigurasi tindakan**.

1. Untuk **nama Stream**, pilih aliran Firehose yang ada. 

1. Untuk **Pemisah**, pilih karakter pemisah untuk dimasukkan di antara tiap catatan.

1. Untuk **Nama IAM role**, pilih IAM role yang ada atau pilih **Buat peran baru**.

1. Pilih **Tambahkan tindakan**.

Untuk informasi selengkapnya tentang membuat AWS IoT aturan, lihat Tutorial [Aturan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules-tutorial.html).