Menyiapkan Pencatatan Aplikasi - 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.

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.

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

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:

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:

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.