Menulis ke Amazon Data Firehose Menggunakan Agen Kinesis - Amazon Data Firehose

Amazon Data Firehose sebelumnya dikenal sebagai Amazon Kinesis Data Firehose

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

Menulis ke Amazon Data Firehose Menggunakan Agen Kinesis

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.

Secara default, catatan diurai dari setiap file berdasarkan karakter baris baru ('\n'). Namun, agen juga dapat dikonfigurasi untuk mengurai catatan multi-baris (lihat Pengaturan Konfigurasi Agen).

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

  • 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 kredenal IAM yang Anda tentukan harus memiliki izin untuk menjalankan PutRecordBatchoperasi Amazon Data Firehose agar agen dapat mengirim data ke aliran Firehose Anda. Jika Anda mengaktifkan CloudWatch pemantauan untuk agen, izin untuk melakukan CloudWatch PutMetricDataoperasi juga diperlukan. Untuk informasi selengkapnya, lihat Mengontrol Akses dengan Amazon Data FirehoseMemantau Kondisi Agen Kinesis, dan Otentikasi dan Kontrol Akses untuk Amazon CloudWatch.

Kredensial

Kelola AWS kredensyal Anda menggunakan salah satu metode berikut:

  • Buat penyedia kredensial khusus. Lihat perinciannya di Penyedia Kredensial Khusus.

  • Tentukan IAM role ketika Anda meluncurkan instans EC2 Anda.

  • Tentukan AWS kredensional saat Anda mengonfigurasi agen (lihat entri untuk awsAccessKeyId dan awsSecretAccessKey di tabel konfigurasi di bawah). Pengaturan Konfigurasi Agen

  • 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 dan Id). Gunakan salah satu metode sebelumnya untuk menentukan AWS kredensi pengguna di akun lain yang memiliki izin untuk mengambil peran ini.

Penyedia Kredensial Khusus

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 Pengaturan Konfigurasi Agen.

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

Mengunduh dan Menginstal Agen

Pertama-tama, hubungkan ke instans Anda. Untuk informasi selengkapnya, lihat Connect to Your Instance di Panduan Pengguna Amazon EC2. Jika Anda mengalami masalah saat menyambung, lihat Pemecahan Masalah Menyambung ke Instans Anda 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 mengenai Amazon Linux 2 lihat 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

    Agen v1.x.x terbaru dapat diunduh dengan menggunakan perintah berikut:

    sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm
  • Untuk mengatur agen dari GitHub repo

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

    2. Unduh agen dari amazon-kinesis-agent GitHub awslabs/repo.

    3. 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. 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"]

Mengonfigurasi dan Memulai Agen

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 adalahus-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 Pengaturan Konfigurasi Agen.

  2. Mulailah agen secara manual:

    sudo service aws-kinesis-agent start
  3. (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.

Pengaturan Konfigurasi Agen

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
assumeRoleARN

Amazon Resource Name (ARN) dari peran yang diambil oleh pengguna. Untuk informasi selengkapnya, lihat Mendelegasikan Akses di Seluruh AWS Akun Menggunakan Peran IAM di Panduan Pengguna IAM.

assumeRoleExternalId

Pengidentifikasi opsional yang menentukan siapa yang dapat mengambil peran tersebut. Untuk informasi selengkapnya, lihat Cara Menggunakan ID Eksternal di Panduan Pengguna IAM.

awsAccessKeyId

AWS ID kunci akses yang mengesampingkan kredensyal default. Pengaturan ini diutamakan daripada semua penyedia kredensial lainnya.

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 Menggunakan agen untuk Pra-pemrosesan Data.

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.

penting

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)

Memantau Beberapa Direktori File dan Menulis ke Beberapa Aliran

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.

Menggunakan agen untuk Pra-pemrosesan Data

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.

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 Syslog RFC3164. 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.

contoh : Konfigurasi LOGTOJSON

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"}
contoh : Konfigurasi LOGTOJSON dengan Bidang Khusus

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"}
contoh : Mengonversi Entri Log Umum Apache

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" } ] } ] }
contoh : Mengonversi Catatan Multi-Baris

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" } ] } ] }
contoh : Konfigurasi LOGTOJSON dengan Pola Pencocokan

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"}

Perintah Agen CLI

Secara otomatis memulai agen pada startup sistem:

sudo chkconfig aws-kinesis-agent on

Memeriksa status agen:

sudo service aws-kinesis-agent status

Menghentikan agen:

sudo service aws-kinesis-agent stop

Membaca file log agen dari lokasi ini:

/var/log/aws-kinesis-agent/aws-kinesis-agent.log

Menghapus instalasi agen:

sudo yum remove aws-kinesis-agent

Pertanyaan yang Sering Diajukan

Apakah ada Agen Kinesis untuk Windows?

Kinesis Agent untuk Windows 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 Firehose.

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.

Mengapa saya mendapatkan java.lang.OutOfMemoryError pengecualian?

Agen Kinesis tidak memiliki cukup memori untuk menangani beban kerjanya saat ini. Cobalah meningkatkan JAVA_START_HEAP dan JAVA_MAX_HEAP masuk /usr/bin/start-aws-kinesis-agent dan memulai kembali agen.

Mengapa saya mendapatkan 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 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.