各項服務會自動產生記錄。您可以在 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 秒預設值。
- 若要確定特定服務記錄 (例如
ebs
或vro
) 使用的磁碟空間,請執行以下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-app
和vco-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)