| 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. |