

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

# Menyimpan log
<a name="logging"></a>

Untuk memantau kemajuan pekerjaan Anda di EMR Tanpa Server dan memecahkan masalah kegagalan pekerjaan, pilih cara EMR Tanpa Server menyimpan dan menyajikan log aplikasi. Saat Anda mengirimkan pekerjaan, tentukan penyimpanan terkelola, Amazon S3, dan Amazon CloudWatch sebagai opsi pencatatan Anda.

Dengan CloudWatch, tentukan jenis log dan lokasi log yang ingin Anda gunakan, atau terima tipe dan lokasi default. Untuk informasi lebih lanjut tentang CloudWatch log, lihat[Logging untuk EMR Tanpa Server dengan Amazon CloudWatch](#jobs-log-storage-cw). Dengan penyimpanan terkelola dan pencatatan S3, tabel berikut mencantumkan lokasi log dan ketersediaan UI yang dapat Anda harapkan jika Anda memilih [penyimpanan terkelola](#jobs-log-storage-managed-storage), bucket [Amazon S3](#jobs-log-storage-s3-buckets), atau keduanya.


| Opsi | Log peristiwa | Log Kontainer | UI Aplikasi | 
| --- | --- | --- | --- | 
|  Penyimpanan terkelola  |  Disimpan dalam penyimpanan terkelola  |  Disimpan dalam penyimpanan terkelola  |  Didukung  | 
|  Penyimpanan terkelola dan bucket S3  |  Disimpan di kedua tempat  |  Disimpan dalam ember S3  |  Didukung  | 
|  Buket Amazon S3  |  Disimpan dalam ember S3  |  Disimpan dalam ember S3  |  Tidak didukung 1  | 

1 Kami menyarankan agar Anda tetap memilih opsi **Penyimpanan Terkelola**. Jika tidak, Anda tidak dapat menggunakan aplikasi bawaan UIs.

## Logging untuk EMR Tanpa Server dengan penyimpanan terkelola
<a name="jobs-log-storage-managed-storage"></a>

Secara default, EMR Tanpa Server menyimpan log aplikasi dengan aman di penyimpanan terkelola Amazon EMR selama maksimal 30 hari.

**catatan**  
Jika Anda menonaktifkan opsi default, Amazon EMR tidak dapat memecahkan masalah pekerjaan Anda atas nama Anda. Contoh: Anda tidak dapat mengakses Spark-UI dari Konsol Tanpa Server EMR.

Untuk menonaktifkan opsi ini dari EMR Studio, batalkan centang kotak **Izinkan AWS untuk menyimpan log selama 30 hari** di bagian **Pengaturan tambahan** pada halaman **Kirim** pekerjaan. 

Untuk mematikan opsi ini dari AWS CLI, gunakan `managedPersistenceMonitoringConfiguration` konfigurasi saat Anda mengirimkan pekerjaan yang dijalankan.

```
{
    "monitoringConfiguration": {
        "managedPersistenceMonitoringConfiguration": {
            "enabled": false
        }
    }
}
```

Jika aplikasi EMR Tanpa Server Anda berada dalam subnet pribadi dengan titik akhir VPC untuk Amazon S3 dan Anda melampirkan kebijakan titik akhir untuk mengontrol akses, tambahkan izin berikut untuk EMR Tanpa Server untuk menyimpan dan menyajikan log aplikasi. Ganti `Resource` dengan `AppInfo` bucket dari tabel wilayah yang tersedia dalam [Kebijakan sampel untuk subnet pribadi yang mengakses Amazon S3](https://docs.aws.amazon.com/emr/latest/ManagementGuide/private-subnet-iampolicy.html#private-subnet-iampolicy-regions).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EMRServerlessManagedLogging",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": [
        "arn:aws:s3:::prod.us-east-1.appinfo.src",
        "arn:aws:s3:::prod.us-east-1.appinfo.src/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:PrincipalServiceName": "emr-serverless.amazonaws.com",
          "aws:SourceVpc": "vpc-12345678"
        }
      }
    }
  ]
}
```

------

Selain itu, gunakan tombol `aws:SourceVpc` kondisi untuk memastikan bahwa permintaan berjalan melalui VPC tempat titik akhir VPC dilampirkan.

## Logging untuk EMR Tanpa Server dengan bucket Amazon S3
<a name="jobs-log-storage-s3-buckets"></a>

Sebelum pekerjaan Anda dapat mengirim data log ke Amazon S3, sertakan izin berikut dalam kebijakan izin untuk peran runtime pekerjaan. Ganti `amzn-s3-demo-logging-bucket` dengan nama bucket logging Anda.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Sid": "AllowS3Putobject"
    }
  ]
}
```

