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.
Siapkan pencatatan aplikasi di Layanan Terkelola untuk Apache Flink
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.
-
Ketika Anda menambahkan opsi CloudWatch logging menggunakanAPI, Anda juga harus membuat grup log aplikasi dan aliran log, dan menambahkan izin aplikasi Anda perlu menulis ke aliran log.
Mengatur 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 mana ApplicationName
adalah 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 Kontrol tingkat pemantauan aplikasi.
Mengatur CloudWatch logging menggunakan CLI
Untuk menambahkan opsi CloudWatch logging menggunakan AWS CLI, Anda menyelesaikan yang berikut ini:
-
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.
Buat grup CloudWatch log dan aliran log
Anda membuat grup CloudWatch log dan melakukan streaming menggunakan konsol CloudWatch Log atauAPI. 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 API tindakan 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 JSON file untuk masukan API tindakan, lihatLayanan Terkelola untuk kode contoh Apache Flink API.
Tambahkan 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) of the CloudWatch Log stream to add to the new
application
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:::amzn-s3-demo-bucket", "FileKey": "myflink.jar" } }, "CodeContentType": "ZIPFILE" } }, "CloudWatchLoggingOptions": [{ "LogStreamARN": "
<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>
" }] }
Tambahkan 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 masing-masing user input placeholder
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>
}
Perbarui opsi CloudWatch log yang ada
Contoh berikut menunjukkan bagaimana menggunakan UpdateApplication
tindakan untuk memodifikasi opsi CloudWatch log yang ada. Dalam contoh, ganti masing-masing user input placeholder
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>
}
Hapus opsi CloudWatch log dari aplikasi
Contoh berikut menunjukkan cara menggunakan DeleteApplicationCloudWatchLoggingOption
tindakan untuk menghapus opsi CloudWatch log yang ada. Dalam contoh, ganti masing-masing user input
placeholder
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 Kontrol tingkat pemantauan aplikasi.
Mengatur 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:::amzn-s3-demo-bucket", "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" } } } }
Tambahkan 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 Layanan Terkelola untuk Apache Flink.
Untuk informasi selengkapnya tentang penggunaan IAM peran 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 IAM peran, 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 berikutIAM. Berikan Nama Sumber Daya Amazon (ARNs) yang benar untuk grup log dan streaming 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:*", ] } ] }
Kontrol tingkat pemantauan 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 Menerapkan penskalaan aplikasi di Managed Service 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 DataStream API.
-
Paralelisme: Metrik dicakup untuk paralelisme aplikasi. Anda hanya dapat mengatur tingkat metrik ini menggunakan MonitoringConfigurationUpdateparameter. UpdateApplicationAPI Anda tidak dapat mengatur tingkat metrik ini menggunakan konsol. Untuk informasi tentang paralelisme, lihat Menerapkan penskalaan aplikasi di Managed Service 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.
Terapkan 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.
Lakukan pemecahan masalah logging
Jika log aplikasi tidak ditulis ke aliran log, verifikasi hal berikut:
-
Verifikasi bahwa IAM peran dan kebijakan 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 Tambahkan 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, lihat.
Gunakan Wawasan CloudWatch Log
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.