各項服務會自動產生記錄。您可以在 vRealize Automation 中產生記錄服務包。也可以設定您的環境,以將記錄傳送到 vRealize Log Insight

有關 vracli 命令列公用程式的資訊,請在 vracli 命令列中使用 --help 引數 (例如,vracli log-bundle --help)。

如需使用 vRealize Log Insight 的相關資訊,請參閱如何在 vRealize Automation 中設定將記錄轉送到 vRealize Log Insight

記錄服務包命令

您可以建立記錄服務包,以包含所執行服務產生的所有記錄。記錄服務包中包含所有服務記錄。可以使用記錄服務包進行疑難排解。

在叢集化環境 (高可用性模式) 中,僅在一個節點上執行 vracli log-bundle 命令。將從環境中的所有節點提取記錄。但是,如果出現網路或其他叢集問題,則從盡可能多的可連線節點中提取記錄。例如,如果在包含三個節點的叢集中有一個節點已中斷連線,則僅會從兩個狀況良好的節點中收集記錄。vracli log-bundle 命令輸出包含有關發現的任何問題及其因應措施步驟的資訊。

  • 若要建立記錄服務包,請使用 SSH 登入任何節點,然後執行下列 vracli 命令:

    vracli log-bundle

  • 若要變更從每個節點收集記錄的逾時值,請執行下列 vracli 命令:

    vracli log-bundle --collector-timeout $CUSTOM_TIMEOUT_IN_SECONDS

    例如,如果您的環境包含較大的記錄檔、網路速度緩慢或 CPU 使用率較高,則可以將逾時設定為大於 1000 秒預設值。

  • 若要確定特定服務記錄 (例如 ebsvro) 使用的磁碟空間,請執行以下 vracli 命令並檢查命令輸出:

    vracli disk-mgr

  • 若要設定其他選項 (例如組件逾時和緩衝區位置),請使用下列 vracli help 命令:

    vracli log-bundle --help

記錄服務包結構

記錄服務包是有時間戳記的 tar 檔案。服務包名稱符合模式 log-bundle-<date>T<time>.tar 檔案,例如 log-bundle-20200629T131312.tar。通常,記錄服務包包含環境中所有節點的記錄。如果出現錯誤,它會包含盡可能多的記錄。至少包含本機節點的記錄。

記錄服務包包含下列內容:
  • 環境檔案

    環境檔案包含各種 Kubernetes 維護命令的輸出。它會提供每個節點和每個網繭的目前資源使用率的相關資訊。此外,還包含所有可用 Kubernetes 實體的叢集資訊和說明。

  • 主機記錄和組態

    將每個主機的組態 (例如,其 /etc 目錄) 和主機特定記錄 (例如 journald) 收集到每個叢集節點或主機的一個目錄中。目錄的名稱與節點的主機名稱相符。目錄的內部內容與主機的檔案系統相符。目錄數目與叢集節點數目相符。

  • 服務記錄
    Kubernetes 服務記錄位於下列資料夾結構中:
    • <hostname>/services-logs/<namespace>/<app-name>/file-logs/<container-name>.log
    • <hostname>/services-logs/<namespace>/<app-name>/console-logs/<container-name>.log

    檔案名稱範例為 my-host-01/services-logs/prelude/vco-app/file-logs/vco-server-app.log

    • hostname 是正在執行或曾經執行應用程式容器的節點的主機名稱。一般來說,每個服務的每個節點都有一個執行個體。例如,3 個節點 = 3 個執行個體。
    • namespace 是在其中部署應用程式的 Kubernetes 命名空間。對於面向使用者的服務,此值為 prelude
    • app-name 是產生記錄的 Kubernetes 應用程式的名稱 (例如 provisioning-service-app)。
    • container-name 是產生記錄的容器的名稱。一些應用程式由多個容器所組成。例如,vco-app 容器包括 vco-server-appvco-controlcenter-app 容器。
  • (舊版) 網繭記錄

    vRealize Automation 8.2 中變更記錄架構之前,服務記錄位於記錄服務包中每個網繭的目錄中。雖然您可以使用 vracli log-bundle --include-legacy-pod-logs 命令繼續在服務包中產生網繭記錄,但不建議這麼做,因為所有記錄資訊都已位於每個服務的記錄中。如果包含網繭記錄,可能會不必要地增加產生記錄服務包所需的時間和空間。

減少記錄服務包的大小

若要產生較小的記錄服務包,請使用下列任一 vracli log-bundle 命令:

  • vracli log-bundle --since-days n

    使用此命令僅收集過去一定天數內產生的記錄檔。否則,將保留並收集過去 2 天的記錄。例如:

    vracli log-bundle --since-days 1

  • vracli log-bundle --services service_A,service_B,service_C

    使用此命令僅收集指定提供的服務的記錄。例如:

    vracli log-bundle --services ebs-app,vco-app

  • vracli log-bundle --skip-heap-dumps

    使用此命令從產生的記錄服務包中排除所有堆積傾印。

顯示記錄

可以使用 vracli logs <pod_name> 命令輸出服務網繭或應用程式的記錄。

可用命令選項如下:
  • --service

    顯示應用程式的所有節點 (而不是單個網繭) 的合併記錄

    範例:vracli logs --service abx-service-app

  • --tail n

    顯示記錄的最後 n 行。n 預設值為 10。

    範例:vracli logs --tail 20 abx-service-app-8598fcd4b4-tjwhk

  • --file

    僅顯示指定的檔案。如果未提供檔案名稱,則顯示所有檔案。

    範例:vracli logs --file abx-service-app.log abx-service-app-8598fcd4b4-tjwhk

瞭解記錄輪替

關於記錄輪替,請瞭解以下服務記錄考量事項:
  • 所有服務都產生記錄。服務記錄儲存在專用的 /var/log/services-logs 磁碟中。
  • 所有記錄都定期輪替。每小時進行一次輪替,或者在達到特定大小限制時進行輪替。
  • 最終會壓縮所有舊記錄輪替。
  • 記錄輪替沒有服務級配額。
  • 系統會保留盡可能多的記錄。Automation 會定期檢查記錄的已用磁碟空間。當空間達到 70% 時,將清除較舊的記錄,直到記錄的磁碟空間達到 60%。
  • 如果需要更多空間,可以調整記錄磁碟的大小。請參閱增加 vRealize Automation 應用裝置磁碟空間

若要檢查記錄磁碟空間,請執行以下 vracli 命令。對於每個節點,/dev/sdc(/var/log) 的可用空間應接近 30% 或更多。

# vracli cluster exec -- bash -c 'current_node; vracli disk-mgr; exit 0'
sc1-10-182-1-103.eng.vmware.com
/dev/sda4(/):
	Total size: 47.80GiB
	Free: 34.46GiB(72.1%)
	Available(for non-superusers): 32.00GiB(66.9%)
	SCSI ID: (0:0)
/dev/sdb(/data):
	Total size: 140.68GiB
	Free: 116.68GiB(82.9%)
	Available(for non-superusers): 109.47GiB(77.8%)
	SCSI ID: (0:1)
/dev/sdc(/var/log):
	Total size: 21.48GiB
	Free: 20.76GiB(96.6%)
	Available(for non-superusers): 19.64GiB(91.4%)
	SCSI ID: (0:2)
/dev/sdd(/home):
	Total size: 29.36GiB
	Free: 29.01GiB(98.8%)
	Available(for non-superusers): 27.49GiB(93.7%)
	SCSI ID: (0:3)