元件記錄

Istio 元件是使用彈性的記錄框架建置的,該框架提供許多功能和控制項,以協助操作這些元件並促進診斷。您可以透過在啟動元件時傳遞命令列選項來控制這些記錄功能。

記錄範圍

元件輸出的記錄訊息會依範圍分類。範圍代表一組相關的記錄訊息,您可以整體控制這些訊息。不同的元件具有不同的範圍,取決於元件提供的功能。所有元件都有 default 範圍,用於未分類的記錄訊息。

例如,在撰寫本文時,istioctl 有 25 個範圍,代表命令內的各種功能區域

  • adsadscallanalysisauthnauthorizationcacacheclidefaultinstallerklogmcpmodelpatchprocessingresourcesourcespiffetpathtranslatorutilvalidationvalidationControllerwle

Pilot-Agent、Pilot-Discovery 和 Istio Operator 都有各自的作用域,您可以查看它們的參考文件來了解。

每個作用域都有一個獨特的輸出級別,可以是以下其中之一:

  1. none
  2. error
  3. warn
  4. info
  5. debug

其中 none 表示該作用域不產生任何輸出,而 debug 則產生最大量的輸出。所有作用域的預設級別為 info,其目的是為在正常情況下運行 Istio 提供適量的日誌資訊。

要控制輸出級別,您可以使用 --log_output_level 命令列選項。例如:

$ istioctl analyze --log_output_level klog:none,cli:info

除了從命令列控制輸出級別之外,您還可以透過使用正在執行的元件的 ControlZ 介面來控制其輸出級別。

控制輸出

日誌訊息通常會傳送到元件的標準輸出串流。--log_target 選項可讓您將輸出導向到任意數量的不同位置。您可以為該選項提供以逗號分隔的檔案系統路徑列表,以及特殊值 stdoutstderr 分別表示標準輸出和標準錯誤串流。

日誌訊息通常以人類易讀的格式輸出。可以使用 --log_as_json 選項強制將輸出轉換為 JSON 格式,這樣可以更容易讓工具處理。

記錄輪替

Istio 控制平面元件可以自動管理日誌輪換,這使得將大型日誌分割成較小的日誌檔案變得簡單。 --log_rotate 選項可讓您指定用於輪換的基本檔案名稱。衍生名稱將用於個別的日誌檔案。

--log_rotate_max_age 選項可讓您指定執行檔案輪換之前經過的最大天數,而 --log_rotate_max_size 選項則可讓您指定執行檔案輪換之前允許的最大大小(以 MB 為單位)。最後,--log_rotate_max_backups 選項可讓您控制要保留的最大輪換檔案數量,較舊的檔案將會自動刪除。

元件偵錯

--log_caller--log_stacktrace_level 選項可讓您控制日誌資訊是否包含程式設計師級別的資訊。這在嘗試追蹤元件中的錯誤時很有用,但在日常操作中通常不會使用。

這項資訊對您有幫助嗎?
您有任何改進建議嗎?

感謝您的回饋!