VMware ESXi ist ein Hypervisor, der ähnlich wie andere Betriebssysteme und Softwareprodukte Protokolldateien schreibt. Wir haben kürzlich die nützlichsten VMware-Protokolle in einem Blogbeitrag behandelt, und dieser Beitrag erweitert die Konfiguration. Nach der Installation von ESXi werden Protokolldateien im Standardverzeichnis gespeichert. Sie können jedoch den VMware-Protokollspeicherort ändern, wenn erforderlich. In diesem Blogbeitrag wird erläutert, wie Sie den ESXi-Protokollspeicherort in der Befehlszeile und in der grafischen Benutzeroberfläche (GUI) ändern können.
Warum müssten Sie den VMware-Protokollspeicherort ändern?
VMware ESXi-Protokolle werden standardmäßig nach einem ESXi-Host-Neustart gelöscht. Wenn Sie nicht möchten, dass VMware ESXi-Protokolle nach jedem Host-Neustart gelöscht werden, können Sie den VMware-Protokollspeicherort auf einem ESXi-Host von der Standard-Scratch-Partition auf persistenten Speicher wie ein Verzeichnis auf einem Datenspeicher ändern.
Der erste Ansatz zur Konfiguration von VMware ESXi zum Speichern von Protokollen auf permanentem Speicher wie einem Datenspeicher besteht darin, einen persistenten Scratch-Bereich einzurichten. Standardmäßig verwendet ESXi ein im Arbeitsspeicher befindliches Dateisystem (tmpfs) für den Scratch-Bereich, was bedeutet, dass Protokolle beim Neustart verloren gehen. Mit persistentem Scratch-Speicher werden Protokolle jedoch über Neustarts hinweg aufbewahrt und in einem festgelegten Datenspeicher gespeichert.
Der zweite Ansatz besteht darin, die Scratch-Partitionkonfiguration beizubehalten, aber den Pfad zur Speicherung von Protokolldateien von der Scratch-Partition zu einem persistenten Datenspeicher zu ändern. Diesen Ansatz verwenden wir in unserem Beispiel.
Sie können den Speicherort der VMware ESXi-Systemprotokolle in der ESXi-Befehlszeile und in der GUI mithilfe des VMware vSphere Client ändern.
Ändern Sie den ESXi-Protokollspeicherort über die Kommandozeile
Führen Sie die folgenden Schritte aus, um den ESXi-Protokollspeicherort in der Kommandozeile zu ändern:
- Identifizieren Sie zunächst den Datastore, auf dem Sie die Protokolle speichern möchten. Stellen Sie sicher, dass der Datastore ausreichend freien Speicherplatz hat, um die Protokolldateien aufzunehmen.
- Aktivieren Sie SSH und stellen Sie eine Verbindung zum ESXi-Host her. Verwenden Sie einen SSH-Client (z. B. PuTTY), um eine Verbindung zum Management-IP-Adress des ESXi-Hosts herzustellen.
- Überprüfen Sie die aktuelle Scratch-Konfiguration und den Speicherort der VMware-Protokolle. Führen Sie das folgende Kommando aus, um die aktuelle Konfiguration für das Speichern von VMware-Protokollen zu überprüfen:
esxcli system syslog config get
Wie Sie in unserem in der Abbildung angezeigten Ausgabe sehen können, ist /scratch/log die lokale Protokollausgabe.
- Sie können auch das folgende Kommando verwenden, um Informationen über die aktuelle Scratch-Konfiguration anzuzeigen:
vim-cmd hostsvc/advopt/view ScratchConfig.ConfiguredScratchLocation
- Erstellen Sie ein Verzeichnis auf dem Datenspeicher. Verwenden Sie den folgenden Befehl, um ein Verzeichnis auf dem ausgewählten Datenspeicher zu erstellen, in dem Sie die Protokolle speichern möchten:
mkdir /vmfs/volumes/<datastore_name>/log
Ersetzen Sie <datastore_name> durch den Namen des Datenspeichers (datastore10a in unserem Fall).
In unserem Fall lautet der Befehl:
mkdir /vmfs/volumes/datastore10a/log
- Setzen Sie den neuen Speicherort für VMware-Protokolle fest. Sie können ein Verzeichnis auf einem Datenspeicher des lokalen oder entfernten ESXi-Hosts mit dem Befehl wie folgt festlegen:
esxcli system syslog config set --logdir=/vmfs/directory/path --loghost='tcp://hostname:514'
Wir haben das kürzlich erstellte Verzeichnis auf Datastore10a auf unserem lokalen ESXi-Host als neuen Speicherort für VMware-Protokolle festgelegt mit dem Befehl:
esxcli system syslog config set --logdir=/vmfs/volumes/Datastore10a/log
Wenn Sie einen Fehler wie „Logdir muss vorhanden sein und ein Verzeichnis sein“ sehen, wenn das erforderliche Verzeichnis bereits vorhanden ist, versuchen Sie, anstelle eines benutzerfreundlichen Datenspeichernamens die UUID des Datenspeichers (Partition) zu verwenden. Der einfachste Weg, um die UUID des Datenspeichers zu überprüfen, besteht darin, zum Datenspeicherverzeichnis zu navigieren:
cd /vmfs/volumes/Datastore10a/
Sehen Sie sich den Pfad des aktuellen Verzeichnisses an, in dem Sie die UUID des Datenspeichers (Partition) sehen sollten. In unserem Fall ist die UUID von datastore10a 609a545a-50d29185-ffbb-000c293004f2.
Führen Sie den Befehl aus, um den neuen Protokollspeicherort festzulegen, indem Sie die UUID des Datenspeichers anstelle des Datenspeichernamens im Pfad verwenden:
esxcli system syslog config set --logdir=/vmfs/volumes/609a545a-50d29185-ffbb-000c293004f2/log
Der Befehl wurde erfolgreich ausgeführt.
- Neuladen Sie das Syslog, um die neuen Einstellungen anzuwenden und Protokolle an einem persistenten Speicherort zu schreiben, der sich in einem Verzeichnis auf dem Datenspeicher befindet:
esxcli system syslog reload
Nach dem Neuladen speichert ESXi seine Protokolle im angegebenen Verzeichnis auf dem festgelegten Datenspeicher. Dadurch werden die Protokolle über Neustarts hinweg erhalten und bieten eine dauerhaftere und zuverlässigere Speicherlösung für Protokolldateien.
Ändern Sie den ESXi-Protokollspeicherort mit dem VMware vSphere Client
Führen Sie die folgenden Schritte aus, um den ESXi-Protokollspeicherort im vCenter GUI mit dem VMware vSphere Client zu ändern:
- Wählen Sie die Ansicht Hosts und Cluster aus und wählen Sie den benötigten ESXi-Host im Navigationsbereich (der sich links von der Benutzeroberfläche befindet).
- Klicken Sie auf die Registerkarte Konfigurieren und dann auf Erweiterte Systemeinstellungen im System-Abschnitt des Konfigurationsbereichs.
- Suchen Sie den Schlüssel Syslog.global.logDir zum Konfigurieren. In unserem Fall befindet sich dieser Schlüssel auf Seite 31.
Klicken Sie auf Bearbeiten, um den Wert für den Schlüssel Syslog.global.logDir zu ändern.
- A new window to edit advanced system settings opens.
Ändern Sie den Standardwert /scratch/log in den benutzerdefinierten Wert, der ein Verzeichnis auf Ihrem Datenspeicher sein kann, und klicken Sie auf OK, um die Einstellungen zu speichern.
Ändern des ESXi-Protokollspeicherorts im VMware Host Client
Wenn Sie keinen vCenter Server haben oder einen eigenständigen ESXi-Host verwenden, können Sie den ESXi-Protokollspeicherort im VMware Host Client ändern:
- Geben Sie die IP-Adresse eines ESXi-Hosts in einen Webbrowser ein und melden Sie sich beim VMware Host Client an.
- Wechseln Sie zu Host> Verwalten > System > Erweiterte Einstellungen.
- Suchen Sie den Syslog.global.logDir Schlüssel in der Liste der Optionen.
- Wählen Sie den Syslog.global.logDir Schlüssel aus und klicken Sie auf die Option Bearbeiten.
- Geben Sie einen neuen Wert für den ESXi-Protokollspeicherort im entsprechenden Feld ein und klicken Sie auf Speichern.
So ändern Sie den ESXi-Protokollspeicherort in PowerCLI
Wenn Sie vSphere PowerCLI mögen, das eine Befehlszeilenschnittstelle auf der Basis von Windows PowerShell ist, können Sie die folgenden Möglichkeiten in Betracht ziehen, um den VMware ESXi-Hostprotokollspeicherort zu ändern. Es gibt drei Szenarien.
Ändern Sie den ESXi-Protokollspeicherort auf einem eigenständigen Host
- Öffnen Sie PowerCLI und melden Sie sich bei einem ESXi-Server mit administrativen Anmeldeinformationen an:
Connect-VIServer -Server <ESXiHostIPAddress> -User <Benutzername> -Password <Passwort>
- Setzen Sie den neuen ESXi-Protokollspeicherort in PowerCLI:
Set-VMHostAdvancedConfiguration -VMHost <HostNameOderIPAddress> -Name "Syslog.global.logDir" -Wert "[<DatastoreName>] <Pfad>"
Ersetzen Sie <DatastoreName> durch den Namen des Datenspeichers, in dem Sie die Protokolle speichern möchten, und <Pfad> durch den neuen Verzeichnispfad für die Protokolle.
Ändern des ESXi-Protokollspeicherorts für mehrere ESXi-Hosts ohne vCenter
Wenn Sie mehrere ESXi-Hosts haben, die jedoch nicht von vCenter verwaltet werden, führen Sie folgende Schritte aus:
- Erstellen Sie eine Liste der ESXi-Hosts. Erstellen Sie eine Textdatei, die jeden Host mit seiner IP-Adresse oder seinem Hostnamen auflistet, jeweils eine pro Zeile (zum Beispiel hosts.txt).
-
$hosts = Get-Content -Path "C:\Pfad\zu\hosts.txt"
foreach ($host in $hosts) {
Connect-VIServer -Server $host -User <Benutzer> -Password <Passwort>
Set-VMHostAdvancedConfiguration -VMHost $host -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Pfad>"
Disconnect-VIServer -Server $host -Confirm:$false
}
Geben Sie die benötigten Werte basierend auf Ihrer Umgebung und Infrastruktur ein.
Ändern des ESXi-Protokollspeicherorts für mehrere Hosts mit vCenter
Wenn Ihre ESXi-Hosts von vCenter verwaltet werden, können Sie den ESXi-Protokollspeicherort in PowerShell wie folgt ändern:
- Verbinden Sie sich mit dem vCenter Server in PowerCLI:
Connect-VIServer -Server <vCenterHostNameOrIPAddress> -User <Benutzer> -Password <Passwort>
- Setzen Sie den ESXi-Protokollspeicherort für alle von vCenter verwalteten Hosts:
Get-VMHost | ForEach-Object {
Set-VMHostAdvancedConfiguration -VMHost $_ -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Pfad>"
}
Geben Sie die erforderlichen Werte ein, wenn Sie Befehle ausführen, um die Konfiguration Ihrer Umgebung anzupassen.
Abschluss
Die Verwendung von persistentem Speicher für ESXi-Protokolle ermöglicht es Ihnen, diese Protokolle nach dem Neustart von ESXi zu erhalten. Sie können den ESXi-Protokollspeicherort über die Befehlszeile und die grafische Benutzeroberfläche ändern. Wenn ein ESXi-Host von vCenter Server verwaltet wird, können Sie den VMware vSphere Client verwenden. Wenn ein ESXi-Host nicht von vCenter verwaltet wird, verwenden Sie die ESXi-Befehlszeile oder den VMware Host Client. Organisationen mit großen virtuellen Umgebungen können einen Protokollserver mit einem freigegebenen Datenspeicher konfigurieren, um ESXi-Protokolle mehrerer Hosts auf diesem Server zu schreiben.
Source:
https://www.nakivo.com/blog/change-vmware-esxi-logs-location/