

 **Contribuisci a migliorare questa pagina** 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link **Modifica questa pagina** nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Cattura il traffico di rete su un nodo gestito utilizzando kubectl e S3
<a name="auto-get-tcpdump"></a>

Scopri come acquisire il traffico di rete su un nodo gestito Amazon EKS dotato dell'agente di monitoraggio dei nodi. L'agente esegue tcpdump sul nodo, comprime i file di acquisizione e li carica nel tuo bucket S3.

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

Verifica di disporre di quanto segue:
+ Un cluster Amazon EKS Auto Mode esistente con l'agente di monitoraggio dei nodi. Per ulteriori informazioni, consulta [Rileva i problemi di integrità dei nodi e abilita la riparazione automatica dei nodi](node-health.md).
+ Lo strumento di riga di comando `kubectl` installato e configurato per comunicare con il cluster.
+ La AWS CLI è stata installata e ha effettuato l'accesso con autorizzazioni sufficienti per creare bucket e oggetti S3.
+ È installata una versione recente di Python 3.
+ L' AWS SDK per Python 3, Boto 3, è installato.
+ La libreria PyYAML installata (). `pip install pyyaml`

## Fase 1: Creare di una destinazione bucket S3 (facoltativo)
<a name="_step_1_create_s3_bucket_destination_optional"></a>

Se non disponi già di un bucket S3 per archiviare i file di acquisizione, creane uno. Sostituisci *bucket-name* e *region* con i tuoi valori.

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

**Nota**  
Il `--create-bucket-configuration` parametro è obbligatorio per tutte le regioni tranne`us-east-1`.

## Fase 2: Avviare l'acquisizione dei pacchetti
<a name="_step_2_start_packet_capture"></a>

Utilizza lo `start-capture.py` script dal [repository dell'agente di monitoraggio del nodo](https://github.com/aws/eks-node-monitoring-agent) (`tools/start-capture.py`) per generare credenziali S3 prefirmate, creare la `NodeDiagnostic` risorsa e applicarla al cluster.

1. Identifica il nodo da cui desideri acquisire il traffico.

   ```
   kubectl get nodes
   ```

1. Salva lo script [start-capture.py](https://github.com/aws/eks-node-monitoring-agent/blob/main/tools/start-capture.py) dal repository dell'agente di monitoraggio del nodo sul tuo computer locale, quindi eseguilo. Sostituisci *<bucket-name>* e *<node-name>* con i tuoi valori.

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

   Opzioni comuni:

   ```
   # 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
   ```

   Lo script richiede Python 3 con, `pyyaml` installato `boto3` e `kubectl` configurato per il cluster.

   Lo script genera una `NodeDiagnostic` risorsa come la seguente. Questo esempio viene fornito come riferimento; si noti che i `upload` campi richiedono credenziali S3 POST prefirmate che vengono generate a livello di codice dallo script.

   ```
   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)
   ```

## Fase 3: Monitora l'avanzamento dell'acquisizione
<a name="_step_3_monitor_capture_progress"></a>

Controlla lo stato dell'acquisizione.

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

Lo stato mostrerà:
+  `Running`mentre l'acquisizione è in corso.
+  `Completed`indicando il motivo al `Success` termine dell'acquisizione e al caricamento di tutti i file.
+  `Completed`con il motivo `Failure` se l'acquisizione ha riscontrato errori.

Per visualizzare lo stato completo, incluso `captureID` (utilizzato per l'identificazione del percorso S3):

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

## Passaggio 4: scarica i file di acquisizione da S3
<a name="_step_4_download_capture_files_from_s3"></a>

Una volta visualizzato lo stato`Success`, scarica i file di acquisizione da S3.

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

I file sono in formato pcap compresso con gzip. Decomprimi e analizza con tcpdump o Wireshark:

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

## Fase 5: rimozione
<a name="_step_5_clean_up"></a>

 `NodeDiagnostic`le risorse non vengono eliminate automaticamente. Pulisci dopo aver ottenuto i file di acquisizione. L'eliminazione della risorsa mentre è in corso un'acquisizione interromperà immediatamente l'acquisizione.

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

## Opzioni e comportamento di configurazione
<a name="_configuration_options_and_behavior"></a>

Per il riferimento completo alle `packetCapture` specifiche, alle opzioni di configurazione e ai dettagli sul comportamento, consulta la [documentazione sull'acquisizione dei pacchetti](https://github.com/aws/eks-node-monitoring-agent/blob/main/docs/packet-capture.adoc) nel repository dell'agente di monitoraggio dei nodi.