我想自动删除所有超过 7 天的日志文件(调度程序和 dag 日志)。
日志文件夹是从容器安装的卷 -
volumes:
- ${AIRFLOW_PROJ_DIR:-.}/dags:/opt/airflow/dags
- ${AIRFLOW_PROJ_DIR:-.}/logs:/opt/airflow/logs
- ${AIRFLOW_PROJ_DIR:-.}/config:/opt/airflow/config
- ${AIRFLOW_PROJ_DIR:-.}/plugins:/opt/airflow/plugins
我尝试根据官方文档将以下日志轮换相关的环境变量添加到 docker compose,但这并没有按预期工作。
AIRLOW__CORE__LOG_ROTATE: 'true'
AIRFLOW__CORE__MAX_LOG_AGE_IN_DAYS: '7'
airflow支持日志轮转吗? 我们需要编写自定义脚本来处理这个问题吗?
如果您使用官方 Airflow Docker Image,它应该包含 clean-logs 脚本,因此您可以将此服务添加到您的 docker-compose 文件中
airflow-log-groomer:
<<: *airflow-common
environment:
<<: *airflow-common-env
CONNECTION_CHECK_MAX_COUNT: "0"
AIRFLOW__LOG_RETENTION_DAYS: "7"
command:
- bash
- /clean-logs