可以使用一组 syslog 选项定义 ESXi syslog 文件和传输的行为。

除了基本设置(如 Syslog.global.logHost)之外,从 ESXi 7.0 Update 1 开始,还提供了用于自定义和 NIAP 合规性的高级选项列表。

注: 每次在设置任何审核记录参数或 Syslog.global.logDir 参数之前,都必须配置持久存储。
注: 所有审核记录设置(以 Syslog.global.auditRecord 开头)会立即生效。但是,对于使用 ESXCLI 定义的其他设置,请确保运行 esxcli system syslog reload 命令以启用更改。
表 1. 旧版 Syslog 选项
选项 ESXCLI 命令 描述
Syslog.global.logHost

esxcli system syslog config set --loghost=<str>

定义有关消息传输的以逗号分隔的远程主机列表和规范。如果 loghost=<str> 字段为空,则不会转发任何日志。虽然对接收 syslog 消息的远程主机数量没有硬性限制,但最好将远程主机的数量保持在 5 个或 5 个以下。远程主机规范的格式为:protocol://hostname|ipv4|'['ipv6']'[:port]。该协议必须是 TCP、UDP 或 SSL 之一。端口值可以是介于 1 到 65535 之间的任何十进制数字。如果未提供端口,则 SSL 和 TCP 使用 1514。UDP 使用 514。例如:ssl://hostName1:1514
Syslog.global.defaultRotate esxcli system syslog config set --default-rotate=<long> 要保留的旧日志文件的最大数目。您可以在全局范围内设置该数字,也可以针对单个子记录器设置该数字(请参见 Syslog.global.defaultSize)。
Syslog.global.defaultSize esxcli system syslog config set --default-size=<long> 日志文件的默认大小 (KiB)。文件达到默认大小后,syslog 服务会创建一个新文件。可以在全局范围内设置该数目,也可以为单个子记录器设置该数目。
Syslog.global.logDir esxcli system syslog config set --logdir=<str> 日志所在的目录。该目录可以位于挂载的 NFS 或 VMFS 卷中。只有本地文件系统中的 /scratch 目录在重新引导后仍然存在。将目录指定为 [数据存储名称] 文件路径,其中,路径是相对于支持数据存储卷的 root 目录的路径。例如,路径 [storage1] /systemlogs 将映射为路径 /vmfs/volumes/storage1/systemlogs
Syslog.global.logDirUnique esxcli system syslog config set --logdir-unique=<bool> 指定要与 Syslog.global.logDir 值连接的 ESXi 主机名。当多个 ESXi 主机登录到共享文件系统时,启用此设置至关重要。选择此选项将使用 ESXi 主机的名称在 Syslog.global.LogDir 指定的目录下创建子目录。如果多个 ESXi 主机使用同一个 NFS 目录,则唯一的目录非常有用。
Syslog.global.certificate.checkSSLCerts esxcli system syslog config set --check-ssl-certs=<bool> 将消息传输到远程主机时强制检查 SSL 证书。
表 2. 从 ESXi 7.0 Update 1 开始可用的 Syslog 选项
选项 ESXCLI 命令 描述
Syslog.global.auditRecord.storageCapacity esxcli system auditrecords local set --size=<long> 指定位于 ESXi 主机上的审核记录存储目录的容量(以 MiB 为单位)。无法减少审核记录存储的容量。可以在启用审核记录存储之前或之后(请参见 Syslog.global.auditRecord.storageEnable)增加容量。
Syslog.global.auditRecord.remoteEnable esxcli system auditrecords remote enable 启用将审核记录发送到远程主机的功能。远程主机通过使用 Syslog.global.logHost 参数指定。
Syslog.global.auditRecord.storageDirectory esxcli system auditrecords local set --directory=<dir> 创建审核记录存储目录,除非已指定,否则请将 /scratch/auditLog 设置为默认位置。您不得手动创建审核记录存储目录,也不能在启用审核记录存储时更改审核记录存储目录(请参见Syslog.global.auditRecord.storageEnable)。
Syslog.global.auditRecord.storageEnable esxcli system auditrecords local enable 在 ESXi 主机上启用审核记录存储。如果审核记录存储目录不存在,则使用 Syslog.global.auditRecord.storageCapacity 指定的容量创建该目录。
Syslog.global.certificate.checkCRL esxcli system syslog config set --crl-check=<bool> 启用检查 SSL 证书链中所有证书的吊销状态。

