Come configurare l’ubicazione dei log VMware su ESXi
VMware ESXi è un hypervisor che, analogamente ad altri sistemi operativi e prodotti software, scrive file di log. Abbiamo trattato i log VMware più utili in un recente post sul blog e questo post ne amplia la configurazione. Dopo l’installazione di ESXi, i file di log vengono memorizzati nella ubicazione predefinita. Tuttavia, è possibile modificare l’ubicazione dei log VMware, se necessario. Questo post sul blog spiega come modificare l’ubicazione dei log ESXi nella riga di comando e nell’interfaccia grafica utente (GUI).
Perché è necessario modificare l’ubicazione dei log VMware?
I log VMware ESXi vengono eliminati dopo il riavvio di un Host VMware ESXi per impostazione predefinita. Se non si desidera che i log VMware ESXi vengano eliminati dopo ogni riavvio dell’host, è possibile modificare l’ubicazione dei log VMware su un Host VMware ESXi dalla partizione scratch predefinita a un’unità di storage permanente, ad esempio una directory su un archivio dati.Il primo approccio per configurare VMware ESXi in modo da archiviare i log su un’unità di storage permanente, ad esempio un archivio dati, consiste nell’impostare uno spazio scratch persistente. Per impostazione predefinita, ESXi utilizza un file system in memoria (tmpfs) per lo spazio scratch, il che significa che i log vengono persi al riavvio. Tuttavia, con lo spazio scratch persistente, i log vengono conservati anche dopo il riavvio e archiviati su un archivio dati designato.Il secondo approccio consiste nel lasciare invariata la configurazione della partizione scratch ma modificare il percorso di archiviazione dei file di log dalla partizione scratch a un archivio dati persistente. Nel nostro esempio utilizziamo questo approccio.È possibile modificare l’ubicazione dei log di sistema VMware ESXi nella riga di comando ESXi e nella GUI, utilizzando VMware vSphere Client.
Modifica dell’ubicazione dei log ESXi utilizzando la riga di comando
Eseguire i seguenti passaggi per modificare l’ubicazione dei log ESXi nella riga di comando:
- Primo, identificare l’archivio dati in cui si desidera archiviare i log. Assicurarsi che l’archivio dati disponga di spazio libero sufficiente per ospitare i file di log.
- Abilitare SSH e connettersi all’host VMware ESXi. Utilizzare un client SSH (ad esempio PuTTY) per connettersi all’indirizzo IP di gestione dell’host VMware ESXi.
- Verificare la configurazione scratch corrente e l’ubicazione dei log VMware. Esegui il seguente comando per verificare la configurazione corrente per l’archiviazione dei log VMware:
esxcli system syslog config getCome puoi vedere nell’output visualizzato nella schermata, /scratch/log è l’output del log locale.

- È inoltre possibile utilizzare il comando per visualizzare le informazioni sulla configurazione scratch corrente:
vim-cmd hostsvc/advopt/view ScratchConfig.ConfiguredScratchLocation
- Prendere nota dell’ubicazione corrente della directory temporanea (ad esempio, /tmp/scratch) e se utilizza la memoria o una partizione specifica.
- Creare una directory sull’archivio dati. Utilizzare il comando seguente per creare una directory sull’archivio dati scelto in cui si desidera archiviare i log:
mkdir /vmfs/volumes/<datastore_name>/logSostituire < nome_archivio_dati > con il nome dell’archivio dati ( datastore10a nel nostro caso).
Nel nostro caso, il comando è:
mkdir /vmfs/volumes/datastore10a/log - Impostare la nuova ubicazione in cui archiviare i log VMware. È possibile impostare una directory su un archivio dati dell’host VMware ESXi locale o remoto con il comando:
esxcli system syslog config set --logdir=/vmfs/directory/path --loghost='tcp://hostname:514'Abbiamo impostato la directory appena creata su Archivio dati10a sul nostro host VMware ESXi locale come nuova ubicazione in cui archiviare i log VMware con il comando:
esxcli system syslog config set --logdir=/vmfs/volumes/Datastore10a/logSe viene visualizzato un errore del tipo ” Logdir deve esistere ed essere una directory “, se la directory obbligatoria esiste già, provare a utilizzare l’UUID dell’archivio dati (partizione) invece di un nome di archivio dati intuitivo. Il modo più semplice per verificare l’UUID dell’archivio dati è quello di andare nella directory dell’archivio dati:
cd /vmfs/volumes/Datastore10a/Vedi il percorso della directory corrente, dove dovresti vedere l’UUID dell’archivio dati (partizione). Nel nostro caso, l’UUID di datastore10a è 609a545a-50d29185-ffbb-000c293004f2.
Esegui il comando per impostare la nuova ubicazione del log utilizzando l’UUID dell’archivio dati invece del nome dell’archivio dati nel percorso:
esxcli system syslog config set --logdir=/vmfs/volumes/609a545a-50d29185-ffbb-000c293004f2/logIl comando è stato eseguito con successo.

