ESXi 8.0 开始,syslog 服务使用三个参数来定义消息和审核记录 - 协议、格式设置和框架设置。

支持的协议包括 UDP、TCP 和 TLS (SSL)。syslog 消息的格式设置由 RFC 3164 或 RFC 5424 定义。框架设置指定如何封装消息。封装消息的框架设置定义为透明(也称为 octet_counting)或非透明(如果消息未封装)。透明框架设置可确保消息中嵌入的新行不会使 syslog 收集器产生混乱。使用 UDP 协议发送的 Syslog 消息被视为以透明方式设置框架;syslog 收集器需要了解这一点,并接受单一消息传输。

RFC 3164 将 syslog 消息的最大总长度设置为 1024 字节,而 RFC 5424 将此最大值扩展到 2048 字节。

在 ESXi 中,远程主机消息的默认最大长度为 1 KiB。可以将最大消息长度增加到多达 16 KiB。但是,将此值提高到 1 KiB 以上不能确保长传输到达 syslog 收集器时未被截断。例如,发出消息的 syslog 基础架构位于 ESXi 外部时。

vmsyslogd 传输的 Syslog 消息包含结构化数据、根据 RFC 5424 设置格式的属性列表以及自由格式或非结构化数据。

当消息长度超过最大长度时,ESXi 8.0 会缩短该消息,但会尝试保留尽可能多的结构化数据。

缩短消息后,会向现有结构化数据添加三个参数,或者创建结构化数据以包含以下参数:msgModifiedremoteHostMaxMsgLenoriginalLen

msgModified 参数指示缩短后对消息的影响:仅限结构化数据和/或非结构化数据。

remoteHostMaxMsgLen 参数指定 ESXi 可以处理的最大消息长度。

originalLen 参数指定消息缩短之前的长度。

ESXi syslog 消息的协议、格式设置和帧设置支持选项:

格式设置 框架设置 UDP TCP SSL 备注
未指定 未指定

支持

RFC 5426

支持 支持

消息的格式设置符合 RFC 3164,只有时间戳为 RFC 3339 格式。

将在每个消息的前面放置结构化数据。

使用 TCP 或 SSL (TLS) 时,框架设置默认为非透明,结构化数据中的嵌入式换行符可能会损坏消息。

使用 UDP 时,将对数据包进行框架设置。

未指定 Non_transparent 已禁止 支持 支持

消息的格式设置符合 RFC 3164,只有时间戳为 RFC 3339 格式。

将在每个消息的前面放置结构化数据。

使用 TCP 或 SSL (TLS) 时,框架设置默认为非透明,结构化数据中的嵌入式换行符可能会损坏消息。

未指定 Octet_counting 已禁止

支持

RFC 6587

支持

RFC 6587

消息的格式设置符合 RFC 3164,只有时间戳为 RFC 3339 格式。

将在每个消息的前面放置结构化数据。

RFC 5424 未指定

支持

RFC 5426

支持

RFC 5425

支持

RFC 5424

消息的格式设置符合 RFC 5424。

使用 TCP 或 SSL (TLS) 时,框架设置默认为 octet-counting。使用 UDP 时,可能不会明确指定框架设置。

RFC 5424 Non_transparent 已禁止 不受支持 不受支持 不支持,因为结构化数据中的嵌入式换行符可能会损坏消息。
RFC 5424 Octet_counting 已禁止

支持

RFC 5425

支持

RFC 5425

消息的格式设置符合 RFC 5424。
RFC 3164 未指定

支持

RFC 5426

支持 支持

消息的格式设置符合 RFC 3164,只有时间戳为 RFC 3339 格式。

将在每个消息的前面放置结构化数据。

使用 TCP 或 SSL (TLS) 时,框架设置默认为非透明,结构化数据中的嵌入式换行符可能会损坏消息。

使用 UDP 时,将对数据包进行框架设置。

RFC 3164 Non_transparent 已禁止 支持 支持

消息的格式设置符合 RFC 3164,只有时间戳为 RFC 3339 格式。

将在每个消息的前面放置结构化数据。

使用 TCP 或 SSL (TLS) 时,框架设置默认为非透明,结构化数据中的嵌入式换行符可能会损坏消息。

RFC 3164 Octet_counting 已禁止

支持

RFC 6587

支持

RFC 6587

消息的格式设置符合 RFC 3164,只有时间戳为 RFC 3339 格式。

将在每个消息的前面放置结构化数据。