

 **Unterstützung für die Verbesserung dieser Seite beitragen** 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link **Diese Seite bearbeiten auf**, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Abrufen von Knotenprotokollen für einen verwalteten Knoten mithilfe von kubectl und S3
<a name="auto-get-logs"></a>

Erfahren Sie, wie Sie Knotenprotokolle für einen von Amazon EKS verwalteten Knoten abrufen können, auf dem der Knoten-Überwachungsagent installiert ist.

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

Stellen Sie sicher, dass Sie über Folgendes verfügen:
+ Ein vorhandener Amazon-EKS-Cluster mit dem Knoten-Überwachungsagent. Weitere Informationen finden Sie unter [Erkennen Sie Probleme mit dem Knotenstatus und aktivieren Sie die automatische Knotenreparatur](node-health.md).
+ Das Befehlszeilentool `kubectl`, das für die Kommunikation mit Ihrem Cluster installiert und konfiguriert wurde.
+ Die AWS CLI wurde installiert und hat sich mit ausreichenden Berechtigungen angemeldet, um S3-Buckets und -Objekte zu erstellen.
+ Eine aktuelle Installation von Python 3
+ Das AWS SDK für Python 3, Boto 3, ist installiert.

## Schritt 1: S3-Bucket-Ziel erstellen (optional)
<a name="_step_1_create_s3_bucket_destination_optional"></a>

Falls Sie noch nicht über einen S3-Bucket zum Speichern der Protokolle verfügen, erstellen Sie einen. Verwenden Sie den folgenden AWS CLI-Befehl. Der Bucket verwendet standardmäßig die `private`-Zugriffskontroll-Liste. *bucket-name*Ersetzen Sie es durch den von Ihnen ausgewählten eindeutigen Bucket-Namen.

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

## Schritt 2: Vorab signierte S3-URL für HTTP Put erstellen
<a name="_step_2_create_pre_signed_s3_url_for_http_put"></a>

Amazon EKS gibt die Knotenprotokolle zurück, indem es eine HTTP-PUT-Operation an eine von Ihnen angegebene URL durchführt. In diesem Tutorial erstellen wir eine vorab signierte S3-HTTP-PUT-URL.

Die Protokolle werden als gzip tarball mit der `.tar.gz`-Erweiterung zurückgegeben.

**Anmerkung**  
Sie müssen die AWS API oder ein SDK verwenden, um die vorsignierte S3-Upload-URL für EKS zum Hochladen der Protokolldatei zu erstellen. Sie können mit der AWS CLI keine vorsignierte S3-Upload-URL erstellen.

1. Bestimmen Sie, wo im Bucket Sie die Protokolle speichern möchten. Sie können beispielsweise *2024-11-12/logs1.tar.gz* als Schlüssel verwenden.

1. Speichern Sie den folgenden Python-Code in der Datei *presign-upload.py*. Ersetzen Sie *<bucket-name>* und *<key>*. Der Schlüssel sollte mit `.tar.gz` enden.

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

1. Skript ausführen mit

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

1. Beachten Sie die URL-Ausgabe. Verwenden Sie diesen Wert im nächsten Schritt als *http-put-destination*.

Weitere Informationen finden Sie unter [Generieren einer vorsignierten URL zum Hochladen einer Datei](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-presigned-urls.html#generating-a-presigned-url-to-upload-a-file) in der Dokumentation zum AWS Boto3-SDK für Python.

## Schritt 3: Ressource erstellen NodeDiagnostic
<a name="_step_3_create_nodediagnostic_resource"></a>

Identifizieren Sie den Namen des Knotens, von dem Sie Protokolle erfassen möchten.

Erstellen Sie ein `NodeDiagnostic`-Manifest, das den Namen des Knotens als Namen der Ressource verwendet und eine HTTP-PUT-URL-Zieladresse angibt.

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

Wenden Sie die Manifestdatei auf Ihren Cluster an.

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

Sie können den Status der Sammlung überprüfen, indem Sie die `NodeDiagnostic`-Ressource beschreiben:
+ Ein Status von `Success` oder `SuccessWithErrors` zeigt an, dass die Aufgabe abgeschlossen und die Protokolle an das angegebene Ziel hochgeladen wurden (`SuccessWithErrors` zeigt an, dass möglicherweise einige Protokolle fehlen).
+ Wenn der Status „Fehler“ lautet, stellen Sie sicher, dass die Upload-URL korrekt formatiert und nicht abgelaufen ist.

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

## Schritt 4: Protokolle aus S3 herunterladen
<a name="_step_4_download_logs_from_s3"></a>

Warten Sie etwa eine Minute, bevor Sie versuchen, die Protokolle herunterzuladen. Verwenden Sie anschließend die S3-CLI, um die Protokolle herunterzuladen.

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

## Schritt 5: NodeDiagnostic Ressource bereinigen
<a name="_step_5_clean_up_nodediagnostic_resource"></a>
+  `NodeDiagnostic`-Ressourcen werden nicht automatisch gelöscht. Sie sollten diese selbst bereinigen, nachdem Sie Ihre Protokoll-Artefakte erhalten haben

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

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

Ab `v1.6.0` der Version des Node Monitoring Agents gibt es eine Option, mit der Sie das Ziel für die Protokollerfassung festlegen können`node`. Die Verwendung dieses Ziels führt zur Erfassung und temporären Speicherung von Protokollen auf dem Knoten für eine spätere Erfassung. Zusätzlich zu dieser Funktionalität befindet sich im GitHub Repository des Node Monitoring Agents ein `kubectl` Plugin, das Sie für eine einfache Interaktion und Protokollerfassung installieren können. Weitere Informationen finden Sie in der [Dokumentation zum `kubectl ekslogs` Plugin](https://github.com/aws/eks-node-monitoring-agent/blob/main/tools/kubectl-ekslogs/README.md).

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