从 ESXi 8.0 开始,日志文件格式已标准化并以 Augmentd Backus-Naur Form (ABNF) 表示。
在 ESXi 8.0 中,将直接从单个服务(如 VMX)写入日志文件,或者在将服务的日志提交到 syslog 的时候间接写入日志文件。例如,VMX 始终在每个虚拟机的 vmware.log 文件中写入日志消息。为了节省系统资源,VMX 不会将日志消息提交到 syslog。另一方面,在 vmsyslogd 生成的某些日志文件中,您会看到来自多个程序的消息,因为 ESXi syslog 守护进程会从多个服务创建和管理所有日志文件以及这些文件的消息。
直接日志消息的格式:
参数 | 值 |
LOG-MSG | HEADER SP MSG |
HEADER | TIMESTAMP SP SEVERITY SP THREAD-NAME SP OPID |
TIMESTAMP | FULL-DATE T FULL-TIME(符合 RFC 5424 对 UTC/GMT 格式和毫秒或可能的更细精度的要求)。 |
FULL-DATE | DATE-FULLYEAR - DATE-MONTH - DATE-MDAY |
DATE-FULLYEAR | 4DIGIT |
DATE-MONTH | 2DIGIT ; 01-12 |
DATE-MDAY | 2DIGIT ; 01-28、01-29、01-30、01-31(基于月/年) |
FULL-TIME | TIME-HOUR : TIME-MINUTE : TIME-SECOND[TIME-SECFRAC] Z |
TIME-HOUR | 2DIGIT ; 00-23 |
TIME-MINUTE | 2DIGIT ; 00-59 |
TIME-SECOND | 2DIGIT ; 00-59 |
TIME-SECFRAC | '.'1*6DIGIT |
SEVERITY | SEVERITY-STRING SEVERITY-VALUE [LINE-MARKER] |
SEVERITY-STRING | Em/ Al / Cr / Er / Wa / No / In / Db(RFC 5424 中指定的 8 个严重性级别的缩写如下:
|
SEVERITY-VALUE | ( *DIGIT )(SEVERITY-VALUE 是与 SEVERITY-STRING 关联的数字值的可选表达式。这允许将记录器支持的级别压缩为必需的 8 个字符串而不致丢失信息(例如 Db(5) - 调试,级别 5)。) |
LINE-MARKER | +(将 LINE-MARKER 添加到多行提交生成的每个后续行中。它标识多行提交并防止日志注入安全攻击。) |
NILVALUE | -(单线程程序可能没有线程名称,NILVALUE 是可接受的。) |
THREAD-NAME | NILVALUE / 1*32PRINTUSASCII(在单个程序写入文件而不需要组件字段时隐含组件 (APP-NAME),只有线程名称。) |
OPID | NILVALUE / 1*128UTF-8-STRING |
STRUCTURED-DATA | 1*SD-ELEMENT |
SD-ELEMENT | [ SD-ID *(SP SD-PARAM) ] |
SD-PARAM | PARAM-NAME %d34 PARAM-VALUE %d34 |
SD-ID | SD-NAME |
PARAM-NAME | SD-NAME |
PARAM-VALUE | UTF-8-STRING;字符 ''、'\' 和 ']' 必须转义。 |
SD-NAME | 1*32PRINTUSASCII;''、SP、']'、%d34 () 除外 |
MSG | [STRUCTURED-DATA SP] UTF-8-STRING |
vmsyslogd 服务管理的日志文件的格式:
参数 | 值 |
LOG-MSG | HEADER SP MSG |
HEADER | TIMESTAMP SP SEVERITY SP APP-NAME [PROC-IDENTIFIER] : |
APP-NAME | 1*32PRINTUSASCII |
PROC-IDENTIFIER | [ *DIGITS ];与 APP-NAME 关联的 PID |
TIMESTAMP | FULL-DATE T FULL TIME(毫秒或可能的更细精度) |
FULL-DATE | DATE-FULLYEAR - DATE-MONTH - DATE-MDAY |
DATE-FULLYEAR | 4DIGIT |
DATE-MONTH | 2DIGIT ; 01-12 |
DATE-MDAY | 2DIGIT ; 01-28、01-29、01-30、01-31(基于月/年) |
FULL-TIME | TIME-HOUR : TIME-MINUTE : TIME-SECOND[TIME-SECFRAC] Z |
TIME-HOUR | 2DIGIT ; 00-23 |
TIME-MINUTE | 2DIGIT ; 00-59 |
TIME-SECOND | 2DIGIT ; 00-59 |
TIME-SECFRAC | '.'1*6DIGIT |
SEVERITY-STRING | Em/ Al / Cr / Er / Wa / No / In / Db(RFC 5424 中指定的 8 个严重性级别的缩写如下:
|
SEVERITY | SEVERITY-STRING PRI-STRING [LINE-MARKER] |
PRIVAL | 1*3DIGIT;范围 0 ..191(MSG PRI;包含设施和严重性值,与 OR 一起使用) |
PRI-STRING | ( PRIVAL )(PRIVAL 包含消息 PRI 中的位。这样,用户便可查看消息的设施以及严重性位本身。_ |
LINE-MARKER | +(将 LINE-MARKER 添加到多行提交生成的每个后续行中。它标识多行提交并防止日志注入安全攻击。) |
STRUCTURED-DATA | 1*SD-ELEMENT |
SD-ELEMENT | [ SD-ID *(SP SD-PARAM) ] |
SD-PARAM | PARAM-NAME %d34 PARAM-VALUE %d34 |
SD-ID | SD-NAME |
PARAM-NAME | SD-NAME |
PARAM-VALUE | UTF-8-STRING;字符 ''、'\' 和 ']' 必须转义。 |
SD-NAME | 1*32PRINTUSASCII;''、SP、']'、%d34 () 除外 |
MSG | [STRUCTURED-DATA SP] UTF-8-STRING |
审核记录
设施代码为 13 的 ESXi 审核记录符合 RFC 3164 和 5424 格式,您可以在结构化数据部分中找到这些记录。在审核记录中,您还会在此类数据可用时找到基于事件的可跟踪性信息。审核记录以特殊格式存储,而不是常规日志文件。您可以使用 viewAudit 程序和虚拟基础架构管理功能 FetchAuditRecords 在本地访问审核记录。不要直接读取、使用或编辑审核记录存储文件。本地存储的审核记录符合 RFC 5424 传输格式,其中 HOSTNAME 和 MSGID 始终是 NILVALUE。