Конфигурационные параметры Airflow

Для конфигурации сервиса используйте следующие параметры, доступные в ADCM.

ПРИМЕЧАНИЕ
  • Некоторые из перечисленных параметров становятся доступны в UI ADCM после установки флага Advanced.

  • Значения, установленные в Custom-параметрах, перепишут текущие значения параметров, даже если они read-only.

Create default connections

Флаг, указывающий, следует ли создавать предопределенные подключения Airflow и провайдеры во время первоначальной настройки сервиса.

Use secret backend with Vault
Параметр Описание Значение по умолчанию

Manage sensitive configuration data

При активации ADO берет на себя как создание секретов (перемещение их из настроек в Vault), так и их обновление. Необходимы права для создания секретов. Влияет на сервисное действие Rotate fernet key (см. Ротация fernet-ключа)

true

Secrets backend

Используемый бэкенд

airflow.providers.hashicorp.secrets.vault.VaultBackend

url

Базовый URL для адресуемого экземпляра Vault. Должен включать протокол и номер порта (например, http://127.0.0.1:8200)

 — 

auth_type

Метод аутентификации в Vault. Возможные значения: approle, github, kubernetes, ldap, token, userpass

token

mount_point

Точка монтирования движка Vault. Параметр mount_point не используется для аутентификации, если она реализована через другой движок. За точку монтирования аутентификации отвечает параметр auth_mount_point

secret

config_path

Путь к секретам конфигурации Airflow. Если значение None (null), то запросы на получение конфигураций (configurations) не будут переданы в Vault

config

connections_path

Путь к секретам соединений. Если значение None (null), то запросы на получение подключений (connections) не будут переданы в Vault

connections

variables_path

Путь к секретам переменных. Если значение None (null), то запросы на получение переменных (variables) не будут переданы в Vault

variables

auth_mount_point

Определяет точку монтирования для выбранного метода аутентификации. Значение по умолчанию зависит от выбранного метода аутентификации

 — 

kv_engine_version

Версия запускаемого движка

2

token

Токен аутентификации, используемый для отправки запросов в Vault (для методов аутентификации token и github)

 — 

token_path

Путь к файлу, содержащему токен аутентификации, используемый для отправки запросов в Vault (для методов аутентификации token и github)

 — 

username

Имя пользователя для методов аутентификации ldap и userpass

 — 

password

Пароль для методов аутентификации ldap и userpass

 — 

secret_id

Secret ID для метода аутентификации approle

 — 

role_id

Role ID для метода аутентификации approle

 — 

Database settings
Параметр Описание Значение по умолчанию

admin_password

Пароль администратора веб-сервера

 — 

db_user

Имя пользователя БД метаданных

airflow

db_password

Пароль пользователя БД метаданных

 — 

Database type

Тип внешней базы данных. Возможные значения: PostgreSQL, MySQL/MariaDB

PostgreSQL

Database connection string

Параметры подключения к базе данных

{{ groups['adpg.adpg'][0] | d(groups['adpg.adpg.maintenance_mode'][0]) | d(omit) }}:5432

Airflow database name

Имя внешней базы данных

airflow

airflow.cfg [core]
Параметр Описание Значение по умолчанию

dags_folder

Абсолютный путь к каталогу пайплайнов Airflow

/opt/airflow/dags

hostname_callable

Путь к вызываемому объекту, который разрешит имя хоста. Формат — package.function. Значение по умолчанию (airflow.utils.net.getfqdn) указывает, что используется исправленная версия socket.getfqdn(). В указанной функции не должно быть аргументов. Если предпочтительно использовать IP-адрес в качестве имени хоста, используйте параметр airflow.utils.net.get_host_ip_address

airflow.utils.net.getfqdn

might_contain_dag_callable

Вызываемый объект для проверки того, определены ли в файле Python DAG Airflow или нет, с аргументом: (file_path: str, zip_file: zipfile.ZipFile | None = None). Возвращает True, если есть DAG, в противном случае False. Если это не указано, Airflow использует собственные эвристические правила

airflow.utils.file.might_contain_dag_via_default_heuristic

default_timezone

Часовой пояс. Может быть UTC (по умолчанию), системным (system) или любой строкой часового пояса IANA (например, Europe/Amsterdam)

utc

executor

Класс executor, который должен использовать Airflow. Возможные значения: SequentialExecutor, LocalExecutor, CeleryExecutor, DaskExecutor, KubernetesExecutor, CeleryKubernetesExecutor или полный путь импорта к классу, если используется пользовательский класс

CeleryExecutor

auth_manager

Класс менеджера аутентификации, который должен использовать Airflow. Полный путь импорта к классу менеджера аутентификации

airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager

execution_api_server_url

URL-адрес API-сервера Task Execution API. Если поле не заполнено, бандл определяет его на основе базового URL-адреса Airflow API. При использовании HAProxy следует указывать URL-адрес HAProxy

http://<FQDN>:8080/execution/

parallelism

Определяет максимальное количество экземпляров задач, которые могут одновременно выполняться на планировщике в Airflow, независимо от количества воркеров. Обычно это значение, умноженное на количество планировщиков в кластере, и является максимальным количеством экземпляров задач с запущенным состоянием в базе метаданных

32

max_active_tasks_per_dag

Максимальное количество экземпляров задач, разрешенных для одновременного запуска в каждой группе DAG. Чтобы рассчитать количество задач, которые одновременно выполняются для группы DAG, сложите количество запущенных задач для всех запусков группы DAG. Это настраивается на уровне группы DAG с помощью max_active_tasks, который по умолчанию равен max_active_tasks_per_dag. Это может быть полезно для того, чтобы новая группа DAG с ранней датой запуска не занимала все слоты исполнителя в кластере

16

dags_are_paused_at_creation

Флаг, указывающий, приостановлены ли DAG по умолчанию при создании

true

max_active_runs_per_dag

Максимальное количество активных запусков одного DAG. Планировщик не будет запускать DAG, если достигнет этого предела. Настраивается на уровне DAG с помощью max_active_runs, который по умолчанию равен max_active_runs_per_dag

16

mp_start_method

Имя метода, используемого для запуска процессов Python через модуль multiprocessing. Напрямую соответствует параметрам, доступным в документации Python. Должно быть одним из значений, возвращаемых multiprocessing

 — 

load_examples

Загружать ли примеры DAG, которые поставляются с Airflow

true

plugins_folder

Путь к папке, содержащей плагины Airflow

/usr/lib/airflow/plugins

execute_tasks_new_python_interpreter

Параметр указывает на то, должны ли задачи выполняться путем ответвления родительского процесса (False, более быстрый вариант) или путем порождения нового процесса Python (True медленно, но означает, что изменения плагина сразу же подхватываются задачами)

false

fernet_key

Секретный ключ для сохранения паролей подключений в базе данных

 — 

donot_pickle

Отключать ли консервирование DAG

true

dagbag_import_timeout

Как часто импортируются файлы Python

30

dagbag_import_error_tracebacks

Флаг, указывающий на то, должна ли отображаться трассировка в пользовательском интерфейсе для ошибок импорта dagbag вместо простого сообщения об исключении

true

dagbag_import_error_traceback_depth

При включенном отображении трассировок описывает сколько записей из трассировки должно быть показано

2

task_runner

Класс, используемый для запуска экземпляров задач в подпроцессе. Возможные значения: StandardTaskRunner, CgroupTaskRunner или полный путь импорта к классу при использовании пользовательского исполнителя задач

StandardTaskRunner

default_impersonation

Имя пользователя, от которого будут выполняться задачи (кроме задач без аргумента run_as_user). Может использоваться для понижения прав пользователя sudo, запускающего Airflow при выполнении задач

 — 

security

Определяет, какой модуль безопасности использовать. Например, kerberos

 — 

unit_test_mode

Включает режим модульного тестирования (при этом перезаписываются многие параметры конфигурации тестовыми значениями во время выполнения)

false

enable_xcom_pickling

Использовать ли xcom pickling (обратите внимание, что это небезопасно и допускает эксплойты RCE)

false

allowed_deserialization_classes

Какие классы можно импортировать во время десериализации. Это многострочное значение. Отдельные элементы будут проанализированы как регулярное выражение. Встроенные классы Python (например, dict) всегда разрешены. Чистый . будет заменен, чтобы можно было задать airflow.*

airflow.*

killed_task_cleanup_time

Когда задача завершается принудительно, это количество времени в секундах, которое у нее есть на очистку после отправки SIGTERM, прежде чем она получит SIGKILLED

60

dag_run_conf_overrides_params

Переопределять ли параметры с помощью dag_run.conf. Если вы передаете некоторые пары ключ/значение через airflow dags backfill -c или airflow dags trigger -c, пары ключ/значение переопределят существующие в параметрах

true

dag_discovery_safe_mode

Если включено, Airflow будет сканировать только файлы, содержащие как DAG, так и airflow (без учета регистра)

true

dag_ignore_file_syntax

Синтаксис шаблона, используемый в файлах .airflowignore в каталогах DAG. Допустимые значения: regexp или glob

regexp

default_task_retries

Количество повторных попыток запуска задач по умолчанию. Может быть переопределено на уровне DAG или задачи

0

default_task_retry_delay

Количество секунд, которое каждая задача будет простаивать между повторными попытками. Может быть переопределено на уровне DAG или задачи

300

max_task_retry_delay

Максимальная задержка (в секундах), которую каждая задача будет простаивать между повторными попытками. Это глобальная настройка, и ее нельзя переопределить на уровне задачи или DAG

86400

default_task_weight_rule

Метод взвешивания, используемый для эффективного общего веса приоритета задачи

downstream

default_task_execution_timeout

Значение execution_timeout задачи по умолчанию для операторов. Ожидается, что в timedelta будет передано целое значение в виде секунд. Если не указано, то значение рассматривается как None, что означает, что операторы никогда не будут отсчитываться по времени по умолчанию

 — 

min_serialized_dag_update_interval

Обновление сериализованного DAG не может быть быстрее минимального интервала, чтобы снизить скорость записи в базу данных

30

compress_serialized_dags

Если True, сериализованные DAG сжимаются перед записью в БД. Это отключит просмотр зависимостей DAG

false

min_serialized_dag_fetch_interval

Извлечение сериализованного DAG не может быть быстрее минимального интервала для снижения скорости чтения базы данных. Эта конфигурация контролирует, когда ваши DAG обновляются на веб-сервере

10

max_num_rendered_ti_fields_per_task

Максимальное количество полей экземпляра отрендеренной задачи (полей шаблона) на задачу для хранения в базе данных. Все template_fields для каждого экземпляра задачи хранятся в базе данных. Если это число небольшое, может возникнуть ошибка при попытке просмотра вкладки Rendered в представлении TaskInstance для старых задач

30

check_slas

Проверять ли на соответствие определенным SLA перед каждым запуском DAG

true

xcom_backend

Путь к пользовательскому классу XCom, который будет использоваться для хранения и разрешения результатов операторов

airflow.models.xcom.BaseXCom

lazy_load_plugins

По умолчанию плагины Airflow загружаются только при необходимости. Установите значение False, если вы хотите загружать плагины всякий раз, когда airflow вызывается через CLI или загружается из модуля

true

lazy_discover_providers

По умолчанию поставщики Airflow обнаруживаются "лениво" (обнаружение и импорт происходят только при необходимости). Установите значение False, если вы хотите обнаруживать поставщиков всякий раз, когда команда airflow вызывается через CLI или загружается из модуля

true

hide_sensitive_var_conn_fields

Скрыть ли конфиденциальные переменные или дополнительные ключи подключения JSON из пользовательского интерфейса и журналов задач. Если установлено значение True, пароли подключения всегда скрыты в журналах

true

sensitive_var_conn_names

Список дополнительных конфиденциальных ключевых слов, разделенных запятыми, для поиска в именах переменных или дополнительном JSON-файле соединения

 — 

default_pool_task_slot_count

Слоты задач подсчитываются для default_pool. Эта настройка не будет иметь никакого эффекта в окружении, где default_pool уже создан. В запущенном окружении пользователи могут изменить количество слотов с помощью веб-сервера, API или CLI

128

max_map_length

Максимальная длина списка/словаря, которую XCom может отправить для запуска сопоставления задач. Если отправленный список/словарь имеет длину, превышающую это значение, задача, отправляющая XCom, будет автоматически отклонена, чтобы не допустить засорения планировщика сопоставленными задачами

1024

daemon_umask

Umask по умолчанию для процесса, запущенного в режиме демона (планировщик, воркер и т.д.). Управляет маской режима создания файлов, которая определяет начальное значение битов разрешения файла для вновь созданных файлов. Это значение рассматривается как восьмеричное целое число

0o077

dataset_manager_class

Класс для использования в качестве менеджера набора данных

 — 

dataset_manager_kwargs

Kwargs должен предоставить менеджеру датасета

 — 

database_access_isolation

Экспериментальная функция. Флаг, указывающий, должны ли компоненты использовать Airflow Internal API для подключения к БД

false

internal_api_url

Экспериментальная функция. Внутренний API-адрес Airflow. Используется только если основная настройка database_access_isolation установлена в True

 — 

max_consecutive_failed_dag_runs_per_dag

Максимальное допустимое количество последовательных неудачных запусков DAG прежде чем он будет считаться неудачным

0

fernet_key_secret

Имя ключа Fernet в ADO

fernet_key_value

allowed_deserialization_classes_regexp

Регулярное выражение, определяющие дополнительные классы, разрешенные во время десериализации

 — 

task_success_overtime

Максимальное дополнительное время в секундах, доступное для вспомогательных процессов после того, как задача отмечена как успешно выполненная

20

strict_dataset_uri_validation

Включает строгую проверку URI-данных

false

internal_api_secret_key

Секретный ключ, используемый для аутентификации запросов к внутреннему API Airflow

 — 

test_connection

Управляет доступностью проверки соединения через пользовательский интерфейс Airflow, API и CLI

Disabled

max_templated_field_length

Максимальная длина поля шаблона в Airflow

4096

airflow.cfg [database]
Параметр Описание Значение по умолчанию

sql_alchemy_conn

Строка подключения SQLAlchemy к базе метаданных. Значение параметра автоматически заполняется на основе входных значений в разделе Database settings. Оно не отображается в пользовательском интерфейсе по соображениям безопасности. SQLAlchemy поддерживает множество различных database engines

 — 

sql_alchemy_engine_args

Дополнительные аргументы ключевых слов, специфичные для движка, передаются в create_engine SQLAlchemy в виде значения в кодировке JSON

 — 

sql_engine_encoding

Кодировка для баз данных

utf-8

sql_engine_collation_for_ids

Сортировка для столбцов dag_id, task_id, key, external_executor_id в случае, если они имеют разную кодировку. По умолчанию эта сортировка такая же, как сортировка базы данных, однако для mysql и mariadb по умолчанию используется utf8mb3_bin, так что размеры индекса ключей индекса не будут превышать максимальный размер разрешенного индекса, когда сортировка установлена в utf8mb4 variant

 — 

sql_alchemy_pool_enabled

Флаг, указывающий на то, должен ли SQLAlchemy объединять соединения с базой данных

true

sql_alchemy_pool_size

Размер пула SQLAlchemy — это максимальное количество подключений к базе данных в пуле. 0 означает отсутствие ограничений

5

sql_alchemy_max_overflow

Максимальный размер переполнения пула. Когда количество извлеченных соединений достигает размера, установленного в pool_size, будут возвращены дополнительные соединения до этого предела. Когда эти дополнительные соединения возвращаются в пул, они отключаются и удаляются. Общее количество одновременных соединений, которые пул разрешит, равно pool_size + max_overflow, а общее количество спящих соединений, которые пул разрешит, равно pool_size. max_overflow можно установить на -1, чтобы указать отсутствие предела переполнения; ограничение на общее количество одновременных соединений не накладывается. Значение по умолчанию равно 10

10

sql_alchemy_pool_recycle

Pool SQLAlchemy recycle — это количество секунд, в течение которых соединение может простаивать в пуле, прежде чем оно будет признано недействительным. Эта конфигурация не применяется к Sqlite. Если число подключений к БД когда-либо будет превышено, более низкое значение конфигурации позволит системе быстрее восстанавливаться

1800

sql_alchemy_pool_pre_ping

Необходима ли проверка соединения в начале каждой проверки пула соединений

true

sql_alchemy_schema

Схема, используемая для базы метаданных. SQLAlchemy поддерживает базы данных с концепцией множественных схем

 — 

sql_alchemy_connect_args

Путь импорта аргументов подключения в SQLAlchemy. По умолчанию указан пустой словарь. Эта настройка полезна, когда вы хотите настроить аргументы движка БД, которые SQLAlchemy не будет анализировать в строке подключения

 — 

load_default_connections

Загружать ли соединения по умолчанию, которые поставляются с Airflow

true

max_db_retries

Количество повторных попыток запуска кода в случае ошибок работы БД. Не все транзакции будут запущены повторно, так как это может привести к нежелательному состоянию. В настоящее время настройка используется только в DagFileProcessor.process_file для повторных попыток dagbag.sync_to_db

3

check_migrations

Запускать ли alembic migrations во время запуска Airflow. Иногда эта операция может быть затратной, и пользователи могут указывать правильную версию другими способами (например, через диаграмму Helm). Принимает True или False

true

alembic_ini_file_path

Путь к файлу alembic.ini

alembic.ini

sql_alchemy_conn_secret

Секретный ключ ADO, который будет использоваться в качестве значения для подключения к SQLAlchemy

sql_alchemy_conn_value

sql_alchemy_session_maker

Путь импорта для пользовательского генератора сессий SQLAlchemy

 — 

airflow.cfg [logging]
Параметр Описание Значение по умолчанию

base_log_folder

Абсолютный путь к директории логов Airflow. Некоторые настройки предполагают, что здесь используется значение по умолчанию. После указания нового пути может потребоваться обновить настройки dag_processor_manager_log_location и dag_processor_manager_log_location

/var/log/airflow

remote_logging

Airflow может хранить логи удаленно в AWS S3, Google Cloud Storage или Elastic Search. Установите значение True, если хотите включить удаленное ведение логов

false

remote_log_conn_id

Пользователи должны предоставить идентификатор подключения Airflow, который обеспечивает доступ к месту хранения логов. В зависимости от настроек службы логирования, подключение может использоваться только для чтения логов, а не для их записи

 — 

delete_local_logs

Нужно ли удалять локальные логи для удаленного ведения журналов GCS, S3, WASB и OSS после их загрузки в удаленное местоположение

false

google_key_path

Путь к файлу учетных данных Google JSON. Если не указан, будет использоваться авторизация на основе Application Default Credentials

 — 

remote_base_log_folder

URL-адрес контейнера хранилища для удаленного ведения журнала. Чтобы помочь Airflow выбрать правильный обработчик: бакеты S3 должны начинаться с s3://, группы логов Cloudwatch должны начинаться с cloudwatch://, бакеты GCS должны начинаться с gs://, бакеты WASB должны начинаться с wasb, логи Stackdriver должны начинаться с stackdriver://

 — 

remote_task_handler_kwargs

Параметр remote_task_handler_kwargs загружается в словарь, передается в __init__ удаленного обработчика задач и переопределяет значения, предоставленные конфигурацией Airflow. Например, если вы установите delete_local_logs=False и предоставите {{"delete_local_copy": true}}, то локальные файлы журналов будут удалены после их загрузки в удаленное хранилище

 — 

encrypt_s3_logs

Использовать ли шифрование на стороне сервера для журналов, хранящихся в S3

false

logging_level

Уровень ведения журнала. Поддерживаемые значения: CRITICAL, ERROR, WARNING, INFO, DEBUG

INFO

celery_logging_level

Уровень ведения журнала для Celery

WARNING

fab_logging_level

Уровень логирования для Flask-appbuilder UI. Поддерживаемые значения: CRITICAL, ERROR, WARNING, INFO, DEBUG

WARNING

logging_config_class

Имя класса, который определяет конфигурацию ведения журнала. Этот класс должен быть в Python classpath

 — 

colored_console_log

Флаг для включения/выключения цветных журналов

true

colored_log_format

Формат журнала для цветных журналов, если они включены. Значение должно быть заключено в теги raw/endraw

{% raw %}[%%(blue)s%%(asctime)s%%(reset)s] {%%(blue)s%%(filename)s:%%(reset)s%%(lineno)d} %%(log_color)s%%(levelname)s%%(reset)s - %%(log_color)s%%(message)s%%(reset)s{% endraw %}

colored_formatter_class

Указывает класс, используемый Airflow для реализации цветного логирования

airflow.utils.log.colored_log.CustomTTYColoredFormatter

log_format

Формат строки логов. Значение должно быть заключено в теги raw/endraw

{% raw %}[%%(asctime)s] {%%(filename)s:%%(lineno)d} %%(levelname)s - %%(message)s{% endraw %}

simple_log_format

Определяет формат сообщений логов для простой конфигурации логов

%%(asctime)s %%(levelname)s - %%(message)s

dag_processor_log_target

Где хранить логи парсера DAG. Если установлено значение file, логи отправляются в файлы логов, определенные в child_process_log_directory

file

dag_processor_log_format

Формат строки журнала процессора DAG. Значение должно быть заключено в теги raw/endraw

{% raw %}[%%(asctime)s] [SOURCE:DAG_PROCESSOR]{{%%(filename)s:%%(lineno)d}} %%(levelname)s - %%(message)s{% endraw %}

log_formatter_class

Определяет класс форматирования, используемый Airflow для структурирования сообщений журнала. Класс форматирования по умолчанию учитывает часовой пояс, что означает, что временные метки, прикрепленные к записям журнала, будут скорректированы для отражения локального часового пояса экземпляра Airflow

airflow.utils.log.timezone_aware.TimezoneAware

secret_mask_adapter

Путь импорта к функции для добавления адаптаций каждого секрета, добавленного с помощью airflow.utils.log.secrets_masker.mask_secret, которые будут замаскированы в сообщениях журнала. Ожидается, что данная функция потребует один параметр: секрет, который будет адаптирован. Она может возвращать одну адаптацию секрета или итерируемый набор адаптаций, чтобы каждый из них был замаскирован как секреты. Исходный секрет будет замаскирован, как и любые возвращенные адаптации

 — 

task_log_prefix_template

Шаблон префикса, указываемый с помощью обработчика потока TaskHandlerWithCustomFormatter

 — 

log_filename_template

Формат сгенерированного файла Airflow и имена путей для каждого запуска задачи. Значение должно быть заключено в теги raw/endraw

{% raw %}dag_id={{ ti.dag_id }}/run_id={{ ti.run_id }}/task_id={{ ti.task_id }}/{%% if ti.map_index >= 0 %%}map_index={{ ti.map_index }}/{%% endif %%}attempt={{ try_number }}.log{% endraw %}

log_processor_filename_template

Формат сгенерированного файла Airflow и пути имен для журналов. Значение должно быть заключено в теги raw/endraw

{% raw %}{{ filename }}.log{% endraw %}

dag_processor_manager_log_location

Полный путь к файлу журнала dag_processor_manager

/var/log/airflow/dag_processor_manager/dag_processor_manager.log

task_log_reader

Имя обработчика для чтения журналов экземпляров задач. По умолчанию используется обработчик task

task

extra_logger_names

Список имен сторонних регистраторов, разделенных запятыми, которые будут настроены для вывода сообщений на консоли

 — 

worker_log_server_port

Когда запущен воркер Airflow, служба запускает небольшой подпроцесс веб-сервера для обслуживания локальных логов воркеров на главном веб-сервере Airflow, который затем создает страницы и отправляет их пользователям. Этот параметр определяет порт, на котором обслуживаются логи. Он должен быть неиспользуемым, открытым и видимым с главного веб-сервера для подключения к воркерам

8793

trigger_log_server_port

Порт для обслуживания журналов для триггера. Смотрите описание worker_log_server_port для получения дополнительной информации

8794

interleave_timestamp_parser

Импортировать ли путь к вызываемому объекту, который принимает строку журнала и возвращает временную метку (datetime.datetime compatible)

 — 

file_task_handler_new_folder_permissions

Разрешения в виде восьмеричной строки, как их понимает chmod. Разрешения важны, когда принимается роль другого пользователя для записи в логи. Безопасный способ настройки — добавить нужных пользователей в одну и ту же группу и сделать ее группой по умолчанию для этих пользователей. Журналы, доступные для записи группой, являются журналами по умолчанию в Airflow. Для случаев, когда журналы доступны для записи другим пользователям, установите значение 0o777. Для повышения уровня безопасности измените значение параметра на 0o755, чтобы сделать логи доступными для записи только владельцу. Вы также можете сделать их доступными для чтения только владельцу, изменив значение на 0o700, если весь доступ (чтение/запись) к логам происходит от одного и того же пользователя

0o775

file_task_handler_new_file_permissions

Разрешения в виде восьмеричной строки, как понимает chmod. Разрешения важны, когда принимается роль другого пользователя для записи в логи. Безопасный способ настройки — добавить обоих пользователей в одну и ту же группу и сделать ее группой по умолчанию для этих пользователей. В случаях, когда журналы доступны для записи другим пользователям, установите значение 0o666. Для случаев, когда журналы доступны для записи другим пользователям, установите значение 0o777. Для повышения уровня безопасности измените значение параметра на 0o755, чтобы сделать логи доступными для записи только владельцу. Вы также можете сделать их доступными для чтения только владельцу, изменив значение на 0o700, если весь доступ (чтение/запись) к логам происходит от одного и того же пользователя

0o664

dag_processor_manager_log_stdout

Флаг, определяющий, будет ли менеджер обработчиков DAG записывать логи в стандартный вывод

false

celery_stdout_stderr_separation

Флаг, который выводит менее важные логи Celery в стандартный вывод, а более значимые логи — в stderr

false

enable_task_context_logger

Включает регистратор контекста задачи

true

color_log_error_keywords

Список ключевых слов, разделенных запятыми, наличие которых подсвечивает строки лога как ошибку

error,exception

color_log_warning_keywords

Список ключевых слов, разделенных запятыми, наличие которых подсвечивает строки лога как предупреждение

warn

airflow.cfg [metrics]
Параметр Описание Значение по умолчанию

metrics_allow_list

Для ограничения отправки всех доступных метрик настройте список префиксов (разделенных запятыми), чтобы отправлять только те метрики, которые начинаются с элементов списка (например: scheduler,executor,dagrun)

 — 

metrics_block_list

Для ограничения отправки всех доступных метрик настройте список префиксов (разделенных запятыми), чтобы отфильтровать метрики, которые начинаются с элементов списка (например: scheduler,executor,dagrun). Если настроены metrics_allow_list и metrics_block_list, metrics_block_list игнорируется

 — 

statsd_on

Включает отправку показателей в StatsD

true

statsd_host

Указывает адрес хоста, на котором запущен демон (или сервер) StatsD

localhost

statsd_port

Указывает порт, который слушает демон (или сервер) StatsD

8125

statsd_prefix

Определяет пространство имен для всех метрик, отправляемых из Airflow в StatsD

airflow

stat_name_handler

Функция, которая проверяет имя statsD stat, применяет изменения к имени stat, если необходимо, и возвращает преобразованное имя stat. Функция должна иметь следующую сигнатуру: def func_name(stat_name: str) → str

 — 

statsd_datadog_enabled

Включает интеграцию datadog для отправки показателей Airflow

false

statsd_datadog_tags

Список тегов datadog, прикрепленных ко всем метрикам (например: key1:value1,key2:value2)

 — 

statsd_datadog_metrics_tags

Установите значение False, чтобы отключить теги метаданных для некоторых излучаемых метрик

true

statsd_custom_client_path

Если вы хотите использовать свой собственный клиент StatsD, установите соответствующий путь к модулю в этом значении. Путь к модулю должен существовать в PYTHONPATH

 — 

statsd_disabled_tags

Если вы хотите избежать отправки всех доступных тегов метрик в StatsD, настройте список префиксов (разделенных запятыми), чтобы отфильтровать теги метрик, которые начинаются с элементов списка (например: job_id,run_id)

job_id,run_id

statsd_influxdb_enabled

Включает отправку метрик Airflow с использованием соглашения о тегах StatsD-Influxdb

false

otel_on

Позволяет отправлять метрики в OpenTelemetry

false

otel_host

Указывает имя хоста или IP-адрес OpenTelemetry Collector, на который Airflow отправляет трассировки

localhost

otel_port

Указывает порт, который прослушивает OpenTelemetry Collector

8889

otel_prefix

Префикс для показателей Airflow

airflow

otel_interval_milliseconds

Определяет интервал в миллисекундах, с которым Airflow отправляет пакеты метрик и трассировок в настроенный OpenTelemetry Collector

60000

metrics_use_pattern_match

Определяет, интерпретируются ли списки разрешенных/заблокированных метрик как шаблоны

false

otel_debugging_on

Включает дополнительный вывод отладочной информации OpenTelemetry

false

otel_service

Имя сервиса, передаваемое в OpenTelemetry

Airflow

otel_ssl_active

Включает SSL для OpenTelemetry

false

airflow.cfg [traces]
Параметр Описание Значение по умолчанию

otel_on

Позволяет отправлять трассировки в OpenTelemetry

false

otel_host

Имя хоста или IP-адрес OpenTelemetry Collector, которому Airflow отправляет трассировки

localhost

otel_port

Порт эндпойнта OpenTelemetry

8889

otel_debugging_on

Включает дополнительный отладочный вывод OpenTelemetry

false

otel_service

Имя сервиса, передаваемое в OpenTelemetry

Airflow

otel_ssl_active

Включает SSL для OpenTelemetry

false

otel_task_log_event

Конфигурация JSON, передаваемая в бэкенд секретов при его инициализации

 — 

airflow.cfg [secrets]
Параметр Описание Значение по умолчанию

backend

Полное имя класса бэкенда секретов

 — 

backend_kwargs

Конфигурация JSON, передаваемая в бэкенд секретов при его инициализации

 — 

use_cache

Включает локальное кеширование переменных при разборе DAG

false

cache_ttl_seconds

Время хранения кешированных значений секретов/переменных в секундах

900

airflow.cfg [cli]
Параметр Описание Значение по умолчанию

api_client

Определяет формат доступа к API. LocalClient будет использовать базу данных напрямую, в то время как json_client будет использовать API, работающий на веб-сервере

airflow.api.client.local_client

endpoint_url

Если вы задали web_server_url_prefix, добавьте его здесь следующим образом: endpoint_url = http://localhost:8080/myroot. Тогда API URI будет выглядеть так: http://localhost:8080/myroot/api/experimental/...

http://localhost:8080

airflow.cfg [debug]
Параметр Описание Значение по умолчанию

fail_fast

Если установлено значение True, DAG завершит работу с первой неудачной задачей. Используется только с DebugExecutor

false

airflow.cfg [api]
Параметр Описание Значение по умолчанию

base_url

Базовый URL сервера API Airflow. Если не указан, ADCM использует адрес первого хоста сервера

 — 

host

IP-адрес, на котором API-сервер слушает соединения

0.0.0.0

port

Порт, на котором API-сервер слушает соединения

8080

workers

Количество воркеров, запускаемых на API-сервере

1

worker_timeout

Тайм-аут в секундах, в течение которого API-сервер ожидает ответа от воркера

120

server_type

Реализация сервера, используемая API-сервером: uvicorn или gunicorn

uvicorn

worker_refresh_interval

Интервал между перезапусками воркеров API-сервера, в секундах. Параметр используется только с server_type=gunicorn

0

worker_refresh_batch_size

Количество воркеров сервера API, перезапускаемых одновременно. Параметр используется только с server_type=gunicorn

1

secret_key

Общий секретный ключ API-сервера. Значение должно быть одинаковым для всех экземпляров API-сервера

 — 

ssl_cert

Путь к SSL-сертификату API-сервера

 — 

ssl_key

Путь к SSL-ключу сертификата API-сервера

 — 

maximum_page_limit

Максимальный размер страницы, разрешенный для запросов к API

100

fallback_page_limit

Размер страницы по умолчанию, используемый, если в запросе к API не указан лимит

100

access_control_allow_headers

Заголовки CORS, разрешенные API-сервером

 — 

access_control_allow_methods

Методы CORS, разрешенные API-сервером

 — 

access_control_allow_origins

Источники CORS, разрешенные API-сервером. Для указания нескольких URL разделяйте их пробелами

 — 

enable_swagger_ui

Включает Swagger UI на API-сервере

true

expose_config

Отображает конфигурацию Airflow через интерфейс API с маскированием конфиденциальных данных

false

expose_stacktrace

Отображает трассировки стека через API-сервер

false

log_config

Путь к файлу конфигурации логирования Uvicorn

 — 

log_stream_buffer_size

Количество строк лога, буферизуемых перед передачей логов клиенту

500

airflow.cfg [fab]
Параметр Описание Значение по умолчанию

config_file

Путь к файлу конфигурации веб-сервера FAB

/usr/lib/airflow/webserver_config.py

auth_backends

Список auth-бэкендов FAB для аутентификации API Airflow, разделенный запятыми

airflow.providers.fab.auth_manager.api.auth.backend.basic_auth

update_fab_perms

Определяет, обновлять ли разрешения FAB при запуске API Server

true

airflow.cfg [api_auth]
Параметр Описание Значение по умолчанию

jwt_secret

Секрет, используемый для подписи и проверки JWT

<secret>

jwt_algorithm

Алгоритм, используемый при создании и проверке JWT Task Identities

HS512

jwt_issuer

Утверждение issuer, используемое при создании и проверке JWT

 — 

jwt_audience

Утверждение audience, используемое при создании и проверке API JWT

 — 

jwt_expiration_time

Срок действия JWT для аутентификации API в секундах

86400

jwt_cli_expiration_time

Срок действия JWT, используемых для аутентификации CLI, в секундах

3600

jwt_leeway

Допустимое расхождение времени при проверке временных меток JWT в секундах

10

airflow.cfg [execution_api]
Параметр Описание Значение по умолчанию

jwt_expiration_time

Срок действия JWT Execution API в секундах

600

jwt_audience

Утверждение audience, используемое для JWT задач Execution API

urn:airflow.apache.org:task

airflow.cfg [dag_processor]
Параметр Описание Значение по умолчанию

min_file_process_interval

Интервал между запусками парсинга DAG-файлов

30

refresh_interval

Интервал в секундах между проверками наличия новых DAG-файлов

300

dag_file_processor_timeout

Время парсинга одного файла DAG, в секундах

50

parsing_processes

Количество процессов для параллельного парсинга DAG

2

file_parsing_sort_mode

Режим сортировки файлов DAG при парсинге. Допустимые значения:

  • modified_time,

  • random_seeded_by_host,

  • alphabetical.

modified_time

max_callbacks_per_loop

Максимальное количество callback-функций, получаемых за один цикл DAG Processor

20

stale_dag_threshold

Тайм-аут деактивации устаревших DAG, в секундах

50

airflow.cfg [email]
Параметр Описание Значение по умолчанию

email_backend

Бэкенд электронной почты

airflow.utils.email.send_email_smtp

email_conn_id

Соединение Airflow, содержащее данные для подключения по SMTP

smtp_default

default_email_on_retry

Отправлять ли оповещения по электронной почте при повторной попытке выполнения задачи

true

default_email_on_failure

Отправлять ли оповещения по электронной почте в случае сбоя задачи

true

subject_template

Файл, который будет использоваться как шаблон для темы письма (который будет визуализирован с помощью Jinja2). Если не задано, Airflow использует базовый шаблон

 — 

html_content_template

Файл, который будет использоваться как шаблон для содержимого электронной почты (который будет визуализироваться с помощью Jinja2). Если не задано, Airflow использует базовый шаблон

 — 

from_email

Адрес электронной почты, который будет использоваться как адрес отправителя. Это может быть либо необработанный адрес электронной почты, либо полный адрес в формате Имя отправителя <sender@email.com>

 — 

ssl_context

Контекст SSL, используемый для SSL-соединений SMTP и IMAP. Установите none, чтобы отключить проверку сертификата (не рекомендуется)

default

airflow.cfg [smtp]
Параметр Описание Значение по умолчанию

smtp_host

Указывает адрес хост-сервера, используемый Airflow при отправке уведомлений по электронной почте через SMTP

localhost

smtp_starttls

Определяет, использовать ли команду STARTTLS при подключении к SMTP-серверу

true

smtp_ssl

Определяет, использовать ли SSL-соединение при обращении к SMTP-серверу

false

smtp_user

Имя пользователя для аутентификации при подключении к SMTP-серверу

 — 

smtp_password

Пароль для аутентификации при подключении к SMTP-серверу

 — 

smtp_port

Определяет номер порта, по которому Airflow подключается к SMTP-серверу для отправки уведомлений по электронной почте

25

smtp_mail_from

Указывает адрес электронной почты по умолчанию, используемый при отправке уведомлений по электронной почте Airflow

airflow@example.com

smtp_timeout

Определяет максимальное время (в секундах), в течение которого система Apache Airflow будет ожидать установления соединения с SMTP-сервером

30

smtp_retry_limit

Определяет максимальное количество попыток Airflow подключиться к SMTP-серверу

5

airflow.cfg [sentry]
Параметр Описание Значение по умолчанию

sentry_on

Включить ли отправку отчетов об ошибках в Sentry

false

sentry_dsn

URL-адрес Sentry DSN

 — 

before_send

Путь к функции before_send, на использование которой следует настроить Sentry SDK

 — 

airflow.cfg [celery]
Параметр Описание Значение по умолчанию

celery_app_name

Имя приложения, которое будет использоваться Celery

airflow.executors.celery_executor

worker_concurrency

Параллелизм, который будет использоваться при запуске воркеров с помощью команды airflow celery worker. Параметр определяет количество экземпляров задач, которые возьмет воркер, поэтому определите размер воркеров на основе ресурсов на вашем рабочем блоке и характера ваших задач

16

worker_autoscale

Максимальный и минимальный параллелизм, который будет использоваться при запуске воркеров с помощью команды airflow celery worker (всегда сохраняйте минимальное количество процессов, но увеличивайте до максимального, если необходимо). Значение должно быть в формате max_concurrency,min_concurrency. Если доступен autoscale option, worker_concurrency будет проигнорирован

 — 

worker_prefetch_multiplier

Используется для увеличения количества задач, которые предварительно выбирает рабочий процесс, что может повысить производительность. Количество процессов, умноженное на worker_prefetch_multiplier — это количество задач, которые предварительно выбирает рабочий процесс. Значение больше 1 может привести к ненужной блокировке задач, если имеется несколько рабочих процессов и один рабочий процесс предварительно выбирает задачи, которые находятся позади долго выполняющихся задач, в то время как другой рабочий процесс имеет неиспользуемые процессы, которые не могут обработать уже заявленные заблокированные задачи. Для получения дополнительной информации см. документацию Celery

1

worker_enable_remote_control

Укажите, включено ли удаленное управление рабочими процессами. В некоторых случаях, когда брокер не поддерживает удаленное управление, Celery создает множество очередей .*reply-celery-pidbox. Вы можете предотвратить это, установив этот параметр в false. Однако, если этот параметр отключен, Flower не будет работать. Для получения дополнительной информации см. документация Celery

true

broker_url

URL брокера Celery. Celery поддерживает RabbitMQ, Redis и экспериментально базу данных SQLAlchemy. Для получения дополнительной информации обратитесь к документации Celery

redis://{{groups['redis.server'][0]|d(omit)}}:6379/0

result_backend

Бэкенд Celery для хранения метаданных задания. Когда задание завершается, ему необходимо обновить метаданные задания. Поэтому он отправит сообщение на шину сообщений или вставит его в базу данных (в зависимости от бэкенда). Этот статус используется планировщиком для обновления состояния задачи. Настоятельно рекомендуется использовать базу данных. Если не указано иное, будет использоваться sql_alchemy_conn с префиксом схемы db+. Для получения дополнительной информации см. документацию Celery

 — 

result_backend_sqlalchemy_engine_options

Необязательный словарь конфигурации для передачи в серверную часть результатов Celery SQLAlchemy

 — 

flower_host

Celery Flower — это пользовательский интерфейс для Celery. У Airflow есть ярлык для его запуска airflow celery flower. Параметр определяет IP, на котором работает Celery Flower

0.0.0.0

flower_url_prefix

Корневой URL для Flower

 — 

flower_port

Порт, на котором работает Celery Flower

5555

flower_basic_auth

Включает базовую аутентификацию для Flower. Этот параметр принимает строку в формате user:password, которая будет необходима при доступе к Flower UI

 — 

sync_parallelism

Сколько процессов использует CeleryExecutor для синхронизации состояния задачи. 0 означает использовать максимальное количество

0

celery_config_options

Путь импорта для параметров конфигурации Celery

airflow.providers.celery.executors.default_celery.DEFAULT_CELERY_CONFIG

ssl_active

Определяет, активен ли SSL для Airflow

false

ssl_key

Путь к SSL-ключу

 — 

ssl_cert

Путь к SSL-сертификату

 — 

ssl_cacert

Путь к сертификату CA

 — 

pool

Celery-реализация пула. Возможные значения: prefork (по умолчанию), eventlet, gevent или solo. Для получения дополнительной информации см. документацию Celery

prefork

operation_timeout

Количество секунд ожидания перед тайм-аутом операций send_task_to_executor или fetch_celery_task_state

1

task_track_started

При включенной опции задача Celery сообщит о своем статусе как started, когда она будет выполнена воркером. Используется в Airflow для отслеживания запущенных задач. Если Scheduler перезапускается или работает в режиме HA, он может принять невыполненные задачи, запущенные предыдущим SchedulerJob

true

task_publish_max_retries

Максимальное количество повторных попыток публикации сообщений о задачах брокеру при сбое из-за ошибки AirflowTaskTimeout, прежде чем прекратить работу и пометить задачу как неудавшуюся

3

worker_precheck

Проводить ли проверку инициализации рабочего процесса для контроля соединения с базой метаданных

false

broker_url_secret

Ссылка на секрет ADO, используемый в качестве источника URL Celery broker

broker_url_value

result_backend_secret

Ссылка на секрет ADO, используемый в качестве источника Celery result backend

result_backend_value

airflow.cfg [scheduler]
Параметр Описание Значение по умолчанию

job_heartbeat_sec

Частота (в секундах), с которой экземпляры задач прослушивают внешний сигнал завершения (при очистке задач из CLI или пользовательского интерфейса)

5

scheduler_heartbeat_sec

Частота (в секундах), с которой должен запускаться планировщик для попыток запуска новых задач

5

num_runs

Количество попыток запланировать каждый файл DAG. -1 указывает на неограниченное количество

-1

scheduler_idle_sleep_time

Время, которое планировщик будет бездействовать между циклами. Если в цикле не было ничего запланировано, следующий цикл начинается немедленно

1

parsing_cleanup_interval

Как часто (в секундах) проверять наличие устаревших DAG (DAG, больше не присутствующих в ожидаемых файлах), которые следует деактивировать, а также датасеты, на которые больше нет ссылок и которые следует пометить как потерянные

60

print_stats_interval

Как часто следует печатать статистику в журналах. Установка 0 отключает печать статистики

30

pool_metrics_interval

Как часто (в секундах) следует отправлять статистику использования пула в StatsD (если включен statsd_on)

5

scheduler_health_check_threshold

Если последний такт планировщика произошел более чем scheduler_health_check_threshold назад (в секундах), планировщик считается неработоспособным. Это используется проверкой работоспособности в эндпойнте /health и в CLI airflow jobs check для SchedulerJob

30

enable_health_check

Когда запускается планировщик, Airflow запускает небольшой подпроцесс веб-сервера для проверки работоспособности, если этот параметр установлен в True

false

scheduler_health_check_server_port

При запуске планировщика Airflow запускает небольшой подпроцесс веб-сервера для проверки работоспособности этого порта

8974

orphaned_tasks_check_interval

Как часто (в секундах) планировщик должен проверять наличие потерянных задач и SchedulerJobs

300

child_process_log_directory

Определяет каталог, в котором будут храниться логи дочерних процессов планировщика

/var/log/airflow/scheduler

scheduler_zombie_task_threshold

Локальные задания периодически отправляют heartbeat в базу данных. Если задание не отправляет heartbeat в течение времени, указанного в этом параметре, планировщик отметит связанный экземпляр задачи как неудачный и перепланирует задачу

300

zombie_detection_interval

Как часто (в секундах) планировщик должен проверять наличие зомби-задач

10

catchup_by_default

Включает или отключает catchup планировщика. Планировщик не будет выполнять catchup, если установлено значение False. Это также можно установить отдельно для каждой группы DAG в определении DAG (catchup)

true

ignore_first_depends_on_past_by_default

Установка этого значения в True заставит первый экземпляр задачи игнорировать настройку depends_on_past. Экземпляр задачи будет считаться первым экземпляром задачи, если в базе данных нет экземпляра задачи с execution_date более ранней, чем он, т.е. не потребуется ручная маркировка успеха для планирования новой добавленной задачи

true

max_tis_per_query

Определяет размер пакета запросов в основном цикле планирования. Если он слишком велик, производительность SQL-запросов может пострадать из-за сложности предиката запроса и/или чрезмерной блокировки. Кроме того, вы можете достичь максимально допустимой длины запроса базы данных. Установите значение 0 для отсутствия ограничений (не рекомендуется)

16

use_row_level_locking

Должен ли планировщик выдавать SELECT …​ FOR UPDATE в соответствующих запросах. Если установлено значение False, то не следует запускать более одного планировщика одновременно

true

max_dagruns_to_create_per_loop

Максимальное количество DAG для создания DagRuns для каждого цикла планировщика

10

max_dagruns_per_loop_to_schedule

Сколько DagRuns должен проверять (и блокировать) планировщик при планировании и постановке задач в очередь

20

schedule_after_task_execution

Должен ли процесс Task supervisor выполнить mini scheduler, чтобы попытаться запланировать больше задач того же DAG. При значении True задачи в том же DAG будут выполняться быстрее, но иногда это может привести к сокращению ресурсов для работы других DAG

true

parsing_pre_import_modules

Планировщик считывает файлы DAG для извлечения модулей Airflow, которые будут использоваться, и импортирует их заранее, чтобы избежать необходимости делать это повторно. Флаг можно установить в значение False, чтобы отключить описанное поведение в случае, если модуль Airflow необходимо импортировать заново каждый раз (за счет увеличения времени парсинга DAG)

true

use_job_schedule

Отключите использование планировщиком интервалов cron, установив значение False. DAG, отправленные вручную в веб-интерфейсе или с помощью trigger_dag, по-прежнему будут работать

true

allow_trigger_in_future

Определяет, разрешить ли внешне инициируемые DagRuns для дат выполнения в будущем. Действует только в том случае, если параметру schedule_interval присвоено значение None в DAG

false

trigger_timeout_check_interval

Как часто проверять наличие просроченных триггерных запросов, которые еще не были запущены

15

task_queued_timeout

Время, в течение которого задача может находиться в очереди, прежде чем будет выполнена повторно или будет установлена ошибка

600

task_queued_timeout_check_interval

Как часто проверять задачи, которые находятся в очереди дольше, чем [scheduler] task_queued_timeout

120

allowed_run_id_pattern

Шаблон run_id, используемый для проверки допустимости пользовательского ввода в параметр run_id при запуске DAG. Этот шаблон не может изменить шаблон, используемый планировщиком для генерации run_id для запланированных запусков DAG или запусков DAG, запущенных без изменения параметра run_id

^[A-Za-z0-9_.~:+-]+$

local_task_job_heartbeat_sec

Частота отправки heartbeat-сигналов локальным заданием задачи в секундах

0

scheduler_health_check_server_host

Хост, на котором работает сервер проверки состояния планироващика

0.0.0.0

create_cron_data_intervals

Управляет созданием интервалов данных на основе cron

true

airflow.cfg [triggerer]
Параметр Описание Значение по умолчанию

default_capacity

Сколько триггеров будет запущено одним Triggerer одновременно по умолчанию

1000

job_heartbeat_sec

Как часто проверять работу Triggerer, чтобы убедиться, что она не была завершена

5

triggerer_health_check_threshold

Количество секунд после последнего heartbeat, по истечении которых Triggerer считается неисправным

30

airflow.cfg [kerberos]
Параметр Описание Значение по умолчанию

ccache

Расположение файла ccache после выполнения kinit

/usr/lib/airflow/krb5_ccache

principal

Принципал Kerberos

 — 

reinit_frequency

Частота повторной инициализации Kerberos

3600

kinit_path

Путь к исполняемому файлу kinit

kinit

keytab

Указывает путь к файлу ключей Kerberos для пользователя Airflow

 — 

forwardable

Разрешить ли отключение возможности пересылки тикетов

true

include_ip

Позволяет удалять исходный IP-адрес из токена, полезно при использовании токена за NAT-хостом Docker

true

airflow.cfg [sensors]
Параметр Описание Значение по умолчанию

default_timeout

Срок ожидания сенсора. По умолчанию — 7 дней (7 * 24 * 60 * 60)

604800

Custom airflow.cfg

Это поле позволяет добавлять пользовательские параметры в файлы конфигурации airflow_cfg.

airflow-env.sh
Параметр Описание Значение по умолчанию

AIRFLOW_HOME

Домашний каталог для сервиса Airflow

/usr/lib/airflow

AIRFLOW_CONFIG

Расположение файла конфигурации Airflow

/etc/airflow/conf/airflow.cfg

AIRFLOW_PYTHON_PATH

Расположение Python, используемое Airflow

/usr/lib/airflow/bin/python3.10

DAG_PROCESSOR_SUBDIR

Расположение хранящихся в Airflow DAG

/opt/airflow/dags

VIRTUAL_ENV

Путь к виртуальному окружению для Airflow

/usr/lib/airflow

PATH

Директория PATH Airflow

/usr/lib/airflow/bin:/sbin:/bin:/usr/sbin:/usr/bin

Custom airflow-env.sh

Это поле позволяет добавлять пользовательские параметры в файлы конфигурации airflow-env.sh.

LDAP Security manager
Параметр Описание Значение по умолчанию

AUTH_LDAP_SERVER

URI сервера LDAP

 — 

AUTH_LDAP_BIND_USER

Путь пользователя прокси LDAP для привязки к верхнему уровню. Пример: cn=airflow,ou=users,dc=example,dc=com

 — 

AUTH_LDAP_BIND_PASSWORD

Пароль bind-пользователя

 — 

AUTH_LDAP_SEARCH

Путь LDAP, по которому пользователи будут иметь доступ к Airflow. Пример: dc=example,dc=com

 — 

AUTH_LDAP_UID_FIELD

Поле UID (уникальный идентификатор) в LDAP

 — 

AUTH_ROLES_MAPPING

Параметр для сопоставления внутренних ролей группам LDAP Active Directory

 — 

AUTH_LDAP_GROUP_FIELD

Атрибут пользователя LDAP, имеющий свои ролевые DN

 — 

AUTH_ROLES_SYNC_AT_LOGIN

Флаг, указывающий, следует ли заменять все роли пользователя при каждом входе в систему или только при регистрации

true

PERMANENT_SESSION_LIFETIME

Устанавливает тайм-аут бездействия, по истечении которого пользователи должны повторно пройти аутентификацию (для синхронизации ролей)

1800

AUTH_LDAP_USE_TLS

Используется ли TLS

false

AUTH_LDAP_ALLOW_SELF_SIGNED

Разрешено ли использование самоподписанных сертификатов

true

AUTH_LDAP_TLS_CACERTFILE

Расположение сертификата

 — 

Dependency Management
Параметр Описание Значение по умолчанию

Constraints file

Файл ограничений, содержащий зависимости и определяющий только устанавливаемую версию зависимости, но не факт установления

 — 

Base constraints file

Содержит все зависимости Python, необходимые для установки Airflow

Extra requirements

Список Python-библиотек, которые необходимо установить на хосты Airflow. Используйте стандартный формат requirements.txt: <package_name>==<version>

 — 

index-url

Базовый URL Python Package Index (по умолчанию: https://pypi.org/simple). URL должен указывать на репозиторий, совместимый с PEP 503 (simple API), либо на локальный репозиторий с такой же структурой

 — 

index-url-user

Имя пользователя для аутентификации в репозитории, указанном в index-url

 — 

index-url-password

Пароль для аутентификации в репозитории, указанном в index-url

 — 

proxy

Адрес прокси-сервера, через который будут выполняться запросы на установку пакетов

 — 

proxy-user

Имя пользователя для аутентификации на прокси-сервере

 — 

proxy-password

Пароль для аутентификации на прокси-сервере

 — 

trusted-host

IP-адрес хоста или пара вида <IP хоста>:<порт>, которые следует считать безопасными даже если они не используют HTTPS. Может использоваться для внутренних или локальных репозиториев

 — 

Конфигурация компонентов Airflow
Airflow DAG Processor, Airflow Scheduler, Airflow Server, Airflow Triggerer, Airflow Worker
Параметр Описание Значение по умолчанию

Enable custom ulimits

Включение этой опции позволяет указать ограничения на использование ресурсов для процесса (ulimits). Если значения не указаны, будут использованы системные настройки по умолчанию. Настройки ulimit описаны в таблице Настройки Ulimit

[Service]
DefaultLimitCPU=
DefaultLimitFSIZE=
DefaultLimitDATA=
DefaultLimitSTACK=
DefaultLimitCORE=
DefaultLimitRSS=
DefaultLimitNOFILE=
DefaultLimitAS=
DefaultLimitNPROC=
DefaultLimitMEMLOCK=
DefaultLimitLOCKS=
DefaultLimitSIGPENDING=
DefaultLimitMSGQUEUE=
DefaultLimitNICE=
DefaultLimitRTPRIO=
DefaultLimitRTTIME=
Airflow Flower
Параметр Описание Значение по умолчанию

auto_refresh

Включает автоматическое обновление для представления Workers. По умолчанию представление Workers автоматически обновляется через регулярные интервалы, чтобы предоставить актуальную информацию о воркерах. Используйте значение False, чтобы отключить автоматическое обновление

true

ca_cert

Устанавливает путь к файлу ca_certs, содержащему набор объединенных сертификатов центра сертификации

 — 

cert_file

Устанавливает путь к файлу SSL-сертификата

 — 

keyfile

Устанавливает путь к файлу ключа SSL

 — 

db

Устанавливает файл базы данных, который будет использоваться, если включен персистентный режим (persistent mode)

flower

tasks_columns

Указывает список столбцов, разделенных запятыми, который будет отображаться на странице Tasks

name,uuid,state,args,kwargs,result,received,started,runtime,worker

persistent

Когда включен персистентный режим, Flower сохраняет свое текущее состояние и перезагружает его при перезапуске. Это гарантирует, что Flower сохранит свое состояние и конфигурацию при перезапусках. Flower сохраняет свое состояние в файле базы данных, указанном в параметре db

false

debug

Включает режим отладки

false

enable_events

Flower периодически отправляет команды Celery enable_events всем воркерам. Включение событий Celery позволяет Flower получать обновления в реальном времени о событиях задач от воркеров Celery

false

inspect_timeout

Устанавливает тайм-аут для команд проверки рабочего процесса в миллисекундах

1000

max_workers

Устанавливает максимальное количество воркеров, которые нужно хранить в памяти

5000

max_tasks

Устанавливает максимальное количество задач, которые нужно хранить в памяти

100000

natural_time

Позволяет отображать время обновления страницы в более удобном для восприятия формате

false

state_save_interval

Устанавливает интервал сохранения состояния Flower. Состояние Flower включает информацию о воркерах и задачах. Состояние сохраняется периодически, чтобы обеспечить сохранение данных и восстановление после перезапуска

100000

xheaders

Включает поддержку заголовков X-Real-Ip и X-Scheme

false

purge_offline_workers

Время (в секундах), после которого офлайн-воркеры автоматически удаляются из представления Workers. По умолчанию офлайн-воркеры остаются на панели управления на неопределенный срок

 — 

task_runtime_metric_buckets

Устанавливает сегменты задержки выполнения задачи. Вы можете указать значение сегментов в виде списка значений, разделенных запятыми

 — 

auth_provider

Устанавливает провайдера аутентификации для Flower. Значение параметра по умолчанию — None, что означает, что провайдер аутентификации не настроен

 — 

auth

Включает аутентификацию. auth — это регулярное выражение для предоставления доступа по адресам электронной почты. Параметр auth позволяет включить аутентификацию в Flower. По умолчанию в качестве значения auth используется пустая строка, что указывает на то, что аутентификация отключена

 — 

oauth2_key

Устанавливает ключ OAuth 2.0 (идентификатор клиента), выданный провайдером OAuth 2.0

 — 

oauth2_secret

Устанавливает секрет OAuth 2.0, выданный провайдером OAuth 2.0

 — 

oauth2_redirect_uri

Устанавливает URI, на который сервер OAuth 2.0 перенаправляет пользователя после успешной аутентификации и авторизации

 — 

cookie_secret

Устанавливает секретный ключ для подписи файлов cookie

 — 

Enable custom ulimits

Включение этой опции позволяет указать ограничения на использование ресурсов для процесса (ulimits). Если значения не указаны, будут использованы системные настройки по умолчанию. Настройки ulimit описаны в таблице Настройки Ulimit

[Service]
DefaultLimitCPU=
DefaultLimitFSIZE=
DefaultLimitDATA=
DefaultLimitSTACK=
DefaultLimitCORE=
DefaultLimitRSS=
DefaultLimitNOFILE=
DefaultLimitAS=
DefaultLimitNPROC=
DefaultLimitMEMLOCK=
DefaultLimitLOCKS=
DefaultLimitSIGPENDING=
DefaultLimitMSGQUEUE=
DefaultLimitNICE=
DefaultLimitRTPRIO=
DefaultLimitRTTIME=
Airflow Haproxy
Параметр Описание Значение по умолчанию

haproxy-airflowcfg

Шаблон Jinja для файла конфигурации HAProxy

Specifies the location of the certificate in standard .PEM format

Путь к PEM-сертификату для HTTPS

 — 

/etc/syslog-ng/conf.d/haproxy-airflow.conf

Конфигурация syslog-ng для Haproxy. Она будет использоваться, если в операционной системе установлен syslog-ng

/etc/rsyslog.d/haproxy-airflow.conf

Конфигурация rsyslog для Haproxy. Она будет использоваться, если в операционной системе установлен rsyslog

Настройки Ulimit
Параметр Описание Соответствующая опция команды ulimit в CentOS

DefaultLimitCPU

Ограничение в секундах на количество процессорного времени, которое может потреблять процесс

cpu time ( -t)

DefaultLimitFSIZE

Максимальный размер файлов, которые может создать процесс, в блоках по 512 байт

file size ( -f)

DefaultLimitDATA

Максимальный размер сегмента данных процесса, в килобайтах

data seg size ( -d)

DefaultLimitSTACK

Максимальный размер стека, выделенный процессу, в килобайтах

stack size ( -s)

DefaultLimitCORE

Максимальный размер файла дампа (core dump) в байтах, который процесс может сохранить, в блоках по 512 байт

core file size ( -c)

DefaultLimitRSS

Максимальное количество памяти RAM (resident set size), которое может быть выделено процессу, в килобайтах

max memory size ( -m)

DefaultLimitNOFILE

Максимальное количество дескрипторов открытых файлов, разрешенное для процесса

open files ( -n)

DefaultLimitAS

Максимальный размер виртуальной памяти (адресного пространства) процесса, в килобайтах

virtual memory ( -v)

DefaultLimitNPROC

Максимальное количество процессов

max user processes ( -u)

DefaultLimitMEMLOCK

Максимальный размер памяти, который может быть заблокирован для процесса, в килобайтах. Блокировка памяти гарантирует, что память всегда находится в оперативной памяти (RAM) и файл подкачки не используется

max locked memory ( -l)

DefaultLimitLOCKS

Максимальное количество файлов, заблокированных процессом

file locks ( -x)

DefaultLimitSIGPENDING

Максимальное количество сигналов, ожидающих доставки в вызывающий поток

pending signals ( -i)

DefaultLimitMSGQUEUE

Максимальное количество байтов в очередях сообщений POSIX. Очереди сообщений POSIX позволяют процессам обмениваться данными в форме сообщений

POSIX message queues ( -q)

DefaultLimitNICE

Максимальный уровень приоритета NICE, который может быть назначен процессу

scheduling priority ( -e)

DefaultLimitRTPRIO

Максимальный приоритет планирования в реальном времени

real-time priority ( -r)

DefaultLimitRTTIME

Максимальный размер буфера конвейера (pipe), в блоках по 512 байт

pipe size ( -p)

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней