記錄檔為對攻擊進行疑難排解和取得缺口相關資訊的一個重要元件。所有 ESXi 主機均執行 Syslog 服務,該服務會將來自 VMkernel 和其他系統元件的訊息記錄到本機檔案或遠端主機中。

若要提高主機的安全性,請採取下列措施。
  • 設定持續性記錄到資料存放區。依預設,ESXi 主機上的記錄儲存於記憶體中的檔案系統中。因此,當您將主機重新開機時,記錄將會遺失,並且僅儲存 24 小時的記錄資料。啟用持續性記錄時,您會有用於主機的專用活動記錄。
  • 遠端記錄到中央主機可讓您收集中央主機上的記錄檔。您可從該主機使用單一工具監控所有主機、執行彙總分析和搜尋記錄資料。這種方法可協助監控,並顯示對多台主機的協調攻擊的相關資訊。
  • 透過使用 ESXCLI 或 PowerCLI 或使用 API 用戶端,在 ESXi 主機上設定遠端安全 Syslog。
  • 查詢 Syslog 組態,確保 Syslog 伺服器和連接埠有效。

如需有關 Syslog 設定的資訊以及 ESXi 記錄檔的其他相關資訊,請參閱vSphere 監控和效能說明文件。

ESXi 主機上設定 Syslog

您可以使用 vSphere ClientVMware Host Clientesxcli system syslog 命令來設定 syslog 服務。

如需使用 esxcli system syslog 命令和其他 ESXCLI 命令的相關資訊,請參閱ESXCLI 入門。如需有關如何為每個遠端主機規格中指定的連接埠開啟 ESXi 防火牆的詳細資料,請參閱設定 ESXi 防火牆

程序

  1. vSphere Client 詳細目錄中瀏覽到主機。
  2. 按一下設定
  3. 系統下,按一下進階系統設定
  4. 按一下編輯
  5. 篩選 syslog
  6. 若要全域設定記錄並設定各種進階設定,請參閱ESXi Syslog 選項
  7. (選擇性) 覆寫任何記錄的預設記錄大小和記錄輪替:
    1. 按一下您要自訂的記錄的名稱。
    2. 輸入所需的輪替次數和記錄大小。
  8. 按一下確定

結果

對 Syslog 選項進行的變更將生效。
備註: 使用 vSphere Client 或 VMware Host Client 定義的 Syslog 參數設定將立即生效。但是,使用 ESXCLI 定義的大多數設定都需要額外命令才能生效。如需詳細資料,請參閱 ESXi Syslog 選項

ESXi Syslog 選項

可以使用一組 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 個或以下。遠端主機規格的格式為: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 目錄在重新開機後仍會存在。將目錄指定為 [datastorename] path_to_file,其中路徑相對於支援資料存放區的磁碟區的根目錄路徑。例如,路徑 [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 主機變得無回應。

ESXi 記錄檔位置

ESXi 透過使用 Syslog 功能,在記錄檔中記錄主機活動。

表 3. ESXi 記錄檔位置
元件 位置 用途
驗證 /var/log/auth.log 包含與本機系統驗證相關的所有事件。
ESXi 主機代理程式記錄 /var/log/hostd.log 包含管理和設定 ESXi主機及其虛擬機器的代理程式的相關資訊。
Shell 記錄 /var/log/shell.log 包含在 ESXi中輸入的所有命令以及 Shell 事件 (例如,啟用 Shell) 的記錄。
系統訊息 /var/log/syslog.log 包含所有一般記錄訊息,並且可用來進行疑難排解。該資訊之前位於訊息記錄檔中。
vCenter Server代理程式記錄 /var/log/vpxa.log 包含與 vCenter Server通訊的代理程式的相關資訊 (如果主機由 vCenter Server 管理)。
虛擬機器 與受影響的虛擬機器的組態檔 (命名為 vmware.logvmware*.log) 具有相同的目錄。例如, /vmfs/volumes/datastore/virtual machine/vmware.log 包含虛擬機器電源事件、系統失敗資訊、工具狀態和活動、時間同步、虛擬硬體變更、vMotion 移轉和虛擬機器複製等。
VMkernel /var/log/vmkernel.log 記錄與虛擬機器以及 ESXi有關的活動。
VMkernel 摘要 /var/log/vmksummary.log 用於判定 ESXi的運作時間和可用性統計資料 (以逗號分隔)。
VMkernel 警告 /var/log/vmkwarning.log 記錄與虛擬機器有關的活動。
Quick Boot /var/log/loadESX.log 包含與透過 Quick Boot 重新啟動 ESXi主機相關的所有事件。
受信任基礎結構代理程式 /var/run/log/kmxa.log 記錄與 ESXi受信任主機上的用戶端服務相關的活動。
金鑰提供者服務 /var/run/log/kmxd.log 記錄與 vSphere Trust Authority金鑰提供者服務相關的活動。
證明服務 /var/run/log/attestd.log 記錄與 vSphere Trust Authority證明服務相關的活動。
ESX Token 服務 /var/run/log/esxtokend.log 記錄與 vSphere Trust AuthorityESX Token 服務相關的活動。
ESX API 轉寄站 /var/run/log/esxapiadapter.log 記錄與 vSphere Trust AuthorityAPI 轉寄站相關的活動。