Verschiedene Dienste erzeugen Protokolle automatisch. Sie können Protokollpakete in VMware Aria Automation generieren. Sie können Ihre Umgebung auch so konfigurieren, dass Protokolle an VMware Aria Operations for Logs 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 VMware Aria Operations for Logs finden Sie unter Vorgehensweise zum Konfigurieren der Protokollweiterleitung zu VMware Aria Operations for Logs in VMware Aria 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
odervro
verbrauchten Festplattenspeichers führen Sie den folgendenvracli
-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.
- 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 Containervco-server-app
undvco-controlcenter-app
.
- (Veraltet) Pod-Protokolle
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.
- --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
- 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 VMware Aria 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)