* add doccument * add reasons for plugins * Formatted file * add more details * fix links * Remove typo and duplicate steps + + made a few edits for clarity and consistency |
||
---|---|---|
.. | ||
stackdriver | ||
README.md |
README.md
Fluentd Docker Image on Knative Serving
Knative Serving uses a Fluentd docker image to collect logs. Operators can customize their own Fluentd docker image and configuration to define logging output.
Requirements
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.
Sample images
Operators can use any Docker image which meets the requirements above and includes the desired output plugin. Two examples below:
Send logs to Elasticsearch
Operators can use k8s.gcr.io/fluentd-elasticsearch:v2.0.4 which includes fluent-plugin-elasticsearch that allows sending logs to a Elasticsearch service.
Send logs to Stackdriver
This sample Dockerfile is based on k8s.gcr.io/fluentd-elasticsearch:v2.0.4. It additionally adds one more plugin - fluent-plugin-google-cloud which allows sending 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.