将日志写入 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

此条目是否有帮助?