启用 X.509 CRL 验证,默认情况下不会根据行业约定检查这些 CRL。经过 NIAP 验证的配置需要进行 CRL 检查。由于实施限制,如果启用了 CRL 检查,则证书链中的所有证书都必须提供 CRL 链接。

不要为与认证无关的安装启用 crl-check 选项,因为很难正确配置使用 CRL 检查的环境。

Syslog.global.certificate.strictX509Compliance esxcli system syslog config set --x509-strict=<bool> 启用严格遵守 X.509。在验证期间对 CA 根证书执行额外的有效性检查。通常不会执行这些检查,因为 CA 根本来就受信任,并且可能会导致与现有配置错误的 CA 根不兼容。经过 NIAP 验证的配置甚至需要 CA 根来通过验证。

不要为与认证无关的安装启用 x509-strict 选项,因为很难正确配置使用 CRL 检查的环境。

Syslog.global.droppedMsgs.fileRotate esxcli system syslog config set --drop-log-rotate=<long> 指定要保留的旧的已丢弃消息日志文件数。
Syslog.global.droppedMsgs.fileSize esxcli system syslog config set --drop-log-size=<long> 指定切换为新的日志文件之前每个已丢弃消息日志文件的大小 (KiB)。
Syslog.global.logCheckSSLCerts esxcli system syslog config set --check-ssl-certs=<bool> 将消息传输到远程主机时强制检查 SSL 证书。
注: 已弃用。在 ESXi 7.0 Update 1 及更高版本中使用 Syslog.global.certificate.checkSSLCerts
Syslog.global.logFilters esxcli system syslog config logfilter [add | remove | set] ... 指定一个或多个日志筛选规范。每个日志筛选器必须用双竖线“||”分隔。日志筛选器的格式为:numLogs | ident | logRegexpnumLogs 为指定的日志消息设置最大日志条目数。达到此数目之后,将会筛选并忽略指定日志消息。ident 指定一个或多个系统组件以将筛选器应用于这些组件生成的日志消息。logRegexp 使用 Python 正则表达式语法指定区分大小写的短语,以按内容筛选日志消息。
Syslog.global.logFiltersEnable 允许使用日志筛选器。
Syslog.global.logLevel esxcli system syslog config set --log-level=<str> 指定日志筛选级别。仅当对 syslog 守护进程问题进行故障排除时,才必须更改此参数。可以使用值 debug 表示最详细级别,使用 info 表示默认详细级别,使用 warning 表示仅警告或错误,使用 error 表示仅错误。
Syslog.global.msgQueueDropMark esxcli system syslog config --queue-drop-mark=<long>) 指定占消息队列容量的百分比,达到此值后丢弃消息。
Syslog.global.remoteHost.connectRetryDelay esxcli system syslog config set --default-timeout=<long> 指定连接尝试失败后重试连接到远程主机之前的延迟(以秒为单位)。
Syslog.global.remoteHost.maxMsgLen esxcli system syslog config set --remote-host-max-msg-len=<long> 对于 TCP 和 SSL 协议,此参数指定截断发生之前 syslog 传输的最大长度(以字节为单位)。远程主机消息的默认最大长度为 1 KiB。可以将最大消息长度增加到多达 16 KiB。但是,将此值提高到 1 KiB 以上不能确保长传输到达 syslog 收集器时未被截断。例如,发出消息的 syslog 基础架构位于 ESXi 外部时。

此设置不影响 UDP 协议。RFC 5426 将 UDP 协议的最大消息传输长度设置为 480 字节 (IPV4) 和 1180 字节 (IPV6)。由于此限制,并且网络基础架构可以任意丢弃 UDP 数据包,因此不建议使用 UDP 来传输关键 syslog 消息。

Syslog.global.vsanBacking esxcli system syslog config set --vsan-backing=<bool> 允许将日志文件和审核记录存储目录放置在 vSAN 集群上。但是,启用此参数可能会导致 ESXi 主机变得无响应。