Deklarasi Sink - Amazon Kinesis Agent for Microsoft Windows

Deklarasi Sink

Deklarasi sink menentukan di mana dan dalam bentuk apa log, peristiwa, dan metrik harus dikirim ke berbagai layanan AWS. Bagian berikut menjelaskan konfigurasi untuk jenis sink bawaan yang tersedia di Amazon Kinesis Agent for Microsoft Windows. Karena Kinesis Agent for Windows dapat diperluas, Anda dapat menambahkan jenis sink khusus. Setiap jenis sink biasanya membutuhkan pasangan kunci-nilai unik dalam deklarasi konfigurasi yang relevan untuk jenis sink.

Semua deklarasi sink dapat berisi pasangan kunci-nilai berikut:

Id

Sebuah string unik yang mengidentifikasi sink tertentu dalam file konfigurasi (diperlukan).

SinkType

Nama jenis sink untuk sink ini (diperlukan). Jenis sink menentukan tujuan data log, peristiwa, atau metrik yang sedang dialirkan oleh sink ini.

AccessKey

Menentukan access key AWS yang harus digunakan ketika mengotorisasi akses ke layanan AWS yang terkait dengan jenis sink. Pasangan kunci-nilai ini opsional. Untuk informasi lebih lanjut, lihat Konfigurasi Keamanan Sink.

SecretKey

Menentukan kunci rahasia AWS yang harus digunakan ketika mengotorisasi akses ke layanan AWS yang terkait dengan jenis sink. Pasangan kunci-nilai ini opsional. Untuk informasi lebih lanjut, lihat Konfigurasi Keamanan Sink.

Region

Menentukan Wilayah AWS yang berisi sumber daya tujuan untuk streaming. Pasangan kunci-nilai ini opsional.

ProfileName

Menentukan profil AWS yang harus digunakan untuk autentikasi. Pasangan kunci-nilai ini opsional, tetapi jika ditentukan akan menimpa access key dan kunci rahasia tertentu. Untuk informasi lebih lanjut, lihat Konfigurasi Keamanan Sink.

RoleARN

Menentukan IAM role yang harus digunakan saat mengakses layanan AWS yang berhubungan dengan jenis sink. Opsi ini berguna ketika Kinesis Agent for Windows berjalan pada instans EC2 tetapi peran yang berbeda akan lebih tepat daripada peran yang direferensikan oleh profil instans. Sebagai contoh, peran lintas akun dapat digunakan untuk menargetkan sumber daya yang tidak berada di akun AWS yang sama sebagai instans EC2. Pasangan kunci-nilai ini opsional.

Format

Menentukan jenis serialisasi yang diterapkan untuk log dan data peristiwa sebelum dialirkan. Nilai yang benar adalah json dan xml. Opsi ini sangat membantu ketika analitik hilir dalam data pipeline memerlukan atau lebih memilih data dalam bentuk tertentu. Pasangan kunci-nilai ini opsional, dan jika tidak ditentukan, teks biasa dari sumber dialirkan dari sink ke layanan AWS yang berhubungan dengan jenis sink.

TextDecoration

Saat tidak ada Format yang ditentukan, TextDecoration menentukan teks tambahan yang harus disertakan ketika mengalirkan catatan log atau peristiwa. Untuk informasi lebih lanjut, lihat Mengonfigurasi Dekorasi Sink. Pasangan kunci-nilai ini opsional.

ObjectDecoration

Saat Format ditentukan, ObjectDecoration menentukan data tambahan yang harus disertakan dalam catatan log atau peristiwa sebelum serialisasi dan streaming. Untuk informasi lebih lanjut, lihat Mengonfigurasi Dekorasi Sink. Pasangan kunci-nilai ini opsional.

BufferInterval

Untuk meminimalkan panggilan API ke layanan AWS yang berhubungan dengan jenis sink, Kinesis Agent for Windows membuffer beberapa catatan log, peristiwa, atau metrik sebelum dialirkan. Hal ini dapat menghemat uang untuk layanan yang dikenakan biaya per panggilan API. BufferInterval menentukan durasi maksimum (dalam detik) catatan harus dibuffer sebelum dialirkan ke layanan AWS. Pasangan kunci-nilai ini opsional, dan jika ditentukan, gunakan string untuk mewakili nilai.

BufferSize

Untuk meminimalkan panggilan API ke layanan AWS yang berhubungan dengan jenis sink, Kinesis Agent for Windows membuffer beberapa catatan log, peristiwa, atau metrik sebelum dialirkan. Hal ini dapat menghemat uang untuk layanan yang dikenakan biaya per panggilan API. BufferSize menentukan jumlah maksimum catatan yang harus dibuffer sebelum dialirkan ke layanan AWS. Pasangan kunci-nilai ini opsional, dan jika ditentukan, gunakan string untuk mewakili nilai.

MaxAttempts

Menentukan jumlah maksimum percobaan oleh Kinesis Agent for Windows untuk mengalirkan serangkaian catatan log, peristiwa, dan metrik untuk layanan AWS jika streaming terus gagal. Pasangan kunci-nilai ini opsional. Jika ditentukan, gunakan string untuk mewakili nilai. Nilai default adalah "3".

Untuk contoh file konfigurasi lengkap yang menggunakan berbagai jenis sink, lihat Streaming dari Log Peristiwa Aplikasi Windows ke Sink.

Konfigurasi Sink KinesisStream

