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
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
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.
-
Alat
kubectlbaris 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)
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-configurationParameter diperlukan untuk semua wilayah kecualius-east-1.
Langkah 2: Mulai pengambilan paket
Gunakan start-capture.py skrip dari repositori agen pemantauan nodetools/start-capture.py) untuk menghasilkan kredenal S3 yang telah ditandatangani sebelumnya, membuat NodeDiagnostic sumber daya, dan menerapkannya ke cluster Anda.
-
Identifikasi node tempat Anda ingin menangkap lalu lintas.
kubectl get nodes -
Simpan skrip 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-runScript membutuhkan Python 3 dengan
boto3danpyyamldiinstal, dankubectldikonfigurasi untuk cluster Anda.Skrip menghasilkan
NodeDiagnosticsumber daya seperti berikut ini. Contoh ini disediakan untuk referensi; perhatikan bahwauploadbidang 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
Periksa status penangkapan.
kubectl describe nodediagnostic<node-name>
Status akan menunjukkan:
-
Runningsementara penangkapan sedang berlangsung. -
Completeddengan alasanSuccessketika pengambilan selesai dan semua file diunggah. -
Completeddengan alasanFailurejika 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
Setelah status ditampilkanSuccess, 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
NodeDiagnosticsumber 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
Untuk referensi packetCapture spesifikasi lengkap, opsi konfigurasi, dan detail perilaku, lihat dokumentasi pengambilan paket