------

Untuk menyiapkan bucket Amazon S3 untuk menyimpan log dari AWS CLI, gunakan `s3MonitoringConfiguration` konfigurasi saat Anda memulai menjalankan pekerjaan. Untuk melakukan ini, berikan yang berikut `--configuration-overrides` dalam konfigurasi. 

```
{
    "monitoringConfiguration": {
        "s3MonitoringConfiguration": {
            "logUri": "s3://amzn-s3-demo-logging-bucket/logs/"
        }
    }
}
```

Untuk pekerjaan batch yang tidak mengaktifkan percobaan ulang, EMR Serverless mengirimkan log ke jalur berikut:

```
'/applications/<applicationId>/jobs/<jobId>'
```

Log driver percikan disimpan di jalur berikut oleh EMR Tanpa Server

```
'/applications/<applicationId>/jobs/<jobId>/SPARK_DRIVER/'
```

Log pelaksana Spark disimpan di jalur berikut oleh EMR Tanpa Server

```
'/applications/<applicationId>/jobs/<jobId>/SPARK_EXECUTOR/<EXECUTOR-ID>'
```

<EXECUTOR-ID>Ini adalah bilangan bulat.

EMR Serverless merilis 7.1.0 dan mendukung upaya coba lagi yang lebih tinggi untuk pekerjaan streaming dan pekerjaan batch. Jika Anda menjalankan pekerjaan dengan percobaan ulang diaktifkan, EMR Serverless secara otomatis menambahkan nomor percobaan ke awalan jalur log, sehingga Anda dapat membedakan dan melacak log dengan lebih baik.

```
'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/'
```

## Logging untuk EMR Tanpa Server dengan Amazon CloudWatch
<a name="jobs-log-storage-cw"></a>

Saat Anda mengirimkan pekerjaan ke aplikasi EMR Tanpa Server, pilih Amazon CloudWatch sebagai opsi untuk menyimpan log aplikasi Anda. Ini memungkinkan Anda untuk menggunakan fitur analisis CloudWatch log seperti Wawasan CloudWatch Log dan Live Tail. Anda juga dapat melakukan streaming log dari CloudWatch sistem lain seperti OpenSearch untuk analisis lebih lanjut.

EMR Tanpa Server menyediakan pencatatan waktu nyata untuk log driver. Anda dapat mengakses log secara real time dengan kemampuan CloudWatch live tail, atau melalui perintah ekor CloudWatch CLI.