Jenis sink KinesisStream mengalirkan catatan log dan peristiwa ke layanan Kinesis Data Streams. Biasanya, data yang dialirkan ke Kinesis Data Streams diproses oleh satu atau beberapa aplikasi khusus yang dijalankan menggunakan berbagai layanan AWS. Data dialirkan ke aliran bernama yang dikonfigurasi menggunakan Kinesis Data Streams. Untuk informasi selengkapnya, lihat Panduan Developer Amazon Kinesis Data Streams.

Berikut ini adalah contoh deklarasi sink Kinesis Data Streams:

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

Semua deklarasi sink KinesisStream dapat memberikan pasangan kunci-nilai berikut:

SinkType

Harus ditentukan, dan nilai harus berupa string literal KinesisStream.

StreamName

Menentukan nama aliran data Kinesis yang menerima data yang dialirkan dari jenis sink KinesisStream (wajib). Sebelum mengalirkan data, konfigurasikan aliran di AWS Management Console, AWS CLI, atau melalui aplikasi menggunakan API Kinesis Data Streams.

RecordsPerSecond

Menentukan jumlah maksimum catatan yang dialirkan ke Kinesis Data Streams per detik. Pasangan kunci-nilai ini opsional. Jika ditentukan, gunakan integer untuk mewakili nilai. Nilai default-nya adalah 1000 catatan.

BytesPerSecond

Menentukan jumlah maksimum byte yang dialirkan ke Kinesis Data Streams per detik. Pasangan kunci-nilai ini opsional. Jika ditentukan, gunakan integer untuk mewakili nilai. Nilai default adalah 1 MB.

BufferInterval default untuk jenis sink ini adalah 1 detik, dan BufferSize default adalah 500 catatan.

Konfigurasi Sink KinesisFirehose

Jenis sink KinesisFirehose mengalirkan catatan log dan peristiwa ke layanan Kinesis Data Firehose. Kinesis Data Firehose memberikan data yang dialirkan ke layanan lain untuk penyimpanan. Biasanya data yang disimpan kemudian dianalisis pada tahap berikutnya dari data pipeline. Data dialirkan ke aliran pengiriman bernama yang dikonfigurasi menggunakan Kinesis Data Firehose. Untuk informasi selengkapnya, lihat Panduan Developer Amazon Kinesis Data Firehose.

Berikut ini adalah contoh deklarasi sink Kinesis Data Firehose:

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

Semua deklarasi sink KinesisFirehose dapat memberikan pasangan kunci-nilai berikut:

SinkType

Harus ditentukan, dan nilai harus berupa string literal KinesisFirehose.

StreamName

Menentukan nama aliran pengiriman Kinesis Data Firehose yang menerima data yang dialirkan dari jenis sink KinesisStream (wajib). Sebelum mengalirkan data, konfigurasikan aliran pengiriman menggunakan AWS Management Console, AWS CLI, atau melalui aplikasi menggunakan API Kinesis Data Firehose.

CombineRecords

Ketika diatur ke true, menentukan untuk menggabungkan beberapa catatan kecil ke catatan besar dengan ukuran maksimum 5 KB. Pasangan kunci-nilai ini opsional. Catatan yang digabungkan menggunakan fungsi ini dipisahkan oleh \n. Jika Anda menggunakan AWS Lambda untuk mengubah catatan Kinesis Data Firehose, fungsi Lambda Anda harus memperhitungkan karakter pemisah.

RecordsPerSecond

Menentukan jumlah maksimum catatan yang dialirkan ke Kinesis Data Streams per detik. Pasangan kunci-nilai ini opsional. Jika ditentukan, gunakan integer untuk mewakili nilai. Nilai default adalah 5000 catatan.

BytesPerSecond

Menentukan jumlah maksimum byte yang dialirkan ke Kinesis Data Streams per detik. Pasangan kunci-nilai ini opsional. Jika ditentukan, gunakan integer untuk mewakili nilai. Nilai default adalah 5 MB.

BufferInterval default untuk jenis sink ini adalah 1 detik, dan BufferSize default adalah 500 catatan.

Konfigurasi Sink CloudWatch

Jenis sink CloudWatch mengalirkan metrik ke layanan CloudWatch. Anda dapat melihat metrik di AWS Management Console. Untuk informasi lihat Panduan Pengguna Amazon CloudWatch.

Berikut ini adalah contoh deklarasi sink CloudWatch:

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

Semua deklarasi sink CloudWatch dapat memberikan pasangan kunci-nilai berikut:

SinkType

Harus ditentukan, dan nilai harus berupa string literal CloudWatch.

Interval

Menentukan seberapa sering (dalam detik) Kinesis Agent for Windows melaporkan metrik ke layanan CloudWatch. Pasangan kunci-nilai ini opsional. Jika ditentukan, gunakan integer untuk mewakili nilai. Nilai bawaan adalah 60 detik. Tentukan 1 detik jika Anda menginginkan metrik CloudWatch resolusi tinggi.

Namespace

Menentukan namespace CloudWatch tempat data metrik dilaporkan. Namespace CloudWatch mengelompokkan serangkaian metrik. Pasangan kunci-nilai ini opsional. Nilai default adalah KinesisTap.

Dimensions

