Verschiedene Dienste erzeugen Protokolle automatisch. Sie können Protokollpakete in vRealize Automation generieren. Sie können Ihre Umgebung auch so konfigurieren, dass Protokolle an vRealize Log Insight gesendet werden.

Verwenden Sie das Argument --help in der vracli-Befehlszeile (z. B. vracli log-bundle --help), um Informationen zum vracli-Befehlszeilendienstprogramm zu erhalten.

Verwandte Informationen zur Verwendung von vRealize Log Insight finden Sie unter Vorgehensweise zum Konfigurieren der Protokollweiterleitung zu vRealize Log Insight in vRealize Automation.

Protokollpaketbefehle

Sie können ein Protokollpaket erstellen, das alle Protokolle enthält, die von den von Ihnen ausgeführten Diensten generiert werden. Ein Protokollpaket enthält alle Dienstprotokolle. Sie können ein Protokollpaket für die Fehlerbehebung verwenden.

Führen Sie in einer geclusterten Umgebung (Hochverfügbarkeitsmodus) den Befehl vracli log-bundle auf nur einem Knoten aus. Protokolle werden aus allen Knoten in der Umgebung abgerufen. Bei einem Netzwerkproblem oder einem anderen Clusterproblem werden Protokolle jedoch aus allen Knoten abgerufen, die erreicht werden können. Wenn beispielsweise ein Knoten in einem Cluster mit drei Knoten getrennt ist, werden Protokolle nur von den beiden fehlerfreien Knoten erfasst. Die Ausgabe des Befehls vracli log-bundle enthält Informationen zu allen gefundenen Problemen und den Schritten zur Problemumgehung.

  • Um ein Protokollpaket zu erstellen, müssen Sie eine SSH-Verbindung zu einem beliebigen Knoten erstellen und folgenden vracli-Befehl ausführen:

    vracli log-bundle

  • Um den Zeitüberschreitungswert für die Erfassung von Protokollen von den einzelnen Knoten zu ändern, führen Sie den folgenden vracli-Befehl aus:

    vracli log-bundle --collector-timeout $CUSTOM_TIMEOUT_IN_SECONDS

    Wenn Ihre Umgebung beispielsweise große Protokolldateien enthält, das Netzwerk langsam oder die CPU-Auslastung hoch ist, müssen Sie den Zeitüberschreitungswert möglicherweise auf einen höheren Wert als den Standardwert von 1000 Sekunden festlegen.

  • Zur Ermittlung des von einem bestimmten Dienstprotokoll wie ebs oder vro verbrauchten Festplattenspeichers führen Sie den folgenden vracli-Befehl aus und überprüfen die Befehlsausgabe:

    vracli disk-mgr

  • Verwenden Sie zum Konfigurieren anderer Optionen, wie z. B. der Zeitüberschreitung für die Assembly und den Pufferspeicherort, folgenden vracli-Hilfebefehl:

    vracli log-bundle --help

Protokollpaketstrukturen

Das Protokollpaket ist eine TAR-Datei mit Zeitstempel. Der Paketname entspricht dem Dateimuster log-bundle-<Datum>T<Uhrzeit>.tar, z. B. log-bundle-20200629T131312.tar. Ein normales Protokollpaket enthält Protokolle aller Knoten in der Umgebung. Im Falle eines Fehlers enthält es so viele Protokolle wie möglich. Es enthält mindestens die Protokolle des lokalen Knotens.

Das Protokollpaket besteht aus folgendem Inhalt:
  • Umgebungsdatei

    Die Umgebungsdatei enthält die Ausgabe verschiedener Kubernetes-Wartungsbefehle. Sie liefert Informationen zur aktuellen Ressourcennutzung pro Knoten und pro Pod. Sie enthält außerdem Clusterinformationen und Beschreibungen für alle verfügbaren Kubernetes-Elemente.

  • Hostprotokolle und -konfiguration

    Die Konfiguration jedes einzelnen Hosts (z. B. seines /etc-Verzeichnisses) und die hostspezifischen Protokolle (z. B. journald) werden in einem Verzeichnis für jeden Clusterknoten oder Host erfasst. Der Verzeichnisname entspricht dem Hostnamen des Knotens. Die internen Inhalte des Verzeichnisses stimmen mit dem Dateisystem des Hosts überein. Die Anzahl der Verzeichnisse entspricht der Anzahl der Clusterknoten.

  • Dienstprotokolle
    Protokolle für Kubernetes-Dienste befinden sich in der folgenden Ordnerstruktur:
    • <hostname>/services-logs/<namespace>/<app-name>/file-logs/<container-name>.log
    • <hostname>/services-logs/<namespace>/<app-name>/console-logs/<container-name>.log

    Ein Beispieldateiname ist my-host-01/services-logs/prelude/vco-app/file-logs/vco-server-app.log.

    • hostname ist der Hostname des Knotens, auf dem der Anwendungscontainer ausgeführt wird oder wurde. In der Regel gibt es eine Instanz für jeden Knoten für jeden Dienst. Beispielsweise 3 Knoten = 3 Instanzen.
    • namespace ist der Kubernetes-Namespace, in dem die Anwendung bereitgestellt wird. Für benutzerorientierte Dienste ist dieser Wert prelude.
    • app-name ist der Name der Kubernetes-Anwendung, in der die Protokolle erstellt wurden (z. B. provisioning-service-app).
    • container-name ist der Name des Containers, der die Protokolle erstellt hat. Einige Apps bestehen aus mehreren Containern. Der Container vco-app enthält beispielsweise die Container vco-server-app und vco-controlcenter-app.
  • (Veraltet) Pod-Protokolle

    Vor den in vRealize Automation 8.2 vorgenommenen Änderungen an der Protokollierungsarchitektur befanden sich die Dienstprotokolle im Verzeichnis jedes Pods im Protokollpaket. Obwohl Sie mithilfe des Befehls vracli log-bundle --include-legacy-pod-logs weiterhin Pod-Protokolle im Paket erstellen können, wird davon abgeraten, da sich die Protokollinformationen bereits in den Protokollen der einzelnen Dienste befinden. Die Aufnahme von Pod-Protokollen kann die Zeit und den Speicherplatz, die zum Generieren des Protokollpakets erforderlich sind, unnötig erhöhen.

