Airflow를 운영하다보면 마치 미역이 불어나듯 나날이 늘어나는 존재가 있습니다.
이놈을 간과했다간 어느새 log에 잠식당한 디스크를 볼 수 있을 겁니다.😱
이러한 참사를 막기 위해 적용한 log 최적화 방법을 정리하고자 합니다.
find $AIRFLOW_HOME/logs -type f -mtime +30 -delete
find /var/lib/docker/overlay2/*/diff/opt/airflow/logs/scheduler -type d -mtime +5 -exec rm -rf {} +
/etc/logrotate.d/docker
에 아래 내용을 작성해줍니다./var/lib/docker/containers/*/*.log {
rotate 5
size 50M
compress
missingok
copytruncate
}
airflow-worker:
<<: *airflow-common
container_name: airflow_worker
hostname: ${_AIRFLOW_WORKER_HOSTNAME:-worker}
command: celery worker
volumes:
...
healthcheck:
test:
- "CMD-SHELL"
- 'celery --app airflow.executors.celery_executor.app inspect ping -d "celery@$${HOSTNAME}"'
interval: 10s
timeout: 10s
retries: 5
restart: always
networks:
- airflow
logging:
driver: 'json-file'
options:
max-size: '50m'
max-file: '5'
/etc/docker/daemon.json
에 아래 내용을 작성해줍니다.{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "5"
}
}