Menentukan dimensi CloudWatch yang digunakan untuk mengisolasi set metrik dalam namespace. Ini dapat berguna untuk menyediakan kumpulan data metrik terpisah untuk setiap desktop atau server, misalnya. Pasangan kunci-nilai ini opsional, dan jika ditentukan, nilai harus sesuai dengan format berikut: "key1=value1;key2=value2...". Nilai default adalah "ComputerName={computername};InstanceId={instance_id}". Nilai ini mendukung substitusi variabel sink. Untuk informasi lebih lanjut, lihat Mengonfigurasi Substitusi Variabel Sink.

MetricsFilter

Menentukan metrik yang dialirkan ke CloudWatch dari sumber metrik Kinesis Agent for Windows bawaan. Untuk informasi selengkapnya tentang sumber metrik Kinesis Agent for Windows bawaan, termasuk detail sintaks nilai pasangan kunci-nilai ini, lihat Sumber Metrik Bawaan Kinesis Agent for Windows.

Konfigurasi Sink CloudWatchLogs

Jenis sink CloudWatchLogs mengalirkan catatan log dan peristiwa ke Amazon CloudWatch Logs. Anda dapat melihat log di AWS Management Console, atau memprosesnya melalui tahap tambahan dari data pipeline. Data dialirkan ke aliran log bernama yang dikonfigurasi di CloudWatch Logs. Aliran log diatur ke dalam grup log bernama. Untuk informasi selengkapnya, lihat Panduan Pengguna Amazon CloudWatch Logs.

Berikut ini adalah contoh deklarasi sink CloudWatch Logs:

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

Semua deklarasi sink CloudWatchLogs harus memberikan pasangan kunci-nilai berikut:

SinkType

Harus berupa string literal CloudWatchLogs.

LogGroup

Menentukan nama grup CloudWatch Logs yang berisi aliran log yang menerima catatan log dan peristiwa yang dialirkan oleh jenis sink CloudWatchLogs. Jika grup log yang ditentukan tidak ada, Kinesis Agent for Windows akan mencoba membuatnya.

LogStream

Menentukan nama aliran log CloudWatch Logs yang menerima catatan log dan peristiwa yang dialirkan oleh jenis sink CloudWatchLogs. Nilai ini mendukung substitusi variabel sink. Untuk informasi lebih lanjut, lihat Mengonfigurasi Substitusi Variabel Sink. Jika aliran log yang ditentukan tidak ada, Kinesis Agent for Windows akan mencoba membuatnya.

BufferInterval default untuk jenis sink ini adalah 1 detik, dan BufferSize default adalah 500 catatan. Ukuran buffer maksimum adalah 10.000 catatan.

Konfigurasi Sink FileSystem Lokal

Jenis sink FileSystem menyimpan catatan log dan peristiwa ke file pada sistem file lokal alih-alih mengalirkannya ke layanan AWS. Sink FileSystem berguna untuk pengujian dan diagnostik. Misalnya, Anda dapat menggunakan jenis sink ini untuk memeriksa catatan sebelum mengirimnya ke AWS.

Dengan sink FileSystem, Anda juga dapat menggunakan parameter konfigurasi untuk mensimulasikan batching, throttling, dan retry-on-error untuk meniru perilaku sink AWS aktual.

Semua catatan dari semua sumber yang terhubung ke sink FileSystem disimpan ke satu file yang ditentukan sebagai FilePath. Jika FilePath tidak ditentukan, catatan disimpan ke sebuah file bernama SinkId.txt di direktori %TEMP%, yang biasanya C:\Users\UserName\AppData\Local\Temp, dengan SinkId adalah pengenal unik sink dan UserName adalah nama pengguna Windows dari pengguna aktif.

Jenis sink ini mendukung atribut dekorasi teks. Untuk informasi lebih lanjut, lihat Mengonfigurasi Dekorasi Sink.

Contoh konfigurasi jenis sink FileSystem ditunjukkan dalam contoh berikut.

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

Konfigurasi FileSystem terdiri atas pasangan kunci-nilai berikut.

SinkType

Harus berupa string literal FileSystem.

FilePath

Menentukan jalur dan file tempat catatan disimpan. Pasangan kunci-nilai ini opsional. Jika tidak ditentukan, default-nya adalah TempPath\\SinkId.txt, dengan TempPath adalah folder yang disimpan dalam variabel %TEMP% dan SinkId adalah pengenal unik sink.

Format

Menentukan format peristiwa menjadi json atau xml. Pasangan kunci-nilai ini opsional dan peka terhadap huruf besar-kecil. Jika dihilangkan, peristiwa ditulis ke file dalam teks biasa.

TextDecoration

Hanya berlaku untuk peristiwa yang ditulis dalam teks biasa. Pasangan kunci-nilai ini opsional.

ObjectDecoration

Hanya berlaku untuk peristiwa dengan Format diatur menjadi json. Pasangan kunci-nilai ini opsional.

Penggunaan Lanjutan – Simulasi Throttling Catatan dan Kegagalan

FileSystem dapat meniru perilaku sink AWS dengan mensimulasikan throttling catatan. Anda dapat menggunakan pasangan kunci-nilai berikut untuk menentukan atribut simulasi throttling catatan dan kegagalan.

Dengan memperoleh kunci pada file tujuan dan mencegah penulisan pada file tersebut, Anda dapat menggunakan sink FileSystem untuk mensimulasikan dan memeriksa perilaku sink AWS saat jaringan gagal.

Contoh berikut menunjukkan konfigurasi FileSystem dengan atribut simulasi.

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

