View a markdown version of this page

Arten der Anmeldung in Amazon EKS - AWS Präskriptive Leitlinien

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.

Arten der Anmeldung in Amazon EKS

In Amazon EKS umfasst die Protokollierung das Erfassen, Speichern und Analysieren verschiedener Arten von Protokolldaten, die von verschiedenen Komponenten des Kubernetes-Clusters generiert werden, darunter:

Um Protokolle in Ihrer Amazon EKS-Umgebung effektiv zu verwalten, verwenden Sie in der AWS-Services Regel eine Kombination aus Tools von Drittanbietern und bewährten Methoden. Dies kann die Verwendung von Amazon CloudWatch, Fluent Bit, Elasticsearch, Kibana und anderen Protokollierungs- und Analysetools zur Erfassung, Speicherung und Visualisierung von Protokolldaten beinhalten.

In den folgenden Abschnitten werden verschiedene Aspekte der Protokollierung in Amazon EKS untersucht, darunter bewährte Methoden, Tools und Techniken für die Implementierung einer umfassenden Protokollierungsstrategie in Ihren Kubernetes-Clustern auf. AWS

Systemprotokolle

Die Protokollierung für zugrunde liegende EC2-Instances oder Fargate-Knoten in Amazon EKS umfasst je nach Knotentyp unterschiedliche Ansätze.

Um die Protokollierung für EC2-Instances in Amazon EKS zu implementieren, können Sie die folgenden Tools verwenden:

  • CloudWatch Agent: Installieren und konfigurieren Sie den CloudWatch Agenten auf Ihren EC2-Instances. Konfigurieren Sie ihn so, dass Systemprotokolle wie /var/log/messages und /var/log/secure gesammelt werden. Sie können Benutzerdatenskripts oder Konfigurationsmanagement-Tools verwenden, um diesen Prozess zu automatisieren.

  • Fluent Bit: Stellen Sie Fluent Bit bereit, DaemonSet um Protokolle von allen Knoten zu sammeln. Konfigurieren Sie es so, dass Protokolle an CloudWatch Logs oder andere zentrale Protokollierungssysteme weitergeleitet werden.

  • Container Insights: Aktivieren Sie Container Insights in Ihrem EKS-Cluster, um automatisch Metriken und Protokolle von EC2-Instances zu sammeln.

  • Benutzerdefinierte Skripts: Entwickeln Sie benutzerdefinierte Skripts, um bestimmte Protokolle zu sammeln und sie an Ihr bevorzugtes Logging-Ziel zu senden.

  • SSM-Agent: Verwenden Sie den AWS Systems Manager Agenten (SSM-Agent), um Protokolle zu sammeln und an Logs CloudWatch weiterzuleiten.

Verwenden Sie die folgenden Tools, um die Protokollierung für Fargate-Knoten in Amazon EKS zu implementieren:

  • Fargate-Logging: Fargate sammelt stdout und stderr protokolliert automatisch Ihre Container. Konfigurieren Sie Ihr Fargate-Profil, um diese Protokolle an Logs zu CloudWatch senden.

  • Fluent Bit for Fargate: AWS bietet ein Fluent Bit-Bild speziell für die Fargate-Protokollierung. Setze ihn als Beiwagencontainer in deinen Fargate-Pods ein, um Logs zu sammeln und weiterzuleiten.

  • Container Insights für Fargate: Aktivieren Sie Container Insights, um Metriken und Protokolle von Fargate-Knoten zu sammeln.

Protokolle der Kubernetes-Komponenten

