Amazon Managed Service untuk Apache Flink sebelumnya dikenal sebagai Amazon Kinesis Data Analytics untuk Apache Flink.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan Pencatatan Aplikasi
Dengan menambahkan opsi CloudWatch pencatatan Amazon ke Layanan Terkelola untuk aplikasi Apache Flink, Anda dapat memantau peristiwa aplikasi atau masalah konfigurasi.
Topik ini menjelaskan cara mengonfigurasi aplikasi Anda untuk menulis peristiwa aplikasi ke aliran CloudWatch Log. Opsi CloudWatch logging adalah kumpulan pengaturan aplikasi dan izin yang digunakan aplikasi Anda untuk mengonfigurasi cara menulis peristiwa aplikasi ke CloudWatch Log. Anda dapat menambahkan dan mengonfigurasi opsi CloudWatch logging menggunakan salah satu AWS Management Console atau AWS Command Line Interface (AWS CLI).
Perhatikan hal berikut tentang menambahkan opsi CloudWatch logging ke aplikasi Anda:
-
Saat Anda menambahkan opsi CloudWatch logging menggunakan konsol, Managed Service for Apache Flink membuat grup CloudWatch log dan aliran log untuk Anda dan menambahkan izin yang perlu ditulis aplikasi Anda ke aliran log.
-
Saat Anda menambahkan opsi CloudWatch logging menggunakan API, Anda juga harus membuat grup log aplikasi dan aliran log, dan menambahkan izin yang dibutuhkan aplikasi Anda untuk menulis ke aliran log.
Topik ini berisi bagian-bagian berikut:
Menyiapkan CloudWatch Logging Menggunakan Konsol
Saat Anda mengaktifkan CloudWatch pencatatan untuk aplikasi Anda di konsol, grup CloudWatch log dan aliran log dibuat untuk Anda. Selain itu, kebijakan izin aplikasi Anda diperbarui dengan izin untuk menulis ke aliran.
Layanan Terkelola untuk Apache Flink membuat grup log bernama menggunakan konvensi berikut, di ApplicationName
mana nama aplikasi Anda.
/AWS/KinesisAnalytics/
ApplicationName
Layanan Terkelola untuk Apache Flink membuat aliran log di grup log baru dengan nama berikut.
kinesis-analytics-log-stream
Anda menetapkan tingkat metrik pemantauan aplikasi dan tingkat log pemantauan menggunakan bagian Tingkat log pemantauan di halaman Konfigurasikan aplikasi. Untuk informasi tentang tingkat log aplikasi, lihat TingkatPemantauan Aplikasi.
Menyiapkan CloudWatch Logging Menggunakan CLI
Untuk menambahkan opsi CloudWatch logging menggunakanAWS CLI, lakukan hal berikut:
-
Buat grup CloudWatch log dan aliran log.
-
Tambahkan opsi logging saat Anda membuat aplikasi dengan menggunakan CreateApplicationtindakan, atau tambahkan opsi logging ke aplikasi yang ada menggunakan AddApplicationCloudWatchLoggingOptiontindakan.
-
Tambahkan izin ke kebijakan aplikasi Anda untuk menulis ke log.
Bagian ini berisi topik berikut:
Membuat Grup CloudWatch Log dan Aliran Log
Anda membuat grup CloudWatch log dan melakukan streaming menggunakan konsol CloudWatch Log atau API. Untuk informasi tentang membuat grup CloudWatch log dan aliran log, lihat Bekerja dengan Grup Log dan Aliran Log.
Bekerja dengan Opsi CloudWatch Pencatatan Aplikasi
Gunakan tindakan API berikut untuk menambahkan opsi CloudWatch log ke aplikasi baru atau yang sudah ada atau ubah opsi log untuk aplikasi yang sudah ada. Untuk informasi tentang cara menggunakan file JSON untuk input tindakan API, lihat Layanan Terkelola untuk Kode Contoh API Apache Flink.
Menambahkan Opsi CloudWatch Log Saat Membuat Aplikasi
Contoh berikut menunjukkan cara menggunakan CreateApplication
tindakan untuk menambahkan opsi CloudWatch log saat Anda membuat aplikasi. Dalam contoh, ganti Amazon Resource Name (ARN) dari aliran CloudWatch Log untuk menambahkan ke aplikasi baru dengan informasi
Anda sendiri. Untuk informasi selengkapnya tentang tindakan, lihat CreateApplication
.
{ "ApplicationName": "test", "ApplicationDescription": "test-application-description", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation":{ "BucketARN": "arn:aws:s3:::mybucket", "FileKey": "myflink.jar" } }, "CodeContentType": "ZIPFILE" } }, "CloudWatchLoggingOptions": [{ "LogStreamARN": "
<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>
" }] }
Menambahkan Opsi CloudWatch Log ke Aplikasi yang Ada
Contoh berikut menunjukkan cara menggunakan AddApplicationCloudWatchLoggingOption
tindakan untuk menambahkan opsi CloudWatch log ke aplikasi yang ada. Dalam contoh, ganti setiap placeholder input pengguna
dengan informasi Anda sendiri. Untuk informasi selengkapnya tentang tindakan, lihat AddApplicationCloudWatchLoggingOption
.
{ "ApplicationName": "
<Name of the application to add the log option to>
", "CloudWatchLoggingOption": { "LogStreamARN": "<ARN of the log stream to add to the application>
" }, "CurrentApplicationVersionId":<Version of the application to add the log to>
}
Memperbarui Opsi CloudWatch Log yang Ada
Contoh berikut menunjukkan bagaimana menggunakan UpdateApplication
tindakan untuk memodifikasi opsi CloudWatch log yang ada. Dalam contoh, ganti setiap placeholder input pengguna
dengan informasi Anda sendiri. Untuk informasi selengkapnya tentang tindakan, lihat UpdateApplication
.
{ "ApplicationName": "
<Name of the application to update the log option for>
", "CloudWatchLoggingOptionUpdates": [ { "CloudWatchLoggingOptionId": "<ID of the logging option to modify>
", "LogStreamARNUpdate": "<ARN of the new log stream to use>
" } ], "CurrentApplicationVersionId":<ID of the application version to modify>
}
Menghapus Opsi CloudWatch Log dari Aplikasi
Contoh berikut menunjukkan cara menggunakan DeleteApplicationCloudWatchLoggingOption
tindakan untuk menghapus opsi CloudWatch log yang ada. Dalam contoh, ganti setiap placeholder input pengguna
dengan informasi Anda sendiri. Untuk informasi selengkapnya tentang tindakan, lihat DeleteApplicationCloudWatchLoggingOption
.
{ "ApplicationName": "
<Name of application to delete log option from>
", "CloudWatchLoggingOptionId": "<ID of the application log option to delete>
", "CurrentApplicationVersionId":<Version of the application to delete the log option from>
}
Mengatur Tingkat Pencatatan Aplikasi
Untuk mengatur tingkat pencatatan aplikasi, gunakan parameter MonitoringConfiguration
tindakan CreateApplication
atau parameter MonitoringConfigurationUpdate
tindakan UpdateApplication
.
Untuk informasi tentang tingkat log aplikasi, lihat TingkatPemantauan Aplikasi.
Atur Tingkat Pencatatan Aplikasi saat Membuat Aplikasi
Permintaan contoh berikut untuk tindakan CreateApplication
menetapkan tingkat log aplikasi ke INFO
.
{ "ApplicationName": "MyApplication", "ApplicationDescription": "My Application Description", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": "MonitoringConfiguration": { "ConfigurationType": "CUSTOM", "LogLevel": "INFO" } }, "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole" }
Perbarui Tingkat Pencatatan Aplikasi
Permintaan contoh berikut untuk tindakan UpdateApplication
menetapkan tingkat log aplikasi ke INFO
.
{ "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "LogLevelUpdate": "INFO" } } } }
Menambahkan Izin untuk Menulis ke Aliran CloudWatch Log
Layanan Terkelola untuk Apache Flink memerlukan izin untuk menulis kesalahan konfigurasi. CloudWatch Anda dapat menambahkan izin ini ke peran AWS Identity and Access Management (IAM) yang diasumsikan oleh Managed Service for Apache Flink.
Untuk informasi selengkapnya tentang menggunakan peran IAM untuk Layanan Terkelola untuk Apache Flink, lihat. Identity and Access Management untuk Amazon Managed Service untuk Apache Flink
Kebijakan Kepercayaan
Untuk memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran IAM, Anda dapat melampirkan kebijakan kepercayaan berikut ke peran eksekusi layanan.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesisanlaytics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Kebijakan Izin
Untuk memberikan izin ke aplikasi untuk menulis peristiwa log CloudWatch dari Layanan Terkelola untuk sumber daya Apache Flink, Anda dapat menggunakan kebijakan izin IAM berikut. Sediakan Amazon Resource Names (ARN) yang benar untuk grup log dan aliran Anda.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt0123456789000", "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:log-stream:my-log-stream*", "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:*", "arn:aws:logs:us-east-1:123456789012:log-group:*", ] } ] }
TingkatPemantauan Aplikasi
Anda mengontrol pembuatan pesan log aplikasi menggunakan Tingkat Metrik Pemantauan dan Tingkat Log Pemantauan aplikasi.
Tingkat metrik pemantauan aplikasi mengontrol granularitas pesan log. Memantau tingkat metrik ditentukan sebagai berikut:
-
Aplikasi: Metrik dicakup untuk seluruh aplikasi.
-
Tugas: Metrik dicakup untuk setiap tugas. Untuk informasi tentang tugas , lihat Penskalaan Aplikasi dalam Layanan Terkelola untuk Apache Flink.
-
Operator: Metrik dicakup untuk setiap operator. Untuk informasi tentang operator, lihat Mengubah Data Menggunakan Operator di Managed Service untuk Apache Flink Dengan API DataStream .
-
Paralelisme: Metrik dicakup untuk paralelisme aplikasi. Anda hanya dapat mengatur level metrik ini menggunakan MonitoringConfigurationUpdateparameter UpdateApplicationAPI. Anda tidak dapat mengatur tingkat metrik ini menggunakan konsol. Untuk informasi tentang paralelisme, lihat Penskalaan Aplikasi dalam Layanan Terkelola untuk Apache Flink.
Tingkat log pemantauan aplikasi mengontrol verbositas log aplikasi. Memantau tingkat log ditentukan sebagai berikut:
-
Kesalahan: Potensi peristiwa bencana aplikasi.
-
Peringatan: Situasi aplikasi yang berpotensi berbahaya.
-
Info: Informasi dan peristiwa kegagalan sementara aplikasi. Sebaiknya Anda menggunakan tingkat pencatatan ini.
-
Debug: Peristiwa informasi terperinci yang paling berguna untuk melakukan debug aplikasi. Catatan: Hanya gunakan tingkat ini untuk tujuan debugging sementara.
Praktik Terbaik Pencatatan
Sebaiknya aplikasi Anda menggunakan tingkat pencatatan Info. Kami merekomendasikan tingkat ini untuk memastikan Anda melihat kesalahan Apache Flink, yang dicatat di tingkat Info bukan di tingkat Kesalahan.
Sebaiknya gunakan tingkat Debug hanya sementara saat menyelidiki masalah aplikasi. Alihkan kembali ke tingkat Info saat masalah teratasi. Menggunakan tingkat pencatatan Debug secara signifikan akan memengaruhi performa aplikasi Anda.
Pencatatan berlebihan juga dapat berdampak signifikan terhadap performa aplikasi. Sebaiknya jangan tulis entri log untuk setiap catatan yang diproses, misalnya. Pencatatan berlebihan dapat menyebabkan hambatan parah dalam pemrosesan data dan dapat menyebabkan tekanan balik dalam membaca data dari sumber.
Pemecahan Masalah Pencatatan
Jika log aplikasi tidak ditulis ke aliran log, verifikasi hal berikut:
-
Verifikasi bahwa IAM role dan kebijakan IAM aplikasi Anda sudah benar. Kebijakan aplikasi Anda memerlukan izin berikut untuk mengakses aliran log Anda:
logs:PutLogEvents
logs:DescribeLogGroups
logs:DescribeLogStreams
Untuk informasi selengkapnya, lihat Menambahkan Izin untuk Menulis ke Aliran CloudWatch Log.
-
Verifikasi bahwa aplikasi Anda sedang berjalan Untuk memeriksa status aplikasi Anda, lihat halaman aplikasi Anda di konsol, atau gunakan ListApplicationstindakan DescribeApplicationatau.
-
Pantau CloudWatch metrik seperti
downtime
untuk mendiagnosis masalah aplikasi lainnya. Untuk informasi tentang membaca CloudWatch metrik, lihatMetrik dan Dimensi dalam Layanan Terkelola untuk Apache Flink.
Langkah Selanjutnya
Setelah Anda mengaktifkan CloudWatch login di aplikasi Anda, Anda dapat menggunakan Wawasan CloudWatch Log untuk menganalisis log aplikasi Anda. Untuk informasi selengkapnya, lihat Menganalisis Log dengan Wawasan CloudWatch Log.