將日誌寫入 Google Stackdriver¶
Airflow 可以設定為在 Google Stackdriver Logging 中讀取和寫入任務日誌。
若要啟用此功能,必須如本範例中所示設定 airflow.cfg
[logging]
# Airflow can store logs remotely in AWS S3, Google Cloud Storage or Elastic Search.
# Users must supply an Airflow connection id that provides access to the storage
# location. If remote_logging is set to true, see UPDATING.md for additional
# configuration requirements.
remote_logging = True
remote_base_log_folder = stackdriver:///logs-name
所有設定選項都在 [logging]
區段中。
預設情況下,應用程式預設憑證會用於取得憑證。如果您想要使用自己的服務帳戶,也可以在
[logging]
區段中設定google_key_path
選項。請確保使用這些憑證,您可以讀取/寫入 Stackdriver。
安裝
google
套件,如下所示:pip install 'apache-airflow[google]'
。重新啟動 Airflow Web 伺服器和排程器,並觸發(或等待)新的任務執行。
驗證新執行的任務的日誌是否顯示在您定義的儲存桶中。
驗證 Google Cloud Storage 檢視器是否在 UI 中運作。使用 Stackdriver,您應該會看到日誌即時提取。
欄位 remote_logging
的值必須始終設定為 True
,此功能才能運作。關閉此選項將導致資料不會傳送至 Stackdriver。
remote_base_log_folder
選項包含指定要使用之處理器類型的 URL。若要與 Stackdriver 整合,此選項應以 stackdriver://
開頭。URL 的路徑區段指定日誌的名稱,例如 stackdriver:///airflow-tasks
會將日誌寫入名稱 airflow-tasks
下。
您可以在 [logging]
區段中設定 google_key_path
選項,以指定 服務帳戶金鑰檔案的路徑。如果省略,將使用基於 應用程式預設憑證的驗證和授權。請確保使用這些憑證,您可以讀取和寫入日誌。
注意
上述憑證與您使用 google_cloud_default
連線設定的憑證不同。它們通常應與 google_cloud_default
憑證不同,僅具有讀取和寫入日誌的功能。基於安全考量,限制日誌讀取器的存取權限,僅允許讀取和寫入日誌是一項重要的安全措施。
透過使用 logging_config_class
選項,您可以取得此處理器的 進階功能。詳細資訊可在處理器的文件中取得 - StackdriverTaskHandler
。
Google Stackdriver 外部連結¶
當設定為使用 Google Stackdriver 作為遠端日誌系統時,Airflow 會自動顯示 Google Stackdriver 的連結。