Verkleinern des Protokollpakets

Zum Erzeugen eines kleineren Protokollpakets verwenden Sie einen der folgenden vracli log-bundle-Befehle:

  • vracli log-bundle --since-days n

    Verwenden Sie diesen Befehl ausschließlich zur Erfassung der Protokolldateien, die in den letzten Tagen erzeugt wurden. Andernfalls werden Protokolle beibehalten und für die letzten 2 Tage erfasst. Beispiel:

    vracli log-bundle --since-days 1

  • vracli log-bundle --services service_A,service_B,service_C

    Verwenden Sie diesen Befehl, um nur die Protokolle für die benannten bereitgestellten Dienste zu erfassen. Beispiel:

    vracli log-bundle --services ebs-app,vco-app

  • vracli log-bundle --skip-heap-dumps

    Verwenden Sie diesen Befehl, um alle Heap-Dumps aus dem generierten Protokollpaket auszuschließen.

Anzeigen von Protokollen

Sie können die Protokolle eines Dienst-Pods oder einer App mithilfe des Befehls vracli logs <pod_name> ausgeben.

Die folgenden Befehlsoptionen sind verfügbar:
  • --service

    Zeigt ein zusammengeführtes Protokoll für alle Knoten der App anstelle eines einzelnen Pods an

    Beispiel: vracli logs --service abx-service-app

  • --tail n

    Zeigt die letzten n Zeilen des Protokolls an. Der Standardwert für n ist 10.

    Beispiel: vracli logs --tail 20 abx-service-app-8598fcd4b4-tjwhk

  • --file

    Zeigt nur die angegebene Datei an. Wenn kein Dateiname angegeben wird, werden alle Dateien angezeigt.

    Beispiel: vracli logs --file abx-service-app.log abx-service-app-8598fcd4b4-tjwhk

Verstehen der Protokollrotation

Beachten Sie bei der Rotation von Protokollen die folgenden Überlegungen zu Dienstprotokollen:
  • Alle Dienste erstellen Protokolle. Dienstprotokolle werden auf einer dedizierten /var/log/services-logs-Festplatte gespeichert.
  • Alle Protokolle werden regelmäßig rotiert. Die Rotation erfolgt entweder stündlich oder bei Erreichen einer bestimmten Größenbeschränkung.
  • Alle alten Protokollrotationen werden schließlich komprimiert.
  • Für Protokollrotationen gibt es kein Kontingent pro Dienst.
  • Das System behält so viele Protokolle wie möglich bei. Der verwendete Festplattenspeicher wird in regelmäßigen Abständen automatisch auf Protokolle überprüft. Bei einer 70-prozentigen Belegung des Speicherplatzes werden ältere Protokolle gelöscht, bis der Speicherplatz für Protokolle 60 % erreicht.
  • Sie können die Größe Ihrer Protokollfestplatte ändern, wenn Sie mehr Speicherplatz benötigen. Weitere Informationen hierzu finden Sie unter Verfügbarmachen von mehr Festplattenspeicher für die vRealize Automation-Appliance.

Zum Überprüfen des Festplattenspeichers der Protokolle führen Sie die folgenden vracli-Befehle aus. Der freie Speicherplatz von /dev/sdc(/var/log) sollte bei mindestens 30 % pro Knoten liegen.

# vracli cluster exec -- bash -c 'current_node; vracli disk-mgr; exit 0'
sc1-10-182-1-103.eng.vmware.com
/dev/sda4(/):
	Total size: 47.80GiB
	Free: 34.46GiB(72.1%)
	Available(for non-superusers): 32.00GiB(66.9%)
	SCSI ID: (0:0)
/dev/sdb(/data):
	Total size: 140.68GiB
	Free: 116.68GiB(82.9%)
	Available(for non-superusers): 109.47GiB(77.8%)
	SCSI ID: (0:1)
/dev/sdc(/var/log):
	Total size: 21.48GiB
	Free: 20.76GiB(96.6%)
	Available(for non-superusers): 19.64GiB(91.4%)
	SCSI ID: (0:2)
/dev/sdd(/home):
	Total size: 29.36GiB
	Free: 29.01GiB(98.8%)
	Available(for non-superusers): 27.49GiB(93.7%)
	SCSI ID: (0:3)