Übermittlung von Steuerebenen-Protokollen an CloudWatch Logs - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

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

Übermittlung von Steuerebenen-Protokollen an CloudWatch Logs

Die Protokollierung der Amazon-EKS-Steuerebene bietet Prüf- und Diagnoseprotokolle direkt von der Amazon-EKS-Steuerebene zu CloudWatch Logs in Ihrem Konto. Diese Protokolle erleichtern Ihnen die Absicherung und Ausführung Ihrer Cluster. Sie können die Protokolltypen auswählen, die Sie benötigen. Die Protokolle werden für jeden Amazon-EKS-Cluster in CloudWatch als Protokollstreams an eine Gruppe gesendet. Sie können CloudWatch-Abonnementfilter verwenden, um Echtzeitanalysen der Protokolle durchzuführen oder diese an andere Services weiterzuleiten (die Protokolle werden Base64-codiert und im gzip-Format komprimiert). Weitere Informationen finden Sie unter in der Amazon-CloudWatch-Protokollierung.

Sie können mit der Protokollierung der Amazon-EKS-Steuerebene beginnen, indem Sie die für jeden neuen oder bestehenden Amazon-EKS-Cluster zu aktivierenden Protokolltypen auswählen. Sie können die einzelnen Protokolltypen pro Cluster über die AWS-Managementkonsole, AWS CLI (Version 1.16.139 oder höher) oder die Amazon-EKS-API aktivieren oder deaktivieren. Wenn aktiviert, werden die Protokolle automatisch vom Amazon-EKS-Cluster an CloudWatch Logs im selben Konto gesendet.

Wenn Sie die Protokollierung der Amazon-EKS-Steuerebene verwenden, werden Ihnen für jeden betriebenen Cluster die Amazon-EKS-Standardpreise berechnet. Für alle Protokolle, die von Ihren Clustern an CloudWatch Logs gesendet werden, werden Ihnen die standardmäßigen CloudWatch-Logs-Datenaufnahme- und -speicherkosten in Rechnung gestellt. Ihnen werden außerdem alle als Teil Ihres Clusters bereitgestellten AWS-Ressourcen (z. B. Amazon-EC2-Instances oder Amazon-EBS-Volumes) berechnet.

Die folgenden Cluster-Steuerebenen-Protokolltypen sind verfügbar. Jeder Protokolltyp entspricht einer Komponente der Kubernetes-Steuerebene. Um mehr über diese Komponenten zu erfahren, lesen Sie Kubernetes-Komponenten in der Kubernetes-Dokumentation.

API-Serverapi ()

Der API-Server Ihres Clusters ist die Steuerebenen-Komponente, welche die Kubernetes-API bereitstellt. Wenn Sie API-Serverprotokolle beim Starten des Clusters oder kurz danach aktivieren, enthalten die Protokolle API-Server-Markierungen, die zum Starten des API-Servers verwendet wurden. Weitere Informationen finden Sie unter kube-apiserver und in der Prüfungsrichtlinie in der Kubernetes-Dokumentation.

Prüfungaudit ()

Kubernetes-Auditprotokolle bieten eine Aufzeichnung der einzelnen Benutzer, Administratoren oder Systemkomponenten, die Ihren Cluster beeinflusst haben. Weitere Informationen finden Sie unter Prüfung in der Kubernetes-Dokumentation.

Authenticatorauthenticator ()

Authenticator-Protokolle sind eindeutig für Amazon EKS. Diese Protokolle stellen die Steuerebenenkomponente dar, die Amazon EKS für die Kubernetes-Authentifizierung per rollenbasierter Zugriffssteuerung (RBAC) mit IAM-Anmeldeinformationen verwendet. Weitere Informationen finden Sie unter Organisieren und Überwachen von Cluster-Ressourcen.

Controller-ManagercontrollerManager ()

Der Controller-Manager verwaltet die zentralen Regelkreise, die mit Kubernetes ausgeliefert werden. Weitere Informationen finden Sie unter kube-controller-manager in der Kubernetes-Dokumentation.

Schedulerscheduler ()

Die Planer-Komponente verwaltet, wann und wo Pods in Ihrem Cluster ausgeführt werden. Weitere Informationen finden Sie unter kube-scheduler in der Kubernetes-Dokumentation.

Aktivierung oder Deaktivierung der Steuerebenen-Protokolle

Standardmäßig werden Protokolle der Cluster-Steuerebene nicht an CloudWatch Logs gesendet. Sie müssen jeden Protokolltyp einzeln aktivieren, um Protokolle für Ihren Cluster zu senden. CloudWatch Logs-Aufnahme, -Archivspeicher, und -Datenscanraten gelten für aktivierte Protokolle der Steuerungsebene. Weitere Informationen hierzu finden Sie unter Amazon CloudWatch – Preise.

Um die Protokollierungskonfiguration der Steuerebene zu aktualisieren, benötigt Amazon EKS bis zu fünf verfügbare IP-Adressen in jedem Subnetz. Wenn Sie einen Protokolltyp aktivieren, werden die Protokolle mit der Protokollausführungsstufe 2 gesendet.

Sie können Steuerebenen-Protokolle entweder mit AWS-Managementkonsole oder der AWS-CLI aktivieren oder deaktivieren.

