

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Siapkan aplikasi logging di Managed Service untuk Apache Flink
<a name="cloudwatch-logs"></a>

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 Konsol Manajemen AWS 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.

## Mengatur CloudWatch logging menggunakan konsol
<a name="cloudwatch-logs-console"></a>

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/kinesis-analytics/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](#cloudwatch_levels).

## Mengatur CloudWatch logging menggunakan CLI
<a name="cloudwatch-logs-api"></a>

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 [CreateApplication](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html)tindakan, atau tambahkan opsi logging ke aplikasi yang ada menggunakan [AddApplicationCloudWatchLoggingOption](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_AddApplicationCloudWatchLoggingOption.html)tindakan.
+ Tambahkan izin ke kebijakan aplikasi Anda untuk menulis ke log.

### Buat grup CloudWatch log dan aliran log
<a name="cloudwatch-logs-api-create"></a>

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html).

### Bekerja dengan opsi CloudWatch pencatatan aplikasi
<a name="adding_cloudwatch"></a>

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](api-examples.md).

#### Tambahkan opsi CloudWatch log saat membuat aplikasi
<a name="add_cloudwatch_create"></a>

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 [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html).

```
{
    "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
<a name="add_to_existing_app"></a>

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 [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_AddApplicationCloudWatchLoggingOption.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_AddApplicationCloudWatchLoggingOption.html).

```
{
   "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
<a name="update_existing"></a>

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 [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html).

```
{
   "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
<a name="delete-log"></a>

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 [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_DeleteApplicationCloudWatchLoggingOption.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_DeleteApplicationCloudWatchLoggingOption.html).

```
{
   "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
<a name="cloudwatch-level"></a>

Untuk mengatur tingkat pencatatan aplikasi, gunakan parameter [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_MonitoringConfiguration.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_MonitoringConfiguration.html) tindakan [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html) atau parameter [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_MonitoringConfigurationUpdate.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_MonitoringConfigurationUpdate.html) tindakan [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html). 

Untuk informasi tentang tingkat log aplikasi, lihat [Kontrol tingkat pemantauan aplikasi](#cloudwatch_levels).

##### Mengatur tingkat pencatatan aplikasi saat membuat aplikasi
<a name="cloudwatch-level-create"></a>

Permintaan contoh berikut untuk tindakan [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html) 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
<a name="cloudwatch-level-update"></a>

Permintaan contoh berikut untuk tindakan [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html) menetapkan tingkat log aplikasi ke `INFO`.

```
{
   "ApplicationConfigurationUpdate": {
      "FlinkApplicationConfigurationUpdate": { 
         "MonitoringConfigurationUpdate": { 
            "ConfigurationTypeUpdate": "CUSTOM",
            "LogLevelUpdate": "INFO"
         }
      }
   }
}
```

### Tambahkan izin untuk menulis ke aliran CloudWatch log
<a name="enable_putlogevents"></a>

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](security-iam.md)

#### Kebijakan kepercayaan
<a name="enable_putlogevents_trust_policy"></a>

Untuk memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran IAM, Anda dapat melampirkan kebijakan kepercayaan berikut ke peran eksekusi layanan.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "kinesisanalytics.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

#### Kebijakan izin
<a name="enable_putlogevents_permissions_policy"></a>

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. Berikan Nama Sumber Daya Amazon (ARNs) yang benar untuk grup log dan streaming Anda.

------
#### [ JSON ]

****  

```
{
    "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
<a name="cloudwatch_levels"></a>

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](how-scaling.md).
+ **Operator**: Metrik dicakup untuk setiap operator. Untuk informasi tentang operator, lihat [Mengubah data menggunakan operator di Managed Service untuk Apache Flink dengan API DataStream](how-operators.md).
+ **Paralelisme**: Metrik dicakup untuk paralelisme aplikasi. Anda hanya dapat mengatur level metrik ini menggunakan [ MonitoringConfigurationUpdate](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_MonitoringConfigurationUpdate.html)parameter [ UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html)API. Anda tidak dapat mengatur tingkat metrik ini menggunakan konsol. Untuk informasi tentang paralelisme, lihat [Menerapkan penskalaan aplikasi di Managed Service untuk Apache Flink](how-scaling.md).

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
<a name="cloudwatch_bestpractices"></a>

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
<a name="cloudwatch_troubleshooting"></a>

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 [Tambahkan izin untuk menulis ke aliran CloudWatch log](#enable_putlogevents).
+ Verifikasi bahwa aplikasi Anda sedang berjalan Untuk memeriksa status aplikasi Anda, lihat halaman aplikasi Anda di konsol, atau gunakan [ListApplications](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_ListApplications.html)tindakan [DescribeApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_DescribeApplication.html)atau.
+ Pantau CloudWatch metrik seperti `downtime` untuk mendiagnosis masalah aplikasi lainnya. Untuk informasi tentang membaca CloudWatch metrik, lihat[Metrik dan dimensi dalam Layanan Terkelola untuk Apache Flink](metrics-dimensions.md).

## Gunakan Wawasan CloudWatch Log
<a name="cloudwatch_next"></a>

Setelah Anda mengaktifkan CloudWatch login di aplikasi Anda, Anda dapat menggunakan Wawasan CloudWatch Log untuk menganalisis log aplikasi Anda. Lihat informasi yang lebih lengkap di [Menganalisis log dengan Wawasan CloudWatch Log](cloudwatch-logs-reading.md).