Opsional dan ditentukan sebagai tipe string. Jika dihilangkan, default-nya adalah "5". Mengontrol laju permintaan bahwa proses sink—yaitu, menulis ke file—bukan jumlah catatan. Kinesis Agent for Windows membuat permintaan batch ke titik akhir AWS, sehingga permintaan mungkin berisi beberapa catatan.

BufferSize

Opsional dan ditetapkan sebagai tipe string. Menentukan jumlah maksimum catatan peristiwa yang dikumpulkan sink sebelum menyimpannya ke file.

MaxBatchSize

Opsional dan ditentukan sebagai tipe string. Menentukan jumlah maksimum data catatan peristiwa dalam byte yang dikumpulkan sink sebelum menyimpannya ke file.

Batas laju catatan maksimum adalah fungsi dari BufferSize, yang menentukan jumlah maksimum catatan per permintaan, dan RequestsPerSecond. Anda dapat menghitung batas laju catatan per detik menggunakan rumus berikut.

RecordRate = BufferSize * RequestsPerSecond

Mengingat nilai-nilai konfigurasi dalam contoh di atas, ada laju catatan maksimum sebanyak 1000 catatan per detik.

Konfigurasi Keamanan Sink

Mengonfigurasi Autentikasi

Untuk Kinesis Agent for Windows yang harus mengalirkan log, peristiwa, dan metrik ke layanan AWS, akses harus diautentikasi. Terdapat beberapa cara untuk menyediakan autentikasi untuk Kinesis Agent for Windows. Cara Anda melakukannya tergantung pada situasi di mana Kinesis Agent for Windows dijalankan dan persyaratan keamanan khusus untuk organisasi tertentu.

  • Jika Kinesis Agent for Windows dijalankan di host Amazon EC2, cara yang paling aman dan paling sederhana untuk memberikan autentikasi adalah dengan membuat IAM role dengan akses yang cukup ke operasi yang diperlukan untuk layanan AWS yang diperlukan, dan profil instans EC2 yang mereferensikan peran itu. Untuk informasi tentang membuat profil instans, lihat Menggunakan Profil Instans. Untuk informasi tentang kebijakan yang harus dilampirkan ke IAM role, lihat Mengonfigurasi Otorisasi.

    Setelah membuat profil instans, Anda dapat mengaitkannya dengan instans EC2 yang menggunakan Kinesis Agent for Windows. Jika instans telah memiliki profil instans terkait, Anda dapat melampirkan kebijakan yang sesuai ke peran yang terkait dengan profil instans tersebut.

  • Jika Kinesis Agent for Windows dijalankan di host EC2 di satu akun, tetapi sumber daya yang merupakan target sink berada di akun yang berbeda, Anda dapat membuat IAM role untuk akses lintas akun. Untuk informasi selengkapnya, lihat Tutorial: Mendelegasikan Akses di Seluruh Akun AWS Menggunakan IAM Role. Setelah membuat peran lintas akun, tentukan Amazon Resource Name (ARN) untuk peran lintas akun tersebut sebagai nilai pasangan kunci-nilai RoleARN dalam deklarasi sink. Kinesis Agent for Windows kemudian mencoba untuk mengambil peran lintas akun yang ditentukan saat mengakses sumber daya AWS yang terkait dengan jenis sink untuk sink itu.

  • Jika Kinesis Agent for Windows dijalankan di luar Amazon EC2 (misalnya, lokal), ada beberapa opsi:

    • Jika dapat diterima untuk mendaftarkan server lokal atau komputer desktop sebagai instans terkelola Amazon EC2 Systems Manager, gunakan proses berikut untuk mengonfigurasi autentikasi:

      1. Gunakan proses yang diterangkan dalam Menyiapkan AWS Systems Manager dalam Lingkungan Hibrid untuk membuat peran layanan, membuat aktivasi untuk instans terkelola, dan menginstal SSM Agent.

      2. Lampirkan kebijakan yang sesuai ke peran layanan agar Kinesis Agent for Windows dapat mengakses sumber daya yang diperlukan untuk mengalirkan data dari sink yang dikonfigurasi. Untuk informasi tentang kebijakan yang harus dilampirkan ke IAM role, lihat Mengonfigurasi Otorisasi.

      3. Gunakan proses yang diterangkan dalam Mengonfigurasi ProfileRefreshingAWSCredentialProvider untuk Menyegarkan Kredensial AWS untuk menyegarkan kredensial AWS.

      Ini adalah pendekatan yang disarankan untuk isntans non-EC2 karena kredensial dikelola dengan aman oleh SSM dan AWS.

    • Jika dapat diterima untuk menjalankan layanan AWSKinesisTap untuk Kinesis Agent for Windows di bawah pengguna tertentu dan bukan akun sistem default, gunakan proses berikut ini:

      1. Buat pengguna IAM di akun AWS di mana layanan AWS akan digunakan. Tangkap access key dan kunci rahasia pengguna ini selama proses pembuatan. Anda membutuhkan informasi ini untuk langkah selanjutnya dalam proses ini.

      2. Lampirkan kebijakan untuk pengguna IAM yang mengotorisasi akses ke operasi yang diperlukan untuk layanan yang diperlukan. Untuk informasi tentang kebijakan yang harus dilampirkan ke pengguna IAM, lihat Mengonfigurasi Otorisasi.

      3. Ubah layanan AWSKinesisTap pada setiap desktop atau server sehingga berjalan di bawah pengguna tertentu daripada akun sistem default.

      4. Buat profil di penyimpanan SDK menggunakan access key dan kunci rahasia yang dicatat sebelumnya. Untuk informasi selengkapnya, lihat Mengonfigurasi Kredensial AWS.

      5. Perbarui file AWSKinesisTap.exe.config di direktori %PROGRAMFILES%\Amazon\AWSKinesisTap untuk menentukan nama profil yang dibuat pada langkah sebelumnya. Untuk informasi selengkapnya, lihat Mengonfigurasi Kredensial AWS.

      Ini adalah pendekatan yang disarankan untuk host non-EC2 yang tidak bisa menjadi instans terkelola karena kredensialnya dienkripsi untuk host tertentu dan pengguna tertentu.

    • Jika diperlukan untuk menjalankan layanan AWSKinesisTap untuk Kinesis Agent for Windows di bawah akun sistem default, Anda harus menggunakan file kredensial bersama. Hal ini karena akun sistem tidak memiliki profil pengguna Windows untuk mengaktifkan penyimpanan SDK. File kredensial bersama tidak dienkripsi, jadi kami tidak menyarankan pendekatan ini. Untuk informasi tentang cara menggunakan file konfigurasi bersama, lihat Mengonfigurasi Kredensial AWS di AWS SDK for .NET. Jika Anda menggunakan pendekatan ini, kami sarankan Anda menggunakan enkripsi NTFS dan akses file terbatas ke file konfigurasi bersama. Kunci harus diputar oleh platform pengelola, dan file konfigurasi bersama harus diperbarui ketika rotasi kunci terjadi.

