

 **Bantu meningkatkan 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 GitHub ** tautan ** Edit halaman ini di 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.