- Ricaricare syslog per applicare le nuove impostazioni e iniziare a scrivere i log in una ubicazione persistente, ovvero una directory sull’archivio dati:
esxcli system syslog reload
Dopo il ricaricamento, ESXi memorizzerà i propri log nella directory specificata sull’archivio dati designato. Ciò garantirà la conservazione dei log anche dopo il riavvio e fornirà una soluzione di storage più permanente e affidabile per i file di log.
Modifica dell’ubicazione dei log ESXi utilizzando VMware vSphere Client
Eseguire i seguenti passaggi per modificare l’ubicazione dei log ESXi nella GUI di vCenter utilizzando VMware vSphere Client:
- Selezionare la vista Host e cluster e selezionare l’host ESXi desiderato nel riquadro di navigazione (situato sul lato sinistro dell’interfaccia).
- Fare clic sulla scheda Configura , quindi fare clic su Impostazioni di sistema avanzate nella sezione Sistema del riquadro di configurazione.
- Individuare la chiave Syslog.global.logDir da configurare. Nel nostro caso, l’ubicazione di questa chiave è a pagina 31.
Fare clic su Modifica per modificare il valore della chiave Syslog.global.logDir .

- Si apre una nuova finestra per modificare le impostazioni di sistema avanzate.
Modificare il valore predefinito /scratch/log con il valore personalizzato, che può essere una directory nell’archivio dati, quindi fare clic su OK per salvare le impostazioni.

Modifica dell’ubicazione del log ESXi in VMware Host Client
Se non si dispone di VMware vCenter oppure si utilizza un host VMware ESXi autonomo, è possibile modificare l’ubicazione dei log ESXi in VMware Host Client:
- Immettere l’indirizzo IP di un host VMware ESXi in un browser Web e accedere a VMware Host Client.
- Andare su Host > Gestisci > Sistema > Impostazioni avanzate .
- Trova la chiave Syslog.global.logDir nell’elenco delle opzioni.
- Selezionare la chiave Syslog.global.logDir e fare clic sull’opzione Modifica .

- Inserisci un nuovo valore per l’ubicazione del log ESXi nel campo appropriato e clicca su Salva .

Come modificare l’ubicazione del log ESXi in PowerCLI
Se ti piace vSphere PowerCLI , che è un’interfaccia a riga di comando basata su Windows PowerShell, puoi prendere in considerazione i seguenti modi per modificare l’ubicazione del log dell’Host VMware ESXi. Ci possono essere tre scenari.
Modifica dell’ubicazione del log ESXi su un host autonomo
- Apri PowerCLI e accedi a un server ESXi con credenziali amministrative:
Connect-VIServer -Server <ESXiHostIPAddress> -User <Username> -Password <Password> - Impostare la nuova ubicazione del log ESXi in PowerCLI:
Set-VMHostAdvancedConfiguration -VMHost <HostNameOrIPAddress> -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Path>"Sostituire <DatastoreName> dell’archivio dati in cui si desidera archiviare i log e < Path > con il nuovo percorso della directory per i log.
Modifica dell’ubicazione del log ESXi per più host ESXi senza vCenter
Se si dispone di più host ESXi ma questi non sono gestiti da vCenter, procedere come segue:
- Preparare un elenco di host ESXi. Creare un file di testo che elenchi l’indirizzo IP o il nome host di ciascun host, uno per riga (ad esempio, hosts.txt ).
- Considerare un esempio di script PowerCLI per impostare l’ubicazione dei log ESXi:
$hosts = Get-Content -Path "C:pathtohosts.txt"foreach ($host in $hosts) {Connect-VIServer -Server $host -User <User> -Password <Password>Set-VMHostAdvancedConfiguration -VMHost $host -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Path>"Disconnect-VIServer -Server $host -Confirm:$false}Immettere i valori necessari in base al proprio ambiente e alla propria Infrastruttura.
Modifica dell’ubicazione dei log ESXi per più host con vCenter
Se gli host ESXi sono gestiti da vCenter, è possibile modificare l’ubicazione dei log ESXi in PowerShell come segue:
- Connettersi a vCenter Server in PowerCLI:
Connect-VIServer -Server <vCenterHostNameOrIPAddress> -User <User> -Password <Password> - Impostare l’ubicazione dei log ESXi per tutti gli host gestiti da vCenter:
Get-VMHost | ForEach-Object {Set-VMHostAdvancedConfiguration -VMHost $_ -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Path>"}Immettere i valori necessari durante l’esecuzione dei comandi per soddisfare la configurazione dell’ambiente.
Conclusione
L’utilizzo di uno storage persistente per i log ESXi consente di conservare tali log dopo il riavvio di ESXi. È possibile modificare l’ubicazione dei log ESXi utilizzando la riga di comando e l’interfaccia utente grafica. Se un host ESXi è gestito da vCenter Server, è possibile utilizzare VMware vSphere Client. Se un host ESXi non è gestito da vCenter, utilizzare la riga di comando ESXi o VMware Host Client. Le organizzazioni con ambienti virtuali di grandi dimensioni possono configurare un server di log con un archivio dati condiviso per la scrittura dei log ESXi di più host su questo server.