Konfigurieren der Protokolldateien, die vom Agenten gesammelt werden

Wenn Sie den Logging-Agenten einsetzen oder aktualisieren, können Sie die Datei logs-values.yaml so konfigurieren, dass sie die vom Agenten zu verarbeitenden Protokolle ein- und ausschließt. Standardmäßig sammelt der Agent die Protokolle von /var/log/containers/*.log und ignoriert /var/log/at/*.

Nachdem Sie die logs-values.yaml geändert haben, können Sie den Agenten aktualisieren oder die Datei weiter bearbeiten, bevor Sie alle Änderungen übernehmen.

Konfigurieren von benutzerdefinierten Protokolldateien

Die folgenden zusätzlichen Variablen können angegeben werden, um die vom Agenten zu verarbeitenden Protokolle ein- und auszuschließen:

  • excludeLogSourcePaths: Liste der Dateien, für die der Agent so konfiguriert ist, dass er sie ignoriert. Der Standardwert wird auf "ignorieren" gesetzt /var/log/at/*
  • selectedLogSourcePaths: Liste der Dateien, die der Agent sammelt und an IBM Cloud Logs sendet. Der Standardwert ist auf /var/log/containers/*.log eingestellt. Sie können mehrere Pfade definieren, indem Sie eine durch Komma getrennte Liste verwenden, zum Beispiel /var/log/abc/*.log,/var/log/xyz/*.log.

Der Eintrag in der Datei logs-values.yaml sieht wie folgt aus:

# comma separated list, for example “/var/log/abc/*.log,/var/log/xyz/*.log”
excludeLogSourcePaths: ""
selectedLogSourcePaths: ""

Konfigurieren von Systemkomponentenprotokollen

Systemkomponentenprotokolle zeichnen Ereignisse auf, die im Cluster auftreten. Es gibt zwei Arten von Systemkomponenten: Systemkomponenten, die in einem Container laufen, und Systemkomponenten, die direkt an der Ausführung von Containern beteiligt sind. Kubelet und Container-Runtime laufen beispielsweise nicht in Containern. Der Kubernetes Scheduler, der Controller Manager und der API-Server werden innerhalb von Pods ausgeführt. Wenn Ihr Cluster kube-proxy verwendet, führen Sie dies normalerweise als DaemonSet aus.

Verwenden Sie die Einstellung systemLogs, um die Verarbeitung von Systemkomponentenprotokollen zu aktivieren, die sich im Verzeichnis /var/log befinden. Systemprotokolle in /var/log/containers/ werden automatisch gesammelt, es sei denn, Sie schließen sie im Abschnitt excludeLogSourcePaths aus.

Der Eintrag in der Datei logs-values.yaml sieht wie folgt aus:

systemLogs:
  - /var/log/kube-apiserver.log. # Logs generated by the API server.
  - /var/log/kube-scheduler.log # Logs generated by the scheduler. This component is responsible for making scheduling decisions.
  - /var/log/kube-controller-manager.log # Logs generated by the Kube controller manager that runs most Kubernetes built-in controllers.
  - /var/log/kube-proxy.log  # Logs generated by the kube-proxy. This component is responsible for directing traffic to Service endpoints.
  - /var/log/kubelet.log  # Logs generated by the kubelet. This component is responsible for running containers on the node.
  - /var/log/syslog

Standardmäßig wird der Parser kube_syslog verwendet.

Bei einigen klassischen Kubernetes Clustern muss systemLogsParser möglicherweise auf kube_syslog_classic gesetzt werden, um dem Zeitstempelformat auf diesen Systemen zu entsprechen. Sie können die Option systemLogsParser verwenden, um einen anderen Parser zu wählen. Der Eintrag in der Datei logs-values.yaml sieht wie folgt aus:

systemLogsParser: "kube_syslog_classic"
systemLogs:
  - /var/log/syslog