VMware ESX Remote Logging
Speziell beim Einsatz vom VMware ESXi sollte man sich Gedanken über die Speicherung der Syslog Meldungen machen, da diese sonst im Ernstfall nicht zur Verfügung stehen.
Dazu gibt es prinzipiell zwei Möglichkeiten, die auch parallel genutzt werden können.
- Lokales Logging auf einen Datastore
Das lokale Logging kann am ESX in den Erweiterten Einstellungen (Konfiguration -> Software -> Erweiterte Einstellungen) konfiguriert werden. Die Option heißt:Syslog.Local.DatastorePathSet-VMHostAdvancedConfiguration -VMHost (get-vmhost "ESX1" -Name "Syslog.Local.DatastorePath" -Value "[Datastore] messages.log
- Remote Logging
Hier sind wieder zwei Möglichkeiten denkbar, wobei ich hier nur letztere kurz beschreibe- Nutzung der vi-Logger Funktionalität der vMA (vSphere Management Appliance)
- Remote Syslog
Das Remote-Logging kann am ESX in den Erweiterten Einstellungen (Konfiguration -> Software -> Erweiterte Einstellungen) konfiguriert werden. Die Option heißt: Syslog.Remote.Hostname
Im Einfachsten Fall dort die IP-Adresse des Remote Log Hosts eintragen.
Oder per PowerCLI:
Set-VMHostAdvancedConfiguration -VMHost (get-vmhost "ESX1" -Name "Syslog.Remote.Hostname" -Value "[Datastore] messages.log
Auf dem Zielsystem ist die Konfiguration abhängig vom verwendeten Syslog Daemon.
Am Beispiel rsyslogd:
Zunächst muss der Empfang von Syslog Messages per UDP oder TCP aktivert werden. Dazu wird die Datei /etc/rsyslog.conf angepasst.
# UDP Empfang
$ModLoad imudp
$UDPServerRun 514# TCP Empfang
#$ModLoad imtcp
#$InputTCPServerRun 514
Da es aber mit der Zeit recht unübersichtlich wird, wenn sich die Meldungen der ESX Server und die des Syslog Servers miteinander vermischen, kann pro System auch eine eigene Datei angelegt werden. Dazu legt man zunächst unter /etc/rsyslog.d/ eine neue Datei 40-RemoteLog.conf mit folgendem Inhalt an:
$template DynaFile,"/var/log/system-%HOSTNAME%.log"
:source , isequal , "esx1" ?DynaFile
:source , isequal , "esx1" ~
Die zweite Zeile erwirkt die Umleitung der Meldungen in das neue Logfile, die dritte Zeile beendet die weitere Bearbeitung (sonst würden die Logmeldungen ja doch wieder in der messages des Syslog Servers landen).
Ob alles funktioniert findet man durch warten (bis der ESXi was loggt) oder durch den Befehl logger Testmeldung an der ESXi Konsole heraus.