로깅·모니터링 아키텍처

로깅·모니터링 아키텍처 (Logging and Monitoring architecture)

이 페이지는 Airflow가 지원하는 로깅·모니터링 매커니즘의 전체 구조를 설명해요. 기본적으로는 로컬 파일 시스템에 로그를 남기고, 클라우드 배포를 위해서는 AWS·Google Cloud·Azure 같은 클라우드 저장소로 로그를 보내는 커뮤니티 제공 핸들러를 쓸 수 있어요. production 환경에서는 로그를 ElasticSearch·Splunk 같은 곳에 보내기 위해 FluentD를, 메트릭은 Prometheus 같은 곳에 보내기 위해 StatsD를 쓰기를 권장해요.

출처: 문서

본문

Airflow는 아래와 같이 다양한 로깅·모니터링 매커니즘을 지원해요.

../../_images/arch-diag-logging.png

기본적으로 Airflow는 로컬 파일 시스템에 로그를 남기는 것을 지원해요. 여기에는 Web server, Scheduler, 그리고 Task를 실행하는 Worker의 로그가 모두 포함돼요. 이 방식은 개발 환경이나 빠른 디버깅에 적합해요.

클라우드 배포를 위해서는 Airflow가 AWS, Google Cloud, Azure 같은 클라우드 저장소에 로깅하는 커뮤니티 제공 Task 핸들러도 갖추고 있어요.

로깅 설정과 옵션은 Airflow 설정 파일에서 지정할 수 있으며, 평소와 같이 Web server, Scheduler, Worker를 포함한 모든 Airflow 프로세스가 이 파일에 접근할 수 있어야 해요.

각 Airflow 컴포넌트별로 로깅 설정을 커스터마이즈하고 싶다면 Airflow 설정 파일에서 로깅 설정을 지정하거나, 고급 설정을 위해서는 고급 기능을 사용하면 돼요.

production 배포에서는 FluentD를 사용해 로그를 수집하고 ElasticSearch나 Splunk 같은 목적지로 보내는 것을 권장해요.

Note

로깅 설정에 대한 자세한 내용은 Logging for Tasks를 참고해요.

마찬가지로, Airflow에서 메트릭을 수집해 Prometheus 같은 목적지로 보내려면 StatsD를 사용하는 것을 권장해요.

Note

메트릭 설정에 대한 자세한 내용은 Metrics Configuration를 참고해요.

더 알아보기 (Learn more)