Secara default, CloudWatch logging dinonaktifkan untuk EMR Tanpa Server. Untuk mengaktifkannya, gunakan konfigurasi di[AWS CLI](#jobs-log-storage-cw-cli).

**catatan**  
Amazon CloudWatch menerbitkan log secara real time, sehingga menghasilkan lebih banyak sumber daya dari pekerja. Jika Anda memilih kapasitas pekerja yang rendah, dampaknya terhadap waktu kerja Anda mungkin meningkat. Jika Anda mengaktifkan CloudWatch pencatatan, kami sarankan Anda memilih kapasitas pekerja yang lebih besar. Mungkin juga publikasi log dapat menghambat jika tingkat transaksi per detik (TPS) terlalu rendah untuk. `PutLogEvents` Konfigurasi CloudWatch throttling bersifat global untuk semua layanan, termasuk EMR Tanpa Server. Untuk informasi selengkapnya, lihat [Bagaimana cara menentukan pembatasan di log saya? CloudWatch ](https://repost.aws/knowledge-center/cloudwatch-logs-throttling) pada *AWS re:post*.

### Izin yang diperlukan untuk login dengan CloudWatch
<a name="jobs-log-storage-cw-permissions"></a>

Sebelum pekerjaan Anda dapat mengirim data log ke Amazon CloudWatch, sertakan izin berikut dalam kebijakan izin untuk peran runtime pekerjaan.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "arn:aws:logs:*:123456789012:*"
      ],
      "Sid": "AllowLOGSDescribeloggroups"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "arn:aws:logs:*:123456789012:log-group:my-log-group-name:*"
      ],
      "Sid": "AllowLOGSPutlogevents"
    }
  ]
}
```

------

### AWS CLI
<a name="jobs-log-storage-cw-cli"></a>

Untuk mengatur Amazon CloudWatch untuk menyimpan log untuk EMR Tanpa Server dari AWS CLI, gunakan `cloudWatchLoggingConfiguration` konfigurasi saat Anda memulai menjalankan pekerjaan. Untuk melakukan ini, berikan penggantian konfigurasi berikut. Secara opsional, berikan juga nama grup log, nama awalan aliran log, jenis log, dan ARN kunci enkripsi.

Jika Anda tidak menentukan nilai opsional, maka CloudWatch menerbitkan log ke grup log default`/aws/emr-serverless`, dengan aliran `/applications/applicationId/jobs/jobId/worker-type` log default.

EMR Serverless merilis 7.1.0 dan mendukung upaya coba lagi yang lebih tinggi untuk pekerjaan streaming dan pekerjaan batch. Jika Anda mengaktifkan percobaan ulang untuk suatu pekerjaan, EMR Tanpa Server secara otomatis menambahkan nomor percobaan ke awalan jalur log, sehingga Anda dapat membedakan dan melacak log dengan lebih baik. 

```
'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/worker-type'
```

Berikut ini menunjukkan konfigurasi minimum yang diperlukan untuk mengaktifkan CloudWatch pencatatan Amazon dengan pengaturan default untuk EMR Tanpa Server:

```
{
    "monitoringConfiguration": {
        "cloudWatchLoggingConfiguration": {
            "enabled": true
         }
     }
}
```

Contoh berikut menunjukkan semua konfigurasi wajib dan opsional yang menentukan saat Anda mengaktifkan CloudWatch pencatatan Amazon untuk EMR Tanpa Server. `logTypes`Nilai yang didukung juga tercantum dalam contoh berikut ini.

```
{
    "monitoringConfiguration": {
        "cloudWatchLoggingConfiguration": {
            "enabled": true, // Required
            "logGroupName": "Example_logGroup", // Optional
            "logStreamNamePrefix": "Example_logStream", // Optional 
            "encryptionKeyArn": "key-arn", // Optional 
            "logTypes": { 
                "SPARK_DRIVER": ["stdout", "stderr"] //List of values
             }
         }
     }
}
```

Secara default, EMR Tanpa Server hanya menerbitkan stdout driver dan stderr log ke. CloudWatch Jika Anda menginginkan log lain, tentukan peran kontainer dan jenis log yang sesuai dengan `logTypes` bidang tersebut.

Daftar berikut menunjukkan tipe pekerja yang didukung yang menentukan `logTypes` konfigurasi:

**Spark**  
+ `SPARK_DRIVER : ["STDERR", "STDOUT"]`
+ `SPARK_EXECUTOR : ["STDERR", "STDOUT"]`

**Hive**  
+ `HIVE_DRIVER : ["STDERR", "STDOUT", "HIVE_LOG", "TEZ_AM"]`
+ `TEZ_TASK : ["STDERR", "STDOUT", "SYSTEM_LOGS"]`