[Airflow] Airflow API를 통해 모니터링하기

2024. 11. 19. 14:00·Minding's Programming/Airflow
728x90
반응형

Airflow API

Airflow는 현재 실행되고 있는 airflow의 상태 등을 알 수 있고, 외부에서 조작이 가능하도록 하는 API를 제공하고 있다. 이 API를 사용하기 위해서는 몇 가지 설정이 필요하다.

 

Airflow API 활성화

airflow.cfg의 api 섹션에서 auth_backend의 값을 변경해야 한다. 일반적으로 docker-compose.yaml파일을 사용할 경우 이미 설정이 되어있는 것을 확인할 수 있다.

# docker-compose.yaml 파일

    &airflow-common-env
    
    ...
    
    AIRFLOW__API__AUTH_BACKENDS: 'airflow.api.auth.backend.basic_auth,airflow.api.auth.backend.session'

 

또는 아래 명령어를 통해 확인해볼 수 있다.

docker exec -it {scheduler container 이름} airflow config get-value api auth_backends

>>>
airflow.api.auth.backend.basic_auth,airflow.api.auth.backend.session

 

Airflow API 사용자 추가

Airflow API 사용자는 Webserver UI 또는 CLI를 통해 추가하거나 삭제할 수 있다. (Admin 권한이 있어야 함)

[Security] - [List Users] - [+]

위와 같이 정보를 입력하고, Role에 'User'를 지정한다. (Admin 계정을 사용하는 것보다 이렇게 사용하는 것이 안전하다.)

 

API 호출해보기 (Airflow 정상 동작 확인)

curl -X GET --user "monitor:minding" http://localhost:8080/health
{"dag_processor": {"latest_dag_processor_heartbeat": null, "status": null}, "metadatabase": {"status": "healthy"}, "scheduler": {"latest_scheduler_heartbeat": "2024-11-19T04:25:08.947698+00:00", "status": "healthy"}, "triggerer": {"latest_triggerer_heartbeat": "2024-11-19T04:25:07.776136+00:00", "status": "healthy"}}%

위와 같이 airflow 각 구성에 대한 상태값을 반환해준다. 시간단위는 UTC기준이다.

 

그 외 여러가지 기능을 API를 통해 확인할 수 있다.

# 특정 DAG을 API로 Trigger하기
curl -X POST --user "airflow:airflow" -H 'Content-Type: application/json' -d '{"execution_date":"2023-05-24T00:00:00Z"}' "http://localhost:8080/api/v1/dags/HelloWorld/dagRuns"

# 모든 DAG 리스트 출력하기
curl -X GET --user "airflow:airflow" http://localhost:8080/api/v1/dags

# 모든 Variable 리스트 출력하기
curl -X GET --user "airflow:airflow" http://localhost:8080/api/v1/variables
728x90

'Minding's Programming > Airflow' 카테고리의 다른 글

[Airflow/Slack] Airflow DAG 실패 시 Slack으로 알림 보내기  (0) 2024.11.19
[Airflow] CustomSensor 만들어 활용하기  (0) 2024.08.05
[Airflow] Airflow의 기본 센서 (BashSensor, FileSensor, PythonSensor)  (0) 2024.07.31
[Airflow] Connection Type 신규 추가하는 방법  (0) 2024.07.31
[Airflow] Postgres Hook bulk_load 문제점, Custom Hook으로 bulk_load() 해보기  (0) 2024.07.29
'Minding's Programming/Airflow' 카테고리의 다른 글
  • [Airflow/Slack] Airflow DAG 실패 시 Slack으로 알림 보내기
  • [Airflow] CustomSensor 만들어 활용하기
  • [Airflow] Airflow의 기본 센서 (BashSensor, FileSensor, PythonSensor)
  • [Airflow] Connection Type 신규 추가하는 방법
Minding
Minding
  • Minding
    Today's Minding
    Minding
  • 전체
    오늘
    어제
    • 울고넘는 딥러닝 (278)
      • Minding's Baseball (57)
        • MLB Statcast (29)
        • 머신러닝으로 홈런왕 예측하기 (3)
        • 야구칼럼 (12)
        • 야구 규칙, 용어 (1)
        • 2022-23 질롱 코리아 (8)
        • 류현진 등판경기 (4)
      • Minding's Programming (185)
        • 프로그래머스 코딩테스트 (21)
        • Knowledge (44)
        • Numpy & Pandas (6)
        • Excel (3)
        • Git (1)
        • Pygame (11)
        • CV (3)
        • Tensorflow tutorial (4)
        • Kaggle and Dacon (4)
        • 에러 코드 (8)
        • FastAPI (8)
        • Airflow (29)
        • Crawling (6)
        • Django (14)
        • AWS (18)
        • Spark (5)
      • Minding's Reading (30)
        • 머신러닝 딥러닝에 필요한 기초 수학 with 파이.. (2)
        • 칼만필터는 어렵지 않아 (11)
        • 밑바닥부터 시작하는 딥러닝 (6)
        • 메이저리그 야구 통계학 2e (8)
        • 논문읽기 (2)
        • 빅데이터를 지탱하는 기술 (1)
      • Minding's Life (5)
        • 주식 (4)
        • 각종 소식 (1)
  • 블로그 메뉴

    • 홈
    • Baseball
    • Programming
    • Reading
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Airflow
    프로그래머스
    pygame
    메이저리그
    KalmanFilter
    칼만필터는어렵지않아파이썬
    KBO
    django
    게임개발
    MLB
    머신러닝
    AWS
    django python
    넘파이
    FastAPI
    칼만필터는어렵지않아python
    파이게임
    딥러닝
    코딩테스트
    칼만필터는어렵지않아
    데이터분석
    야구
    데이터 엔지니어
    칼만필터
    파이썬게임개발
    파이썬
    질롱코리아
    mlb stats api
    Python
    에어플로우
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Minding
[Airflow] Airflow API를 통해 모니터링하기
상단으로

티스토리툴바