When you install VMware ESXi to an SD card or USB stick (or when using Boot from SAN), the yellow exclamation mark icon is displayed next to the host name in the vCenter client console, and the following warning appears on the Summary tab:
System logs on host vmware01.contoso.com are stored on non-persistent storage.
The esx.problem.syslog.nonpersistent warning means that the system writes logs (scratch) to the non-persistent USB device and if you restart your host, they won’t be saved. Thus, in case of any host issues, you won’t be able to examine its logs or provide any data to VMWare technical support team. To remove the warning, you must change the log storage path to a local disk or a VMFS datastore (or configure a syslog server) in the ESXi host settings. This post refers to the new HTML5 vSphere 6.7 client. In previous vSphere versions it is configured in the same way, however, the names of options or sections may differ.
- Open the vSphere client and select your ESXi host with the warning in the Hosts & Clusters;
- Go to the Configure tab and click Advanced System Settings;
- In the list of advanced settings, click Edit and type Syslog.global.logDir in the Filter field. As you can see,  /scratch/log folder is used to store the ESXi logs;
- Change the path in the Syslog.global.logDir variable to [youtVMFSdatastorename] /systemlogs. You must create /systemlogs folder on the VMFS datastore in advance. Otherwise, you will get this error:
A general system error occurred: Internal error.
- If the Syslog.global.logDir field is empty, check the value of the ScratchConfig.CurrentScratchLocation parameter. It shows the path to the scratch partition containing logs.
You can also change the log path using the PowerCLI command prompt:
get-vmhost vmware01 | Get-AdvancedSetting -Name "Syslog.global.logDir" | Set-AdvancedSetting -Value "[HQVMFSDatastore1] /system_log_folder_name"
You can also change the value of Syslog.global.logDir using the Host Profiles. You can apply this profile to all ESXi hosts in your datacenter.