

 **Bantu tingkatkan halaman ini** 

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

Untuk berkontribusi pada panduan pengguna ini, pilih **Edit halaman ini pada GitHub** tautan yang terletak di panel kanan setiap halaman.

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

# Mengambil log node untuk node terkelola menggunakan kubectl dan S3
<a name="auto-get-logs"></a>

Pelajari cara mengambil log node untuk node terkelola Amazon EKS yang memiliki agen pemantauan node.

## Prasyarat
<a name="_prerequisites"></a>

Pastikan Anda memiliki yang berikut:
+ Cluster Amazon EKS yang ada dengan agen pemantauan node. Untuk informasi selengkapnya, lihat [Mendeteksi masalah kesehatan node dan mengaktifkan perbaikan node otomatis](node-health.md).
+ Alat `kubectl` baris perintah diinstal dan dikonfigurasi untuk berkomunikasi dengan cluster Anda.
+  AWS CLI diinstal dan masuk dengan izin yang cukup untuk membuat bucket dan objek S3.
+ Versi terbaru dari Python 3 diinstal
+  AWS SDK untuk Python 3, Boto 3, diinstal.

## Langkah 1: Buat tujuan bucket S3 (opsional)
<a name="_step_1_create_s3_bucket_destination_optional"></a>

Jika Anda belum memiliki ember S3 untuk menyimpan log, buat satu. Gunakan perintah AWS CLI berikut. Bucket default ke daftar kontrol `private` akses. Ganti *bucket-name* dengan nama bucket unik pilihan Anda.

```
aws s3api create-bucket --bucket <bucket-name>
```

## Langkah 2: Buat URL S3 yang telah ditandatangani sebelumnya untuk HTTP Put
<a name="_step_2_create_pre_signed_s3_url_for_http_put"></a>

Amazon EKS mengembalikan log node dengan melakukan operasi HTTP PUT ke URL yang Anda tentukan. Dalam tutorial ini, kita akan menghasilkan URL PUT HTTP S3 yang telah ditandatangani sebelumnya.

Log akan dikembalikan sebagai tarball gzip, dengan ekstensi. `.tar.gz`

**catatan**  
Anda harus menggunakan AWS API atau SDK untuk membuat URL unggahan S3 yang telah ditandatangani sebelumnya untuk EKS untuk mengunggah file log. Anda tidak dapat membuat URL unggahan S3 yang telah ditandatangani sebelumnya menggunakan CLI AWS .

1. Tentukan di mana dalam ember Anda ingin menyimpan log. Misalnya, Anda dapat menggunakan *2024-11-12/logs1.tar.gz* sebagai kunci.

1. Simpan kode Python berikut ke file. *presign-upload.py* Ganti *<bucket-name>* dan*<key>*. Kuncinya harus diakhiri dengan`.tar.gz`.

   ```
   import boto3; print(boto3.client('s3').generate_presigned_url(
      ClientMethod='put_object',
      Params={'Bucket': '<bucket-name>', 'Key': '<key>'},
      ExpiresIn=1000
   ))
   ```

1. Jalankan skrip dengan

   ```
   python presign-upload.py
   ```

1. Perhatikan output URL. Gunakan nilai ini di langkah berikutnya sebagai*http-put-destination*.

Untuk informasi selengkapnya, lihat [Menghasilkan URL yang telah ditetapkan sebelumnya untuk mengunggah file](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-presigned-urls.html#generating-a-presigned-url-to-upload-a-file) di AWS Boto3 SDK untuk Dokumentasi Python.

## Langkah 3: Buat NodeDiagnostic sumber daya
<a name="_step_3_create_nodediagnostic_resource"></a>

Identifikasi nama node tempat Anda ingin mengumpulkan log dari.

Buat `NodeDiagnostic` manifes yang menggunakan nama node sebagai nama sumber daya, dan berikan tujuan URL PUT HTTP.

```
apiVersion: eks.amazonaws.com/v1alpha1
kind: NodeDiagnostic
metadata:
    name: <node-name>
spec:
    logCapture:
        destination: http-put-destination
```

Menerapkan manifes ke klaster.

```
kubectl apply -f nodediagnostic.yaml
```

Anda dapat memeriksa Status koleksi dengan menjelaskan `NodeDiagnostic` sumber daya:
+ Status `Success` atau `SuccessWithErrors` menunjukkan bahwa tugas selesai dan log yang diunggah ke tujuan yang disediakan (`SuccessWithErrors`menunjukkan bahwa beberapa log mungkin hilang)
+ Jika statusnya Gagal, konfirmasikan URL unggahan sudah terbentuk dengan baik dan tidak kedaluwarsa.

```
kubectl describe nodediagnostics.eks.amazonaws.com/<node-name>
```

## Langkah 4: Unduh log dari S3
<a name="_step_4_download_logs_from_s3"></a>

Tunggu sekitar satu menit sebelum mencoba mengunduh log. Kemudian, gunakan S3 CLI untuk mengunduh log.

```
# Once NodeDiagnostic shows Success status, download the logs
aws s3 cp s3://<bucket-name>/key ./<path-to-node-logs>.tar.gz
```

## Langkah 5: Bersihkan NodeDiagnostic sumber daya
<a name="_step_5_clean_up_nodediagnostic_resource"></a>
+  `NodeDiagnostic`sumber daya tidak dihapus secara otomatis. Anda harus membersihkannya sendiri setelah Anda mendapatkan artefak log Anda

```
# Delete the NodeDiagnostic resource
kubectl delete nodediagnostics.eks.amazonaws.com/<node-name>
```

## NodeDiagnostic `node`Destinasi
<a name="_nodediagnostic_node_destination"></a>

Dimulai dengan `v1.6.1-eksbuild.1` versi Node Monitoring Agent, ada opsi untuk mengatur tujuan pengumpulan log`node`. Menggunakan tujuan ini akan mengarah ke pengumpulan dan persistensi sementara log pada node untuk koleksi nanti. Selain fungsi ini, dalam GitHub repositori Node Monitoring Agent adalah `kubectl` plugin yang dapat Anda instal untuk interaksi yang mudah dan pengumpulan log. Untuk informasi lebih lanjut, lihat [dokumentasi untuk `kubectl ekslogs` plugin](https://github.com/aws/eks-node-monitoring-agent/blob/main/tools/kubectl-ekslogs/README.md).

## Contoh Penggunaan
<a name="_example_usage"></a>

```
# Collect NodeDiagnostic logs from a single node
kubectl ekslogs <node-name>

# Collect NodeDiagnostic logs from multiple nodes
kubectl ekslogs <node-name-1> <node-name-2> <node-name-3>

# Collect NodeDiagnostic logs from all nodes with a specific label
kubectl ekslogs -l <key>=<value>
```