📖 Scenario: You are working as a DevOps engineer managing Apache Airflow workflows. Your team wants to keep track of who triggered which DAGs and when, to improve security and troubleshooting. You will set up a simple audit logging mechanism in Airflow to record DAG run events.
🎯 Goal: Build a basic audit logging setup in Apache Airflow that logs DAG run events with user and timestamp information to a file.
📋 What You'll Learn
Create a Python dictionary to simulate DAG run event data
Add a configuration variable for the audit log file path
Write a function to log the event data to the audit log file
Print the content of the audit log file to verify the logging
💡 Why This Matters
🌍 Real World
Audit logging in Airflow helps track who triggered workflows and when, which is important for security and troubleshooting in production data pipelines.
💼 Career
DevOps engineers and data engineers often implement audit logging to meet compliance and operational monitoring requirements.
Progress0 / 4 steps
1
Create DAG run event data
Create a Python dictionary called dag_run_event with these exact keys and values: 'dag_id': 'example_dag', 'run_id': 'manual__2024-06-01T12:00:00', 'user': 'admin', 'execution_date': '2024-06-01T12:00:00'.
Apache Airflow
Hint
Use curly braces to create a dictionary with the exact keys and values.
2
Add audit log file path configuration
Create a variable called audit_log_file and set it to the string 'audit_log.txt' to specify the audit log file path.
Apache Airflow
Hint
Assign the string 'audit_log.txt' to the variable audit_log_file.
3
Write audit logging function
Define a function called log_audit_event that takes event and log_file as parameters. Inside the function, open log_file in append mode and write a line with the format: DAG {dag_id} run {run_id} triggered by {user} at {execution_date} using the values from event.
Apache Airflow
Hint
Use a function with parameters and open the file in append mode to write the formatted string.
4
Log event and display audit log content
Call log_audit_event with dag_run_event and audit_log_file. Then open audit_log_file in read mode and print its entire content.
Apache Airflow
Hint
Call the logging function then read and print the file content exactly.
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
Step 1: Understand audit logging concept
Audit logging is designed to keep track of user actions and system events.
Step 2: Identify its purpose in Airflow
This helps with security monitoring and troubleshooting issues by reviewing what happened.
Final Answer:
To record user actions for security and troubleshooting -> Option D
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
Step 1: Locate airflow.cfg configuration file
This file contains sections for different Airflow components.
Step 2: Identify the section for logging settings
The [logging] section controls log-related configurations including audit logging.
Final Answer:
[logging] -> Option B
Quick Check:
Audit logging config is under [logging] [OK]
Hint: Audit logging is set in [logging] section [OK]