Fluentd container image requirements
Knative Serving uses a Fluentd docker image to collect logs. Operators can customize their own Fluentd docker image and configuration to define logging output.
Knative requires the customized Fluentd docker image with the following plugins installed:
- fluentd >= v0.14.0
- fluent-plugin-kubernetes_metadata_filter >= 1.0.0 AND < 2.1.0: To enrich log entries with Kubernetes metadata.
- fluent-plugin-detect-exceptions >= 0.0.9: To combine multi-line exception stack traces logs into one log entry.
- fluent-plugin-multi-format-parser >= 1.0.0: To detect log format as Json or plain text.
Operators can use any Docker image which meets the requirements above and includes the desired output plugin. Two examples below:
Send logs to Elasticsearch
Send logs to Stackdriver
Operators can build this image and push it to a container registry which their Kubernetes cluster has access to. See Setting Up A Logging Plugin for details. NOTE: Operators need to add credentials file the stackdriver agent needs to the docker image if their Knative Serving is not built on a GCP based cluster or they want to send logs to another GCP project. See here for more information.