将日志写入 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-tasksairflow-tasks 名称写入日志。

您可以在 [logging] 部分中设置 google_key_path 选项,以指定 服务帐号密钥文件 的路径。如果省略,将使用基于 应用程序默认凭据 的身份验证和授权。确保使用这些凭据可以读取和写入日志。

注意

上述凭据与您使用 google_cloud_default 连接配置的凭据不同。它们通常应与 google_cloud_default 凭据不同,仅具有读取和写入日志的能力。出于安全原因,将日志读取器的访问权限限制为仅允许读取和写入日志是一项重要的安全措施。

通过使用 logging_config_class 选项,您可以获得此处理程序的 高级功能。详细信息可在处理程序的文档中找到 - StackdriverTaskHandler

此条目有帮助吗?