寫入日誌到 Opensearch

在 provider 版本 1.5.0 中新增 僅適用於 Airflow>=3.0

Airflow 可以設定為從 Opensearch 讀取任務日誌,並選擇性地以標準或 JSON 格式將日誌寫入 stdout。這些日誌之後可以使用 fluentd、logstash 或其他工具收集並轉發到叢集。

您可以選擇將所有來自 worker 的任務日誌輸出到最高的父層級程序,而不是標準檔案位置。這在 Kubernetes 等容器環境中提供了一些額外的彈性,在這些環境中,容器 stdout 已經被記錄到主機節點。從那裡,可以使用日誌傳輸工具將它們轉發到 Opensearch。要使用此功能,請在 airflow.cfg 中設定 write_stdout 選項。您也可以選擇使用 json_format 選項以 JSON 格式輸出日誌。Airflow 使用標準 Python logging 模組,JSON 欄位直接從 LogRecord 物件中提取。要使用此功能,請在 airflow.cfg 中設定 json_fields 選項。將您想要為日誌收集的欄位新增到逗號分隔的字串中。這些欄位來自 logging 模組中的 LogRecord 物件。此處可以找到關於不同屬性的文件

首先,要使用處理器,必須如下配置 airflow.cfg

[logging]
remote_logging = True

[opensearch]
host = <host>
port = <port>
username = <username>
password = <password>

要以 JSON 格式將任務日誌輸出到 stdout,可以使用以下配置

[logging]
remote_logging = True

[opensearch]
write_stdout = True
json_format = True

透過 TLS 寫入日誌到 Opensearch

要將自訂配置新增到 Opensearch(例如,開啟 ssl_verify、新增自簽憑證等),請使用 airflow.cfg 中的 opensearch_configs 設定

[logging]
remote_logging = True

[opensearch_configs]
use_ssl = True
verify_certs = True
ssl_assert_hostname = True
ca_certs=/path/to/CA_certs

這篇文章是否對您有幫助?