將日誌寫入 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] 區段中。

  1. 預設情況下,應用程式預設憑證會用於取得憑證。如果您想要使用自己的服務帳戶,也可以在 [logging] 區段中設定 google_key_path 選項。

  2. 請確保使用這些憑證,您可以讀取/寫入 Stackdriver。

  3. 安裝 google 套件,如下所示:pip install 'apache-airflow[google]'

  4. 重新啟動 Airflow Web 伺服器和排程器,並觸發(或等待)新的任務執行。

  5. 驗證新執行的任務的日誌是否顯示在您定義的儲存桶中。

  6. 驗證 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

此條目是否有幫助?