

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

# Tangkap lalu lintas jaringan pada node terkelola menggunakan kubectl dan S3
<a name="auto-get-tcpdump"></a>

Pelajari cara menangkap lalu lintas jaringan pada node terkelola Amazon EKS yang memiliki agen pemantauan node. Agen menjalankan tcpdump pada node, mengompres file pengambilan, dan mengunggahnya ke bucket S3 Anda.

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

Pastikan Anda memiliki yang berikut:
+ Cluster Mode Otomatis 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.
+ Pustaka PyYaml diinstal (). `pip install pyyaml`

## 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 file pengambilan, buat satu. Ganti {{bucket-name}} dan {{region}} dengan nilai-nilai Anda.

```
aws s3api create-bucket --bucket {{<bucket-name>}} \
    --region {{<region>}} \
    --create-bucket-configuration LocationConstraint={{<region>}}
```

**catatan**  
`--create-bucket-configuration`Parameter diperlukan untuk semua wilayah kecuali`us-east-1`.

## Langkah 2: Mulai pengambilan paket
<a name="_step_2_start_packet_capture"></a>

Gunakan `start-capture.py` skrip dari [repositori agen pemantauan node](https://github.com/aws/eks-node-monitoring-agent) (`tools/start-capture.py`) untuk menghasilkan kredenal S3 yang telah ditandatangani sebelumnya, membuat `NodeDiagnostic` sumber daya, dan menerapkannya ke cluster Anda.

1. Identifikasi node tempat Anda ingin menangkap lalu lintas.

   ```
   kubectl get nodes
   ```

1. Simpan skrip [start-capture.py](https://github.com/aws/eks-node-monitoring-agent/blob/main/tools/start-capture.py) dari repositori agen pemantauan node ke mesin lokal Anda, lalu jalankan. Ganti {{<bucket-name>}} dan {{<node-name>}} dengan nilai-nilai Anda.

   ```
   python3 start-capture.py --bucket {{<bucket-name>}} --node {{<node-name>}}
   ```

   Opsi umum:

   ```
   # Capture for 5 minutes on eth0 with a filter
   python3 start-capture.py --bucket {{<bucket-name>}} --node {{<node-name>}} \
       --duration 5m --interface eth0 --filter "tcp port 443"
   
   # Preview the YAML without applying
   python3 start-capture.py --bucket {{<bucket-name>}} --node {{<node-name>}} --dry-run
   ```

   Script membutuhkan Python 3 dengan `boto3` dan `pyyaml` diinstal, dan `kubectl` dikonfigurasi untuk cluster Anda.

   Skrip menghasilkan `NodeDiagnostic` sumber daya seperti berikut ini. Contoh ini disediakan untuk referensi; perhatikan bahwa `upload` bidang memerlukan kredenal S3 POST yang telah ditandatangani sebelumnya yang dihasilkan secara terprogram oleh skrip.

   ```
   apiVersion: eks.amazonaws.com/v1alpha1
   kind: NodeDiagnostic
   metadata:
     name: {{<node-name>}}                    # Required: node instance ID
   spec:
     packetCapture:
       duration: "30s"                       # Required: capture duration (max 1h)
       # interface: "eth0"                   # Optional: default is primary ENI. Use "any" for all interfaces
       # filter: "tcp port 443"             # Optional: tcpdump filter expression
       # chunkSizeMB: 10                    # Optional: file rotation size in MB (1-100, default: 10)
       upload:                               # Required: pre-signed S3 POST credentials
         url: "https://{{<bucket>}}.s3.amazonaws.com/"
         fields:
           key: "captures/{{<node-name>}}/${filename}"
           # ... other pre-signed POST fields (generated by the script)
   ```

## Langkah 3: Pantau kemajuan penangkapan
<a name="_step_3_monitor_capture_progress"></a>

Periksa status penangkapan.

```
kubectl describe nodediagnostic {{<node-name>}}
```

Status akan menunjukkan:
+  `Running`sementara penangkapan sedang berlangsung.
+  `Completed`dengan alasan `Success` ketika pengambilan selesai dan semua file diunggah.
+  `Completed`dengan alasan `Failure` jika penangkapan mengalami kesalahan.

Untuk melihat status lengkap termasuk `captureID` (digunakan untuk identifikasi jalur S3):

```
kubectl get nodediagnostic {{<node-name>}} -o jsonpath='{.status.captureStatuses}'
```

## Langkah 4: Unduh file tangkapan dari S3
<a name="_step_4_download_capture_files_from_s3"></a>

Setelah status ditampilkan`Success`, unduh file pengambilan dari S3.

```
aws s3 cp s3://{{<bucket-name>}}/captures/ ./captures/ --recursive
```

File-file tersebut adalah format pcap terkompresi gzip. Dekompresi dan analisis dengan tcpdump atau Wireshark:

```
gunzip captures/*.gz
tcpdump -r captures/capture.pcap0000 -n
```

## Langkah 5: Bersihkan
<a name="_step_5_clean_up"></a>

 `NodeDiagnostic`sumber daya tidak dihapus secara otomatis. Bersihkan setelah Anda mendapatkan file pengambilan Anda. Menghapus sumber daya saat penangkapan sedang berjalan akan segera menghentikan pengambilan.

```
kubectl delete nodediagnostic {{<node-name>}}
```

## Opsi dan perilaku konfigurasi
<a name="_configuration_options_and_behavior"></a>

Untuk referensi `packetCapture` spesifikasi lengkap, opsi konfigurasi, dan detail perilaku, lihat [dokumentasi pengambilan paket](https://github.com/aws/eks-node-monitoring-agent/blob/main/docs/packet-capture.adoc) di repositori agen pemantauan node.