Meskipun access key dan kunci rahasia dapat langsung diberikan di deklarasi sink, pendekatan ini tidak dianjurkan karena deklarasi tidak dienkripsi.

Mengonfigurasi Otorisasi

Lampirkan kebijakan yang sesuai yang mengikuti pengguna atau peran IAM yang akan digunakan Kinesis Agent for Windows untuk mengalirkan data ke layanan AWS:

Kinesis Data Streams

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

Untuk membatasi otorisasi untuk nama Wilayah, akun, atau aliran tertentu, ganti tanda bintang yang sesuai di ARN dengan nilai-nilai tertentu. Untuk informasi lebih lanjut, lihat "Amazon Resource Name (ARN) untuk Kinesis Data Streams" di Mengontrol Akses ke Sumber Daya Amazon Kinesis Data Streams Menggunakan IAM.

Kinesis Data Firehose

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

Untuk membatasi otorisasi untuk nama Wilayah, akun, atau aliran pengiriman tertentu, ganti tanda bintang yang sesuai di ARN dengan nilai-nilai tertentu. Untuk informasi selengkapnya, lihat Mengontrol Akses dengan Amazon Kinesis Data Firehose dalam Panduan Developer Amazon Kinesis Data Firehose.

CloudWatch

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

Untuk informasi selengkapnya, lihat Ringkasan Mengelola Izin Akses ke Sumber Daya CloudWatch Anda di Panduan Pengguna Amazon CloudWatch Logs.

CloudWatch Logs dengan Grup Log dan Aliran Log yang Ada

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

Untuk membatasi akses ke Wilayah, akun, grup log, atau aliran log tertentu, ganti tanda bintang yang sesuai di ARN dengan nilai-nilai yang sesuai. Untuk informasi selengkapnya, lihat Ringkasan Mengelola Izin Akses ke Sumber Daya CloudWatch Logs Anda di Panduan Pengguna Amazon CloudWatch Logs.

CloudWatch Logs dengan Izin Tambahan untuk Kinesis Agent for Windows untuk Membuat Grup Log dan Aliran Log

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

Untuk membatasi akses ke Wilayah, akun, grup log, atau aliran log tertentu, ganti tanda bintang yang sesuai di ARN dengan nilai-nilai yang sesuai. Untuk informasi selengkapnya, lihat Ringkasan Mengelola Izin Akses ke Sumber Daya CloudWatch Logs Anda di Panduan Pengguna Amazon CloudWatch Logs.

Izin yang Diperlukan untuk Ekspansi Variabel Tanda EC2

Menggunakan ekspansi variabel dengan prefiks variabel ec2tag membutuhkan izin ec2:Describe*.

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

Anda dapat menggabungkan beberapa pernyataan ke satu kebijakan selama Sid untuk setiap pernyataan unik dalam kebijakan itu. Untuk informasi tentang membuat kebijakan, lihat Membuat Kebijakan IAM dalam Panduan Pengguna IAM.

Mengonfigurasi ProfileRefreshingAWSCredentialProvider untuk Menyegarkan Kredensial AWS

Jika Anda menggunakan AWS Systems Manager untuk lingkungan hibrid untuk mengelola kredensial AWS, Systems Manager memutar kredensial sesi di c:\Windows\System32\config\systemprofile\.aws\credentials. Untuk informasi selengkapnya tentang Systems Manager untuk lingkungan hibrid, lihat Menyiapkan AWS Systems Manager untuk lingkungan hibrid di Panduan Pengguna AWS Systems Manager.

Karena AWS .net SDK tidak mengambil kredensial baru secara otomatis, kami menyediakan plugin ProfileRefreshingAWSCredentialProvider untuk menyegarkan kredensial.

Anda dapat menggunakan atribut CredentialRef dari setiap konfigurasi sinkronisasi AWS untuk mereferensikan definisi Credentials di mana atribut CredentialType diatur ke ProfileRefreshingAWSCredentialProvider seperti yang ditunjukkan dalam contoh berikut.

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

