NSX 组件将写入 /var/log 目录中的日志文件。在 NSX 设备上,NSX syslog 消息遵循 RFC 5424 格式规范。在 ESXi 主机上,syslog 消息遵循 RFC 3164 格式规范。
查看日志
在 NSX 设备上,syslog 消息位于 /var/log/syslog 中。
get log-file <auth.log | controller | controller-error | http.log | kern.log | manager.log | node-mgmt.log | syslog> [follow]
名称 | 描述 |
---|---|
auth.log | 授权日志 |
controller | 控制器日志 |
controller-error | 控制器错误日志 |
http.log | HTTP 服务日志 |
kern.log | 内核日志 |
manager.log | 管理器服务日志 |
node-mgmt.log | 节点管理日志 |
nsx-audit-write.log | NSX 审核写入日志 |
nsx-audit.log | NSX 审核日志 |
syslog | 系统日志 |
在 Hypervisor 上,可以使用 tac、tail、grep 和 more 等 Linux 命令查看日志。
每条 syslog 消息都具有组件 (comp) 和子组件 (subcomp) 信息,可帮助标识消息的来源。
NSX 会生成包含程序模块 local6 的日志,该模块具有数值 22。
审核日志是 syslog 的一部分。可以通过 structured-data 字段中的字符串 audit="true" 来识别审核日志消息。您可以配置外部日志服务器以接收日志消息。您也可以使用 API /api/v1/administration/audit-logs 访问审核日志。nsx-audit.log 文件包含 syslog 消息,并在 structured-data 字段中具有 audit="true"。nsx-audit-write.log 文件包含 syslog 消息,并在 structured-data 字段中具有 audit="true" 和 update="true"。
<182>1 2020-05-05T00:29:02.900Z nsx-manager1 NSX 14389 - [nsx@6876 audit="true" comp="nsx-manager" level="INFO" reqId="fe75651d-c3e7-4680-8753-9ae9d92d7f0c" subcomp="policy" username="admin"] UserName="admin", ModuleName="AAA", Operation="GetCurrentUserInfo", Operation status="success"
- 实体 ID 参数 entId,用于标识 API 的对象。
- 请求 ID 参数 req-id,用于标识特定的 API 调用。
- 外部请求 ID 参数 ereqId(如果 API 调用包含标头 X-NSX-EREQID:<string>)。
- 外部用户参数 euser(如果 API 调用包含标头 X-NSX-EUSER:<string>)。
- update 标记,它显示 API 操作是读取 (GET) 还是写入 (PUT/POST/DELETE/...) 操作。
- operation name 字段,它显示 API 操作的名称。
- operation status 字段,它显示 API 操作成功还是失败。
- new value 字段,它显示 API 请求的所有参数值。
NSX 没有特权模式概念。将审核来自所有源和用户的 API 调用。
2020-07-07T16:33:20.339Z svc.nsxmanager NSX 1513 SYSTEM [nsx@6876 audit="true" comp="nsx-manager" level="INFO" subcomp="http"] UserName="[email protected]", ModuleName="ACCESS_CONTROL", Operation="LOGIN", Operation status="success" 2020-07-07T16:33:58.779Z svc.nsxmanager NSX 1513 SYSTEM [nsx@6876 audit="true" comp="nsx-manager" level="INFO" subcomp="http"] UserName="admin", ModuleName="ACCESS_CONTROL", Operation="LOGOUT", Operation status="success" 2020-07-07T16:50:21.301Z svc.nsxmanager NSX 1513 SYSTEM [nsx@6876 audit="true" comp="nsx-manager" level="INFO" subcomp="http"] UserName="[email protected]", ModuleName="ACCESS_CONTROL", Operation="LOGIN", Operation status="success" 2020-07-07T16:43:20.339Z svc.nsxmanager NSX 1513 SYSTEM [nsx@6876 audit="true" comp="nsx-manager" level="INFO" subcomp="http"] UserName="[email protected]", ModuleName="ACCESS_CONTROL", Operation="LOGIN", Operation status="failure"
<182>1 2020-07-06T18:09:14.210Z svc.nsxmanager NSX 2326 FABRIC [nsx@6876 audit="true" comp="nsx-manager" entId="68d5a9d0-4691-4c9c-94ed-64fd1c96150f" level="INFO" reqId="4c2335aa-c973-4f74-983f-331a4f7041ca" subcomp="manager" update="true" username="admin"] UserName="admin", ModuleName="TransportZone", Operation="CreateTransportZone", Operation status="success", New value=[{"transport_type":"OVERLAY","host_switch_name":"nsxvswitch","host_switch_mode":"STANDARD","nested_nsx":false,"is_default":false,"display_name":"1-transportzone-1307","_protection":"UNKNOWN"}]
2020-07-07T16:36:41.783Z svc.nsxmanager NSX 21018 - [nsx@6876 comp="nsx-manager" subcomp="cli" username="admin" level="INFO"] NSX CLI started (Manager, Policy, Controller) for user: admin 2020-07-07T16:36:53.469Z svc.nsxmanager NSX 21018 - [nsx@6876 comp="nsx-manager" subcomp="cli" username="admin" level="INFO"] NSX CLI stopped for user: admin
<182>1 2020-07-22T20:51:49.017Z manager2 NSX 1864 - [nsx@6876 comp="nsx-manager" subcomp="cli" username="admin" level="INFO" audit="true"] CMD: set user admin password-expiration 100 (duration: 2.185s), Operation status: CMD_EXECUTED
<182>1 2020-07-21T21:01:38.803Z manager2 NSX 4690 - [nsx@6876 comp="nsx-manager" subcomp="node-mgmt" username="admin" level="INFO" audit="true"] admin 'GET /api/v1/node/services/syslog/exporters' 200 731 "" "PostmanRuntime/7.26.1" 0.004588
<182>1 2020-07-21T20:54:40.018Z manager2 NSX 16915 - [nsx@6876 comp="nsx-manager" subcomp="cli" username="admin" level="INFO" audit="true"] CMD: set logging-server 1.1.1.1 proto udp level info (duration: 4.356s), Operation status: CMD_EXECUTED
RFC 5424 和 RFC 3164 定义了以下严重性级别:
严重性级别 | 描述 |
---|---|
0 | 紧急:系统无法使用 |
1 | 警报:必须立即采取措施 |
2 | 严重:严重情况 |
3 | 错误:错误情况 |
4 | 警告:警告情况 |
5 | 通知:正常但重大情况 |
6 | 信息:信息性消息 |
7 | 调试:调试级别消息 |
具有“紧急”、“警报”、“严重”或“错误”严重性的所有日志在日志消息的结构化数据部分中包含唯一的错误代码。错误代码由一个字符串和一个十进制数字组成。该字符串表示特定的模块。
无法访问日志文件或远程日志服务器
如果 NSX 无法访问日志文件或无法将消息写入日志文件,则会生成警报。可能的错误包括:
- 缺少本地日志文件。
- 本地日志文件的权限或所有权设置阻止 NSX 写入文件。
- NSX 无法将日志消息发送到第三方远程日志服务器。请注意,如果 NSX 无法将日志发送到 Log Insight 代理,则不会发出警报。
可以通过警报框架解决该警报。
日志消息格式
有关 RFC 5424 的详细信息,请参见https://tools.ietf.org/html/rfc5424。有关 RFC 3164 的详细信息,请参见https://tools.ietf.org/html/rfc3164。
RFC 5424 为日志消息定义以下格式:
<facility * 8 + severity> version UTC-TZ hostname APP-NAME procid MSGID [structured-data] msg
<187>1 2016-03-15T22:53:00.114Z nsx-manager NSX - SYSTEM [nsx@6876 comp="nsx-manager" errorCode="MP4039" subcomp="manager"] Connection verification failed for broker '10.160.108.196'. Marking broker unhealthy.
错误代码
有关错误代码的列表,请参见知识库文章 71077《NSX-T Data Center 2.x 错误代码》。