I would like to send airflow container logs to graylog
Can anyone help me out with this? How can I do that?
Or can anyone provide documentation for this?
Try this: Writing Logs — Airflow Documentation
It’s written for sending to Elasticsearch, but the same method works for Graylog.
Airflow can be configured to read task logs from Elasticsearch and optionally write logs to stdout in standard or json format. These logs can later be collected and forwarded to the Elasticsearch cluster using tools like fluentd, logstash or others.
You can choose to have all task logs from workers output to the highest parent level process, instead of the standard file locations. This allows for some additional flexibility in container environments like Kubernetes, where container stdout is already being logged to the host nodes. From there a log shipping tool can be used to forward them along to Elasticsearch. To use this feature, set the
airflow.cfg. You can also choose to have the logs output in a JSON format, using the
json_formatoption. Airflow uses the standard Python logging module and JSON fields are directly extracted from the LogRecord object. To use this feature, set the
airflow.cfg. Add the fields to the comma-delimited string that you want collected for the logs. These fields are from the LogRecord object in the
loggingmodule. Documentation on different attributes can be found here.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.