Definisi kredensial terdiri atas atribut berikut sebagai pasangan kunci-nilai.

Id

Mendefinisikan string yang dapat ditentukan oleh definisi sink menggunakan CredentialRef untuk mereferensikan konfigurasi kredensial ini.

CredentialType

Atur ke string literal ProfileRefreshingAWSCredentialProvider.

Profile

Opsional. Standarnya adalah default.

FilePath

Opsional. Menentukan jalur ke file kredensial AWS. Jika dihilangkan, %USERPROFILE%/.aws/credentials adalah default.

RefreshingInterval

Opsional. Frekuensi kredensial disegarkan, dalam hitungan detik. Jika dihilangkan, 300 adalah default.

Mengonfigurasi Dekorasi Sink

Deklarasi sink secara opsional dapat menyertakan pasangan kunci-nilai yang menentukan data tambahan yang harus dialirkan ke berbagai layanan AWS untuk meningkatkan catatan yang dikumpulkan dari sumber.

TextDecoration

Gunakan pasangan kunci-nilai ini ketika tidak ada Format yang ditentukan dalam deklarasi sink. Nilai adalah string format khusus tempat substitusi variabel terjadi. Sebagai contoh, anggaplah bahwa TextDecoration dari "{ComputerName}:::{timestamp:yyyy-MM-dd HH:mm:ss}:::{_record}" disediakan untuk sink. Ketika sumber mengeluarkan catatan log yang berisi teks The system has resumed from sleep., dan sumber tersebut terhubung ke sink melalui pipa, maka teks MyComputer1:::2017-10-26 06:14:22:::The system has resumed from sleep. dialirkan ke layanan AWS yang terkait dengan jenis sink tersebut. Variabel {_record} mereferensikan catatan teks asli yang dikirimkan oleh sumber.

ObjectDecoration

Gunakan pasangan kunci-nilai ini ketika Format ditentukan dalam deklarasi sink untuk menambahkan data tambahan sebelum serialisasi catatan. Sebagai contoh, anggaplah bahwa ObjectDecoration dari "ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}" disediakan untuk sink yang menentukan Format JSON. JSON yang dihasilkan yang dialirkan ke layanan AWS yang terkait dengan jenis sink menyertakan pasangan kunci-nilai berikut selain data asli dari sumber:

{ ComputerName: "MyComputer2", DT: "2017-10-17 21:09:04" }

Untuk contoh penggunaan ObjectDecoration, lihat Tutorial: Mengalirkan Berkas Log JSON ke Amazon S3 Menggunakan Kinesis Agent for Windows.

ObjectDecorationEx

Menentukan ekspresi, yang memungkinkan ekstraksi dan pemformatan data yang lebih fleksibel dibandingkan dengan ObjectDecoration. Bidang ini dapat digunakan ketika format sink adalah json. Sintaks ekspresi ditampilkan dalam rumus berikut.

"ObjectDecorationEx": "attribute1={expression1};attribute2={expression2};attribute3={expression3}(;...)"

Sebagai contoh, atribut ObjectDecorationEx berikut:

"ObjectDecorationEx": "host={env:ComputerName};message={upper(_record)};time={format(_timestamp, 'yyyyMMdd')}"

Mengubah catatan literal:

System log message

Ke objek JSON sebagai berikut, dengan nilai-nilai yang dikembalikan oleh ekspresi:

{ "host": "EC2AMAZ-1234", "message": "SYSTEM LOG MESSAGE", "time": "20210201" }

Untuk informasi selengkapnya tentang perumusan ekspresi, lihat Tips untuk Menulis Ekspresi. Sebagian besar deklarasi ObjectDecoration harus bekerja menggunakan sintaks baru dengan pengecualian variabel timestamp. Bidang {timestamp:yyyyMMdd} di ObjectDecoration diekspresikan sebagai {format(_timestamp,'yyyyMMdd')} di ObjectDecorationEx.

TextDecorationEx

Menentukan ekspresi, yang memungkinkan ekstraksi dan pemformatan data yang lebih fleksibel dibandingkan dengan TextDecoration.

"TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"

