将日志写入 Opensearch

在 provider 版本 1.5.0 中添加 仅适用于 Airflow>=3.0

Airflow 可以配置为从 Opensearch 读取任务日志,并可选择将日志以标准或 json 格式写入 stdout。这些日志随后可以使用 fluentd、logstash 或其他工具收集并转发到集群。

您可以选择将来自 workers 的所有任务日志输出到最高父级进程,而不是标准的日志文件位置。这为 Kubernetes 等容器环境带来了一些额外的灵活性,在这些环境中,容器的 stdout 已被记录到宿主节点上。从那里,可以使用日志传输工具将它们转发到 Opensearch。要使用此功能,请在 airflow.cfg 中设置 write_stdout 选项。您还可以选择使用 json_format 选项将日志输出为 JSON 格式。Airflow 使用标准的 Python logging 模块,JSON 字段直接从 LogRecord 对象中提取。要使用此功能,请在 airflow.cfg 中设置 json_fields 选项。将您希望收集到日志中的字段添加到逗号分隔的字符串中。这些字段来自 logging 模块中的 LogRecord 对象。可以在此处找到有关不同属性的文档:https://docs.pythonlang.cn/3/library/logging.html#logrecord-objects/

首先,要使用此 handler,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

此条目有用吗?