blob: 49d17133c1bb332d7efc3310efd83837a7af808b [file]
The systemd files in this directory are tested on RedHat based systems. Copy (or link) them to /usr/lib/systemd/system
and copy the airflow.conf to /etc/tmpfiles.d/ or /usr/lib/tmpfiles.d/. Copying airflow.conf ensures /run/airflow is
created with the right owner and permissions (0755 airflow airflow)
You can then start the different servers by using systemctl start <service>. Enabling services can be done by issuing
systemctl enable <service>.
By default the environment configuration points to /etc/sysconfig/airflow . You can copy the "airflow" file in this
directory and adjust it to your liking.
With some minor changes they probably work on other systemd systems.
Required services
-----------------
Since Airflow 3.0 the airflow processes that handle the different components are split into separate services. At a
minimum you need to run the following services:
* airflow-scheduler.service
* airflow-dag-processor.service
* airflow-api.service
Additionally the following services are available and can be enabled as needed:
* airflow-triggerer.service for deferrable task triggering (required only if you use deferrable tasks or event
scheduling)
* airflow-worker.service for a Celery worker
* airflow-flower.service for a Flower monitoring interface
* airflow-kerberos.service for the Kerberos renewal daemon
For both ``dag_processor`` and ``triggerer``, the ``/api/v2/monitor/health`` endpoint returns ``unhealthy`` for the
status and ``down`` for the detailed status when no instance is alive. If there are no unfinished jobs for the
component, its latest heartbeat and instances are ``null``. Make sure the services you depend on are started;
ignore the triggerer health status only when your deployment intentionally does not use a triggerer.
See the "Checking Airflow Health Status" documentation for details.