Bird
Raised Fist0
Apache Airflowdevops~5 mins

Audit logging in Apache Airflow - Commands & Configuration

Choose your learning style10 modes available
Introduction
Audit logging helps you keep track of who did what and when in your Airflow environment. It records actions like task runs and configuration changes to improve security and troubleshooting.
When you want to see who triggered a specific workflow or task in Airflow
When you need to track changes made to DAGs or Airflow configurations
When you want to monitor user activity for compliance or security audits
When troubleshooting failures and you want to check recent user actions
When you want to keep a history of Airflow events for reporting
Config File - airflow.cfg
airflow.cfg
[logging]
audit_log = True
audit_log_filename = /opt/airflow/logs/audit.log
audit_log_level = INFO

This configuration enables audit logging in Airflow.

audit_log: Turns audit logging on.

audit_log_filename: Path where audit logs are saved.

audit_log_level: Sets the detail level of audit logs.

Commands
Initializes the Airflow database to prepare for audit logging and other features.
Terminal
airflow db init
Expected OutputExpected
DB: Initialized the metadata database.
Starts the Airflow scheduler which will now log audit events as configured.
Terminal
airflow scheduler
Expected OutputExpected
[2024-06-01 12:00:00,000] {scheduler_job.py:123} INFO - Starting scheduler
Shows the last 10 lines of the audit log to verify audit logging is working.
Terminal
tail -n 10 /opt/airflow/logs/audit.log
Expected OutputExpected
2024-06-01 12:05:00 INFO User 'admin' triggered DAG 'example_dag' 2024-06-01 12:06:00 INFO Task 'task1' in DAG 'example_dag' succeeded
→
-n 10 - Shows only the last 10 lines of the log file
Key Concept

If you remember nothing else from audit logging, remember: it records user actions and system events to help track changes and troubleshoot issues.

Common Mistakes
Not enabling audit_log in airflow.cfg
Without enabling audit_log, no audit events will be recorded, so you won't have any audit trail.
Set audit_log = True in the [logging] section of airflow.cfg and restart Airflow.
Checking the wrong log file path
Audit logs won't appear if you look at the default logs instead of the audit_log_filename path.
Verify the audit_log_filename path in airflow.cfg and check that file for audit entries.
Summary
Enable audit logging by setting audit_log = True in airflow.cfg.
Start Airflow scheduler to begin recording audit events.
Check the audit log file to see recorded user actions and system events.

Practice

(1/5)
1. What is the main purpose of audit logging in Apache Airflow?
easy
A. To speed up task execution
B. To manage Airflow plugins
C. To store DAG definitions
D. To record user actions for security and troubleshooting

Solution

  1. Step 1: Understand audit logging concept

    Audit logging is designed to keep track of user actions and system events.
  2. Step 2: Identify its purpose in Airflow

    This helps with security monitoring and troubleshooting issues by reviewing what happened.
  3. Final Answer:

    To record user actions for security and troubleshooting -> Option D
  4. Quick Check:

    Audit logging = record user actions [OK]
Hint: Audit logs track user actions for security [OK]
Common Mistakes:
  • Confusing audit logs with performance logs
  • Thinking audit logs store DAG code
  • Assuming audit logs speed up tasks
2. Which section in airflow.cfg should you modify to enable audit logging?
easy
A. [core]
B. [logging]
C. [scheduler]
D. [webserver]

Solution

  1. Step 1: Locate airflow.cfg configuration file

    This file contains sections for different Airflow components.
  2. Step 2: Identify the section for logging settings

    The [logging] section controls log-related configurations including audit logging.
  3. Final Answer:

    [logging] -> Option B
  4. Quick Check:

    Audit logging config is under [logging] [OK]
Hint: Audit logging is set in [logging] section [OK]
Common Mistakes:
  • Choosing [core] which is for general settings
  • Selecting [scheduler] which controls scheduling
  • Picking [webserver] which manages UI settings
3. Given this snippet from airflow.cfg:
[logging]
audit_log_enabled = True
audit_log_location = /var/log/airflow/audit.log

What will happen when a user triggers a DAG run?
medium
A. User action will be recorded in /var/log/airflow/audit.log
B. DAG will fail to start due to missing audit log
C. No audit log will be created because audit_log_enabled is False
D. Audit logs will be stored in the default Airflow logs folder

Solution

  1. Step 1: Check audit_log_enabled value

    It is set to True, so audit logging is active.
  2. Step 2: Check audit_log_location setting

    Logs will be saved to /var/log/airflow/audit.log as specified.
  3. Final Answer:

    User action will be recorded in /var/log/airflow/audit.log -> Option A
  4. Quick Check:

    Enabled True + location set = logs saved there [OK]
Hint: Enabled True means logs go to specified location [OK]
Common Mistakes:
  • Assuming logs go to default folder ignoring config
  • Thinking audit_log_enabled is False
  • Believing DAG fails without audit log
4. You enabled audit logging but no logs appear in the specified file. Which is the most likely cause?
medium
A. Airflow scheduler is not running
B. audit_log_enabled is set to False
C. The audit_log_location path is incorrect or lacks write permission
D. DAGs are not defined properly

Solution

  1. Step 1: Verify audit_log_enabled setting

    If it was False, no logs would be created, but question states it is enabled.
  2. Step 2: Check file path and permissions

    If the path is wrong or Airflow lacks permission to write, logs won't appear.
  3. Final Answer:

    The audit_log_location path is incorrect or lacks write permission -> Option C
  4. Quick Check:

    Wrong path or no write permission blocks logs [OK]
Hint: Check file path and permissions first [OK]
Common Mistakes:
  • Assuming scheduler not running causes no audit logs
  • Blaming DAG definitions for audit logging issues
  • Ignoring file system permissions
5. You want to ensure audit logs do not fill up disk space. Which approach is best to manage audit logging in Airflow?
hard
A. Configure log rotation on the audit_log_location file
B. Disable audit logging completely
C. Store audit logs in the Airflow database
D. Manually delete audit logs daily

Solution

  1. Step 1: Understand audit log growth risk

    Audit logs can grow large and fill disk space if unmanaged.
  2. Step 2: Choose best management method

    Configuring log rotation automatically archives and deletes old logs safely.
  3. Step 3: Evaluate other options

    Disabling logs loses audit trail; storing in DB is not default; manual deletion is error-prone.
  4. Final Answer:

    Configure log rotation on the audit_log_location file -> Option A
  5. Quick Check:

    Log rotation prevents disk full from audit logs [OK]
Hint: Use log rotation to manage audit log size [OK]
Common Mistakes:
  • Disabling audit logs instead of managing size
  • Relying on manual deletion which is unreliable
  • Assuming database storage is default or better
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard