NSX-T Data Center 元件會寫入目錄 /var/log 中的記錄檔。在 NSX-T 應用裝置和 KVM 主機上,NSX Syslog 訊息會符合 RFC 5424。在 ESXi 主機上,Syslog 訊息會符合 RFC 3164。

檢視記錄

NSX-T 應用裝置上,Syslog 訊息位於 /var/log/syslog 中。在 KVM 主機上,Syslog 訊息位於 /var/log/vmware/nsx-syslog 中。

NSX-T 應用裝置上,您可以執行下列 NSX-T CLI 命令以檢視記錄:
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 Manager 服務記錄
node-mgmt.log 節點管理記錄
nsx-audit-write.log NSX 稽核寫入記錄
nsx-audit.log NSX 稽核記錄
Syslog 系統記錄

在 Hypervisor 中,您可以使用 tactailgrepmore 等 Linux 命令來檢視記錄。

每個 Syslog 訊息都具有元件 (comp) 和子元件 (subcomp) 資訊,可協助識別訊息的來源。

NSX-T Data Center 會產生種類為 local6,具有數值 22 的記錄。

此稽核記錄是 Syslog 的一部分。您可以利用 structured-data 欄位中的字串 audit="true" 來識別稽核記錄訊息。您可以設定外部記錄伺服器來接收記錄訊息。您也可以使用 API /api/v1/administration/audit-logs 來存取稽核記錄。檔案 nsx-audit.log 包含 structured-data 欄位為 audit="true" 的 Syslog 訊息。檔案 nsx-audit-write.log 包含 structured-data 欄位中具有 audit="true"update="true" 的 Syslog 訊息。

每個 Syslog 和稽核記錄訊息都包含由 NTP 伺服器 (如果已設定) 或系統時鐘所產生的時間戳記。稽核記錄訊息的範例:
<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"
API 呼叫可以來自 NSX Manager、原則 API 用戶端或 NSX 節點。所有 API 呼叫會受到驗證和授權的約束,並將產生稽核記錄。此記錄依預設為啟用,且無法停用。與 API 呼叫相關聯的稽核記錄具有下列資訊:
  • 實體識別碼參數 entId,用於識別 API 的物件。
  • 要求識別碼參數 req-id,用於識別特定的 API 呼叫。
  • 外部要求識別碼參數 ereqId,如果 API 呼叫包含標頭 X-NSX-EREQID:<string>
  • 外部使用者參數 euser,如果 API 呼叫包含標頭 X-NSX-EUSER:<string>
來自原則或管理程式 API 呼叫的稽核記錄訊息將具有下列其他欄位。請注意,節點 API (NAPI) 和 CLI 稽核記錄將不會有這些欄位。
  • update 旗標,顯示 API 作業是讀取 (GET) 還是寫入 (PUT/POST/DELETE/...) 運算。
  • operation name 欄位,會顯示 API 作業名稱。
  • operation status 欄位,會顯示 API 作業是否成功或失敗。
  • new value 欄位,會顯示 API 要求的所有參數值。

NSX-T 沒有特殊權限模式的概念。會稽核來自所有來源和使用者的 API 呼叫。

登入和登出 Syslog 訊息的範例,顯示成功的登入、失敗的登入,以及來自 2 個不同裝置的登入 (請注意不同的 IP 位址):
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"
原則 API 呼叫的 Syslog 訊息範例:
<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"}]
CLI 存取的 Syslog 訊息範例:
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
當使用者執行 CLI 命令時,Syslog 訊息的範例 (在此範例中, set user admin password-expiration 100):
<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
NAPI 呼叫的 Syslog 訊息範例:
<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
CLI 命令的 Syslog 訊息範例:
<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-T 無法存取或將訊息寫入記錄檔,則會產生警示。可能的錯誤如下:

  • 本機記錄檔遺失。
  • 本機記錄檔的權限或擁有權設定會防止 NSX-T 寫入檔案。
  • NSX-T 無法將記錄訊息傳送到第三方遠端記錄伺服器。請注意,如果 NSX-T 無法將記錄傳送到 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 Error Codes (NSX-T Data Center 2.x 錯誤碼)