Logging operator for Kubernetes based on Fluentd and Fluent-bit.
This operator helps you to pack together logging information with your applications. With the help of Custom Resource Definition you can describe the behaviour of your application within its charts. The operator does the rest.
- Namespace isolation
- Native Kubernetes label selectors
- Secure communication (TLS)
- Configuration validation
- Multiple flow support (multiply logs for different transformations)
- Multiple output support (store the same logs in multiple storage: S3, GCS, ES, Loki and more...)
- Multiple logging system support (multiple fluentd, fluent-bit deployment on the same cluster)
The logging operator automates the deployment and configuration of a Kubernetes logging pipeline. Under the hood the operator configures a fluent-bit daemonset for collecting container logs from the node file system. Fluent-bit enriches the logs with Kubernetes metadata and transfers them to fluentd. Fluentd receives, filters and transfer logs to multiple outputs. Your logs will always be transferred on authenticated and encrypted channels.
- Logging-Operator v2 (soon)
- Advanced logging on Kubernetes
- Secure logging on Kubernetes with Fluentd and Fluent Bit
- Centralized logging under Kubernetes
- Centralized logging on Kubernetes automated
- And more...
Logging-operator is a core part of the Pipeline platform, a Cloud Native application and devops platform that natively supports multi- and hybrid-cloud deployments with multiple authentication backends. Check out the developer beta:
Available custom resources:
- logging - Represents a logging system. Includes
Fluentd
andFluent-bit
configuration. Specifies thecontrolNamespace
. Fluentd and Fluent-bit will be deployed in thecontrolNamespace
- output - Defines an Output for a logging flow. This is a namespaced resource.
- flow - Defines a logging flow with
filters
andoutputs
. You can specifyselectors
to filter logs by labels. Outputs can beoutput
orclusteroutput
. This is a namespaced resource. - clusteroutput - Defines an output without namespace restriction. Only effective in
controlNamespace
. - clusterflow - Defines a logging flow without namespace restriction.
The detailed CRD documentation can be found here.
connection between custom resources
- Installation
- Supported Plugins
- Examples
- Troubleshooting
- Contributing
The following steps set up an example configuration for sending nginx logs to S3.
$ helm repo add banzaicloud-stable https://kubernetes-charts.banzaicloud.com
$ helm repo update
$ helm install banzaicloud-stable/logging-operator
For complete list of supported plugins pleas checkl the plugins index.
Name | Type | Description | Status | Version |
---|---|---|---|---|
Alibaba | Output | Store logs the Alibaba Cloud Object Storage Service | GA | 0.0.1 |
Amazon S3 | Output | Store logs in Amazon S3 | GA | 1.1.10 |
Azure | Output | Store logs in Azure Storega | GA | 0.1.1 |
Google Storage | Output | Store logs in Google Cloud Storage | GA | 0.4.0.beta1 |
Grafana Loki | Output | Transfer logs to Loki | Testing | 0.2 |
ElasticSearch | Output | Send your logs to Elasticsearch | GA | 3.5.5 |
Sumologic | Output | Send your logs to Sumologic | GA | 1.5.0 |
Tag Normaliser | Parser | Normalise tags for outputs | GA | |
Parser | Parser | Parse logs with parser plugin | GA |
If you encounter any problems that the documentation does not address, please file an issue or talk to us on the Banzai Cloud Slack channel #logging-operator.
If you find this project useful here's how you can help:
- Send a pull request with your new features and bug fixes
- Help new users with issues they may encounter
- Support the development of this project and star this repo!
For more information please read the developer documentation
Copyright (c) 2017-2019 Banzai Cloud, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.