Anda dapat menggunakan TextDecorationEx untuk membuat objek JSON. Gunakan ‘@{’ untuk keluar dari kurung kurawal terbuka, seperti yang ditunjukkan dalam contoh berikut.

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

Jika jenis sumber dari sumber yang terhubung ke sink adalah DirectorySource, maka sink bisa menggunakan tiga variabel tambahan:

_FilePath

Jalur lengkap ke berkas log.

_FileName

Nama file dan ekstensi nama file dari file.

_Position

Integer yang mewakili letak catatan di berkas log.

Variabel ini berguna bila Anda menggunakan sumber yang mengumpulkan catatan log dari beberapa file yang terhubung ke sink yang mengalirkan semua catatan ke satu aliran. Memasukkan nilai-nilai variabel ini ke dalam catatan streaming memungkinkan analisik hilir dalam data pipeline untuk mengurutkan catatan berdasarkan file dan lokasi dalam setiap file.

Tips untuk Menulis Ekspresi

Ekspresi dapat berupa salah satu dari hal berikut:

  • Ekspresi variabel.

  • Ekspresi konstan, misalnya, 'hello', 1, 1.21, null, true, false.

  • Ekspresi invokasi yang memanggil fungsi, seperti yang ditunjukkan dalam contoh berikut.

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

Karakter Khusus

Dua garis miring terbalik diperlukan untuk keluar dari karakter khusus.

Nesting

Invokasi fungsi dapat disarangkan, seperti yang ditunjukkan dalam contoh berikut.

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

Variables

Ada tiga jenis variabel: lokal, meta, dan global.

  • Variabel lokal dimulai dengan $ seperti $message. Variabel lokal digunakan untuk menyelesaikan properti dari objek peristiwa, entri jika peristiwa adalah kamus, atau atribut jika peristiwa adalah objek JSON. Jika variabel lokal berisi spasi atau karakter khusus, gunakan variabel lokal berkutip seperti $'date created'.

  • Variabel meta dimulai dengan garis bawah (_) dan digunakan untuk menyelesaikan metadata peristiwa. Semua jenis peristiwa mendukung variabel meta berikut.

    _timestamp

    Stempel waktu peristiwa.

    _record

    Representasi teks mentah dari peristiwa tersebut.

    Log acara mendukung variabel meta tambahan berikut.

    _filepath

    _filename

    _position

    _linenumber

  • Variabel global berubah menjadi variabel lingkungan, metadata instans EC2, atau EC2tag. Untuk performa yang lebih baik, kami menyarankan Anda menggunakan prefiks untuk membatasi cakupan pencarian, seperti {env:ComputerName}, {ec2:InstanceId}, dan {ec2tag:Name}.

Fungsi Bawaan

Kinesis Agent for Windows mendukung fungsi bawaan berikut. Jika ada argumen yang NULL dan fungsinya tidak dirancang untuk menangani NULL, objek NULL dikembalikan.

//string functions int length(string input) string lower(string input) string lpad(string input, int size, string padstring) string ltrim(string input) string rpad(string input, int size, string padstring) string rtrim(string input) string substr(string input, int start) string substr(string input, int start, int length) string trim(string input) string upper(string str) //regular expression functions string regexp_extract(string input, string pattern) string regexp_extract(string input, string pattern, int group) //date functions DateTime date(int year, int month, int day) DateTime date(int year, int month, int day, int hour, int minute, int second) DateTime date(int year, int month, int day, int hour, int minute, int second, int millisecond) //conversion functions int? parse_int(string input) decimal? parse_decimal(string input) DateTime? parse_date(string input, string format) string format(object o, string format) //coalesce functions object coalesce(object obj1, object obj2) object coalesce(object obj1, object obj2, object obj3) object coalesce(object obj1, object obj2, object obj3, object obj4) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5, object obj6)

Mengonfigurasi Substitusi Variabel Sink

Deklarasi sink KinesisStream, KinesisFirehose, dan CloudWatchLogs membutuhkan pasangan kunci-nilai LogStream atau StreamName. Nilai dari pasangan kunci-nilai ini dapat berisi referensi variabel yang secara otomatis diubah oleh Kinesis Agent for Windows. Untuk CloudWatchLogs, pasangan kunci-nilai LogGroup juga diperlukan dan dapat berisi referensi variabel yang secara otomatis diubah oleh Kinesis Agent for Windows. Variabel ditentukan menggunakan templat {prefix:variablename} dengan prefix: opsional. Prefiks yang didukung adalah sebagai berikut:

  • env — Referensi variabel menjadi nilai variabel lingkungan dengan nama yang sama.

  • ec2 — Referensi variabel menjadi metadata instans EC2 dengan nama yang sama.

  • ec2tag — Referensi variabel menjadi nilai tanda instans EC2 dengan nama yang sama. Izin ec2:Describe* diperlukan untuk mengakses tanda instans. Untuk informasi lebih lanjut, lihat Izin yang Diperlukan untuk Ekspansi Variabel Tanda EC2.

Jika prefiks tidak ditentukan, jika ada variabel lingkungan dengan nama yang sama seperti variablename, referensi variabel menjadi nilai variabel lingkungan. Jika tidak, jika variablename adalah instance_id atau hostname, referensi variabel menjadi nilai metadata EC2 dengan nama yang sama. Jika tidak, referensi variabel tidak teratasi.

Berikut ini adalah contoh pasangan kunci-nilai yang valid menggunakan referensi variabel:

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

Deklarasi sink CloudWatchLogs mendukung variabel timestamp format khusus yang memungkinkan timestamp catatan log atau peristiwa asli dari sumber untuk mengubah nama aliran log. Formatnya adalah {timestamp:timeformat}. Lihat contoh berikut:

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

Jika catatan log atau peristiwa yang dihasilkan pada tanggal 5 Juni 2017, nilai pasangan kunci-nilai LogStream dalam contoh sebelumnya akan menjadi "LogStream_20170605".

Jika diotorisasi, jenis sink CloudWatchLogs dapat secara otomatis membuat aliran log baru bila diperlukan berdasarkan nama yang dihasilkan. Anda tidak dapat melakukan ini untuk jenis sink lain karena jenis sink lain memerlukan konfigurasi tambahan di luar nama aliran.

Ada substitusi variabel khusus yang terjadi dalam dekorasi teks dan objek. Untuk informasi lebih lanjut, lihat Mengonfigurasi Dekorasi Sink.

Mengonfigurasi Antrean Sink

Deklarasi sink KinesisStream, KinesisFirehose, dan CloudWatchLogs secara opsional dapat mengaktifkan antrian catatan yang gagal dialirkan ke layanan AWS yang terkait dengan jenis sink tersebut karena masalah konektivitas sementara. Untuk mengaktifkan antrean dan percobaan ulang streaming otomatis ketika konektivitas dipulihkan, gunakan pasangan kunci-nilai berikut dalam deklarasi sink:

QueueType

Menentukan jenis mekanisme antrean untuk digunakan. Satu-satunya nilai yang didukung adalah file, yang menunjukkan bahwa catatan harus antre dalam file. Pasangan kunci-nilai ini diperlukan untuk mengaktifkan fitur antrean Kinesis Agent for Windows. Jika tidak ditentukan, perilaku default adalah mengantre dalam memori saja, dan gagal dialirkan saat batas antrean di memori tercapai.

QueuePath

Menentukan jalur ke folder yang berisi file catatan yang diantrekan. Pasangan kunci-nilai ini opsional. Nilai default-nya adalah %PROGRAMDATA%\KinesisTap\Queue\SinkId dengan SinkIid adalah pengidentifikasi yang Anda tetapkan sebagai nilai Id untuk deklarasi sink.

QueueMaxBatches

Membatasi jumlah total ruang yang dapat digunakan oleh Kinesis Agent for Windows saat mengantrekan catatan untuk dialirkan. Jumlah ruang terbatas pada nilai pasangan kunci-nilai ini dikalikan dengan jumlah maksimum byte per batch. Byte maksimum per batch untuk jenis sink KinesisStream, KinesisFirehose, dan CloudWatchLogs masing-masing adalah 5 MB, 4 MB, dan 1 MB. Ketika batas ini tercapai, kegagalan streaming tidak diantrekan dan akan dilaporkan sebagai kegagalan yang tidak dapat dipulihkan. Pasangan kunci-nilai ini opsional. Nilai default adalah 10.000 batch.

Mengonfigurasi Proksi untuk Sink

Untuk mengonfigurasi proksi untuk semua jenis sink Kinesis Agent for Windows yang mengakses layanan AWS, edit file konfigurasi Kinesis Agent for Windows yang terletak di %Program Files%\Amazon\KinesisTap\AWSKinesisTap.exe.config. Untuk instruksi, lihat bagian proxy dalam Referensi File Konfigurasi untuk AWS SDK for .NET di Panduan Developer AWS SDK for .NET.

Mengonfigurasi penyelesaian variabel di lebih banyak atribut sink

Contoh berikut menunjukkan konfigurasi sink yang menggunakan variabel lingkungan Region untuk nilai pasangan kunci-nilai atribut Region. Untuk RoleARN, itu menentukan kunci tanda EC2 MyRoleARN, yang dievaluasi ke nilai yang terkait dengan kunci tersebut.

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

Mengonfigurasi Titik Akhir Wilayah AWS STS Saat Menggunakan Properti RoleARN di Sink AWS

Fitur ini hanya berlaku jika Anda menggunakan KinesisTap di Amazon EC2 dan menggunakan properti RoleARN sink AWS untuk mengambil IAM role eksternal untuk mengautentikasi dengan layanan AWS tujuan.

Dengan mengatur UseSTSRegionalEndpoints ke true, Anda dapat menentukan bahwa agen menggunakan titik akhir wilayah (misalnya, https://sts.us-east-1.amazonaws.com), bukan titik akhir global (misalnya, https://sts.amazonaws.com). Menggunakan titik akhir STS Wilayah mengurangi latensi perjalanan pulang pergi untuk operasi dan membatasi dampak kegagalan pada layanan titik akhir global.

Mengonfigurasi VPC Endpoint untuk Sink AWS

Anda dapat menentukan VPC endpoint dalam konfigurasi sink untuk jenis sink CloudWatchLogs, CloudWatch, KinesisStreams, dan KinesisFirehose. VPC endpoint memungkinkan Anda menghubungkan VPC secara pribadi ke layanan AWS yang didukung dan layanan VPC endpoint yang didukung oleh AWS PrivateLink tanpa memerlukan gateway internet, perangkat NAT, koneksi VPN, atau koneksi AWS Direct Connect. Instans di VPC Anda tidak memerlukan alamat IP publik untuk berkomunikasi dengan sumber daya di layanan. Lalu lintas antara VPC Anda dan layanan lainnya tidak meninggalkan jaringan Amazon. Untuk informasi selengkapnya, lihat VPC endpoints dalam Panduan Pengguna Amazon VPC.

Anda menentukan VPC endpoint menggunakan properti ServiceURL seperti yang ditunjukkan dalam contoh konfigurasi sink CloudWatchLogs berikut. Tetapkan nilai ServiceURL ke nilai yang ditampilkan pada tab Detail VPC endpoint menggunakan konsol Amazon VPC.

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

Mengonfigurasi Cara Alternatif Proksi

Fitur ini memungkinkan Anda untuk mengonfigurasi server proksi dalam konfigurasi sink menggunakan dukungan proksi yang ada di AWS SDK, bukan .NET. Sebelumnya, satu-satunya cara untuk mengonfigurasi agen untuk menggunakan proksi adalah dengan menggunakan fitur asli dari .NET, yang secara otomatis merutekan semua permintaan HTTP/S melalui proksi yang didefinisikan dalam file proksi.

Jika Anda saat ini menggunakan agen dengan server proksi, Anda tidak perlu mengubah untuk menggunakan metode ini.

Anda dapat menggunakan properti ProxyHost dan ProxyPort untuk mengonfigurasi proksi alternatif seperti yang ditunjukkan dalam contoh berikut.

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