Purpose
VMware vSphere ESXi 5.0 hosts run a syslog service (vmsyslogd
) that provides a standard mechanism for logging messages from the VMkernel and other system components. By default in ESXi, these logs are placed on a local scratch volume or a ramdisk. To preserve the logs further, ESXi can be configured to place these logs to an alternate storage location on disk, and to send the logs across the network to a syslog server.
Retention, rotation and splitting of logs received and managed by a syslog server are fully controlled by that syslog server. ESXi 5.0 cannot configure or control log management on a remote syslog server. For more information, see the documentation for the syslog server.
Regardless of the additional syslog configuration specified using these options, logs continue to be placed on the default locations on the ESXi host. For more information, see Location of ESXi log files (1021801).
Previous version of vSphere ESXi are configured differently. For more information, see Enabling syslog on ESXi 3.5 and 4.x (1016621).
If vSphere Syslog Collector will be used to receive logs from ESXi hosts, see Redirect ESXi System Log Files to the vCenter Server Appliance in the vCenter Server and Host Management guide or Install vSphere Syslog Collector in the vSphere Installation and Setup Guide.
Resolution
Configuration of the syslog service on ESXi 5.0 can be performed using Host Profiles, the vCLI, or the Advanced Configuration options in the vSphere Client. Select the method most appropriate for your environment. Configuration cannot be performed using the vicfg-syslog
command.
Option | Description |
Syslog.global.logDir | A location on a local or remote datastore and path where logs are saved to. Has the format [DatastoreName] DirectoryName/Filename , which maps to/vmfs/volumes/DatastoreName/DirectoryName/Filename . The[DatastoreName] is case sensitive and if the specified DirectoryNamedoes not exist, it will be created. If the datastore path field is blank, the logs are only placed in their default location. If /scratch is defined, the default is[]/scratch/log . For more information on scratch, see Creating a persistent scratch location for ESXi (1033696). For all other cases, the default is blank. |
Syslog.global.logHost | A remote server where logs are sent using the syslog protocol. If the logHost field is blank, no logs are forwarded. Include the protocol and port, similar totcp://hostname:514 . |
Syslog.global.logDirUnique | A boolean option which controls whether a host-specific directory is created within the configured logDir . The directory name is the hostname of the ESXi host. A unique directory is useful if the same shared directory is used by multiple ESXi hosts. Defaults to false . |
Syslog.global.defaultRotate | The maximum number of log files to keep locally on the ESXi host in the configured logDir. Does not affect remote syslog server retention. Defaults to 8 . |
Syslog.global.defaultSize | The maximum size, in kilobytes, of each local log file before it is rotated. Does not affect remote syslog server retention. Defaults to 1024 KB . For more information on sizing, see Providing Sufficient Space for System Logging. |
Configuring Local and Remote Logging using the esxcli command
Local and Remote syslog functionality can be configured for a host using the esxcli command line utility, which can be used at the console of an ESXi host, in the vCLI, or in the vMA. For more information, see Configuring ESXi Syslog Services in the vSphere Command-Line Interface Documentation.
- Open a ESXi Shell console session where the
esxcli
command is available, such as the vCLI or on the host directly. - Display the existing 5 configuration options on the host using the command:
esxcli system syslog config get
- Set new host configuration, specifying options to change, using a command similar to:
esxcli system syslog config set --logdir=/path/to/directory/ --loghost=RemoteHostname --logdir-unique=true|false --default-rotate=NNN --default-size=NNN
For example, to configure remote syslog using TCP on port 514:esxcli system syslog config set --loghost='tcp://10.11.12.13:514'
- After making configuration changes, load the new configuration using the command:
esxcli system syslog reload
Configuring Local and Remote logging using Host Profiles
Local and Remote syslog functionality can be configured for a cluster of similar hosts using Host Profiles. For more information, see the Set Up Syslog from the Host Profiles Interface section of the vSphere Installation and Setup guide.
- Connect to the vCenter Server using the vSphere Client.
- Click Home.
- Under the Management section, click Host Profiles.
- Create a new profile, or edit an existing profile.
- In the Edit Profile dialog, set one or more of the 5 configuration options.
- If you configured syslog using
esxcli
or advanced configuration options, and captured this as a reference host, the 5 configuration options are already visible under the Advanced Configuration option section. - If syslog has not been previously configured, right-click the Advanced Configuration options section and add a profile for each of the 5 configuration options.
- If you configured syslog using
- Save the profile and assign it to hosts.
Configuring Local and Remote Logging using Advanced Configuration options
esxcfg-advcfg
command. For more information on setting advanced configuration options using each method, see Configuring advanced options for ESX/ESXi (1038578).