AWS-Managementkonsole

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie den Namen des Clusters aus, um Ihre Cluster-Informationen anzuzeigen.

  3. Wählen Sie den Registerkarte Beobachtbarkeit.

  4. Wählen Sie im Abschnitt Steuerebenen-Protokollierung die Option Protokollierung verwalten aus.

  5. Wählen Sie für jeden Protokolltyp aus, ob er aktiviert oder deaktiviert sein soll. Standardmäßig sind alle Protokollierungstypen deaktiviert.

  6. Wählen Sie Änderungen speichern, um den Vorgang abzuschließen.

AWS-CLI

  1. Sie können Ihre AWS-CLI-Version mit dem folgenden Befehl überprüfen.

    aws --version

    Bei einer AWS-CLI-Version vor 1.16.139 müssen Sie zunächst auf die neueste Version aktualisieren. Informationen zum Installieren oder Aktualisieren der AWS-CLI finden Sie unter Installation der AWS-Befehlszeilenschnittstelle im Benutzerhandbuch zur AWS-Befehlszeilenschnittstelle.

  2. Aktualisieren Sie die Exportkonfiguration des Steuerebenen-Protokolls Ihres Clusters mit dem folgenden AWS-CLI-Befehl. Ersetzen Sie my-cluster durch den Namen Ihres Clusters und geben Sie die gewünschten Endpunkt-Zugriffswerte ein.

    Anmerkung

    Der folgende Befehl sendet alle verfügbaren Protokolltypen an CloudWatch Logs.

    aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}'

    Eine Beispielausgabe sieht wie folgt aus.

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "InProgress", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }
  3. Überwachen Sie den Status Ihres Protokoll-Konfigurationsupdates mit dem folgenden Befehl unter Verwendung des Cluster-Namens und der Update-ID, die vom vorherigen Befehl zurückgegeben wurden. Ihre Aktualisierung ist abgeschlossen, wenn als Status Successful angezeigt wird.

    aws eks describe-update \ --region region-code\ --name my-cluster \ --update-id 883405c8-65c6-4758-8cee-2a7c1340a6d9

    Eine Beispielausgabe sieht wie folgt aus.

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "Successful", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }

Cluster-Steuerebenen-Protokolle anzeigen

Nachdem Sie Steuerebenen-Protokolltypen für Ihren Amazon-EKS-Cluster aktiviert haben, können Sie diese in der CloudWatch-Konsole einsehen.

Weitere Informationen zum Anzeigen, Analysieren und Verwalten von Protokollen in CloudWatch finden Sie im Amazon-CloudWatch-Logs-Benutzerhandbuch.

  1. Öffnen Sie die CloudWatch-Konsole. Der Link öffnet die Konsole und zeigt Ihre aktuell verfügbaren Protokollgruppen an und filtert sie mit dem /aws/eks-Präfix.

  2. Wählen Sie den Cluster aus, für den Sie die Protokolle anzeigen möchten. Das Format für den Namen der Protokollgruppen lautet /aws/eks/my-cluster/cluster.

  3. Wählen Sie den anzuzeigenden Protokollstream aus. Die folgende Liste beschreibt das Namensformat des Protokollstreams der einzelnen Protokolltypen.

    Anmerkung

    Wenn die Daten des Protokollstreams ansteigen, werden die Namen des Protokollstreams rotiert. Wenn mehrere Protokollstreams für einen bestimmten Protokolltyp vorhanden sind, können Sie den neuesten Protokollstream anzeigen, indem Sie nach dem Namen des Protokollstreams mit der letzten Last event time (Uhrzeit des letzten Ereignisses) suchen.

    • Kubernetes-API-Server-Komponentenprotokolle (api)kube-apiserver-1234567890abcdef01234567890abcde

    • Prüfung (audit)kube-apiserver-audit-1234567890abcdef01234567890abcde

    • Authentifikator (authenticator)authenticator-1234567890abcdef01234567890abcde

    • Controller-Manager (controllerManager)kube-controller-manager-1234567890abcdef01234567890abcde

    • Scheduler (scheduler)kube-scheduler-1234567890abcdef01234567890abcde

  4. Sehen Sie sich die Ereignisse des Protokollstreams an.

    Sie sollten beispielsweise die anfänglichen API-Server-Flags für den Cluster sehen, wenn Sie den oberen Teil von kube-apiserver-1234567890abcdef01234567890abcde anzeigen.

    Anmerkung

    Wenn die API-Serverprotokolle am Anfang des Protokollstreams nicht angezeigt werden, ist es wahrscheinlich, dass die API-Serverprotokolldatei auf dem Server rotiert wurde, bevor Sie die API-Serverprotokollierung auf dem Server aktiviert haben. Alle Protokolldateien, die rotiert werden, bevor die API-Serverprotokollierung aktiviert wird, können nicht nach CloudWatch exportiert werden.

Sie können jedoch einen neuen Cluster mit derselben Kubernetes-Version erstellen und beim Erstellen des Clusters die API-Serverprotokollierung aktivieren. Für Cluster mit derselben Plattformversion sind dieselben Flags aktiviert, daher sollten Ihre Flags mit den Flags des neuen Clusters übereinstimmen. Nachdem Sie die Flags für den neuen Cluster in CloudWatch angezeigt haben, können Sie den neuen Cluster löschen.