Das Sammeln von Protokollen aus Kubernetes-Komponenten wie dem API-Server, dem Scheduler und dem Controller-Manager in Amazon EKS erfordert einen etwas anderen Ansatz als die Anwendungsprotokollierung. Diese Komponenten werden als Teil der Amazon EKS-Steuerebene ausgeführt, die von verwaltet wird AWS. So können Sie diese Protokolle sammeln und darauf zugreifen:

  • Protokollierung auf Kontrollebene aktivieren: Sie können die Protokollierung der Kontrollebene für Ihren EKS-Cluster über die Tools AWS-Managementkonsole, AWS Command Line Interface (AWS CLI) oder Infrastructure as Code (IaC) wie AWS CloudFormationoder Terraform aktivieren. Wenn Sie die Protokollierung auf der Kontrollebene aktivieren, werden die Protokolle an Amazon CloudWatch Logs gesendet. Sie können sie in der CloudWatch Konsole in der /aws/eks/<cluster-name>/cluster Protokollgruppe anzeigen. Innerhalb dieser Protokollgruppe hat jede Komponente der Steuerungsebene ihren eigenen Protokollstream wie folgt:

    Name des Datenstroms Description
    Kube-Apiserver Kubernetes-API-Serverprotokolle
    Kube-Scheduler Entscheidungsprotokolle des Schedulers
    kube-controller-manager Controller-Manager-Protokolle
    Authentifikator IAM-Authentifikator-Protokolle
    audit Kubernetes-Audit-Logs (müssen explizit aktiviert werden)

    Um Logs für eine bestimmte Komponente anzuzeigen, navigieren Sie zur Cluster-Log-Gruppe und filtern Sie nach dem Namen des Ziel-Log-Streams.

  • CloudWatch Logs Insights verwenden: Sie können CloudWatch Logs Insights verwenden, um komplexe Abfragen in Ihren Logs durchzuführen.

  • Protokolle nach Amazon S3 exportieren: Für die langfristige Speicherung oder weitere Analysen können Sie Protokolle nach Amazon Simple Storage Service (Amazon S3) exportieren.

  • Verwenden Sie Tools von Drittanbietern: Sie können Tools wie Fluent Bit verwenden, um diese Protokolle zu sammeln und an andere Protokollierungssysteme wie Elasticsearch oder Splunk weiterzuleiten.

  • Verwendung AWS CloudTrail: Der AWS CloudTrailService kann zusätzliche Einblicke in API-Aufrufe an Ihren EKS-Cluster bieten.

Container-Laufzeitprotokolle

Das Protokollieren von Container-Laufzeitprotokollen in Amazon EKS beinhaltet das Erfassen und Verwalten von Protokollen aus der Container-Laufzeit, was in der Regel containerd für Amazon EKS gilt. So können Sie die Protokollierung von Container-Laufzeitprotokollen in Amazon EKS angehen:

  • Greifen Sie direkt auf die Protokolle auf Amazon EC2 EC2-Knoten zu. Bei selbstverwalteten EC2-Knoten können Sie von diesen Speicherorten aus direkt auf die Container-Laufzeitprotokolle auf dem Host zugreifen:

    • containerdProtokolle: /var/log/containers/

    • Docker-Logs (wenn Sie die Docker-Laufzeit verwenden): /var/log/docker.log

  • Verwenden Sie a DaemonSet für die Protokollerfassung.

  • Stellen Sie einen Protokollerfassungsagenten (z. B. Fluent Bit) bereit DaemonSet , um Protokolle von allen Knoten zu sammeln.

  • Konfigurieren Sie den CloudWatch Agenten so, dass er Container-Laufzeitprotokolle sammelt.

  • Aktivieren Sie Container Insights, um Metriken und Logs zur Container-Laufzeit zu sammeln.

  • Benutze Fargate. Für Fargate-Knoten werden Container-Laufzeitprotokolle automatisch gesammelt und können über CloudWatch Logs abgerufen werden.

  • Implementieren Sie benutzerdefinierte Logging-Lösungen mithilfe von Tools wie Fluent Bit oder Logstash. Richten Sie CloudWatchAlarme ein oder verwenden Sie Tools wie Prometheus, um in Container-Laufzeitprotokollen nach bestimmten Mustern oder Problemen zu suchen. Erwägen Sie die Verwendung von Protokollierungslösungen von Drittanbietern, die sich gut in Kubernetes und Amazon EKS integrieren lassen, wie Datadog, Splunk oder den Elastic Stack (ELK Stack). Verwenden Sie Tools zur Protokollaggregation, um Protokolle aus mehreren Quellen zu sammeln und sie an ein zentrales Protokollierungssystem weiterzuleiten.

Anwendungsprotokolle

Anwendungsprotokolle in Amazon EKS sind ein wichtiger Bestandteil der Wartung und Fehlerbehebung Ihrer Anwendungen. Um die Anwendungsprotokollierung in Amazon EKS zu implementieren, können Sie aus den folgenden Optionen wählen:

  • Protokolle nachstdout/schreibenstderr: Die einfachste und Kubernetes-systemativste Methode, Anwendungsprotokolle zu verarbeiten, besteht darin, sie in und zu schreiben. stdout stderr Kubernetes erfasst diese Streams automatisch.

  • Implementieren Sie die Protokollaggregation: Verwenden Sie einen Log-Aggregator wie Fluent Bit, um Logs von all Ihren Pods zu sammeln.

  • Log-Routing konfigurieren: Konfigurieren Sie Ihren Log-Aggregator so, dass Logs an Ihr gewünschtes Ziel weitergeleitet werden (wie CloudWatch Logs oder Elasticsearch).

  • CloudWatch Container Insights verwenden: Aktivieren Sie Container Insights für eine umfassende Protokollierung und Überwachung.