Siapkan pencatatan aplikasi di Layanan Terkelola untuk Apache Flink - Layanan Terkelola untuk Apache Flink

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:

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.