Kubernetes Fury Logging
Kubernetes Fury Logging provides a logging stack for the Kubernetes Fury Distribution (KFD).
If you are new to KFD please refer to the official documentation on how to get started with KFD.
Overview
Kubernetes Fury Logging uses a collection of open source tools to provide the most resilient and robust logging stack for the cluster.
The central piece of the stack is the open source search engine opensearch, combined with its analytics and visualization platform opensearch-dashboards. The logs are collected using a node-level data collection and enrichment agent fluentbit, pushing it to the OpenSearch via fluentd. The fluentbit and fluentd stack is managed by Banzai Logging Operator. We are also providing loki as an alternative storage to Opensearch as a technical preview.
All the components are deployed in the logging
namespace in the cluster.
High level diagram of the stack:
Packages
The following packages are included in the Fury Kubernetes Logging katalog:
Package | Version | Description |
---|---|---|
cerebro | 0.9.4 | Web admin tool that helps you manage your Opensearch cluster via a graphical user interface |
opensearch-single | 2.0.0 | Single node opensearch deployment. Not intended for production use. |
opensearch-triple | 2.0.0 | Three node high-availability opensearch deployment |
opensearch-dashboards | 2.0.0 | Analytics and visualization platform for Opensearch |
logging-operator | 3.17.7 | Banzai logging operator, manages fluentbit/fluentd and their configurations |
logging-operated | - | fluentd and fluentbit deployment using logging operator |
configs | - | Logging pipeline configs to gather various types of logs and send them to OpenSearch |
loki-configs | - | Logging pipeline configs to gather various types of logs and send them to Loki |
loki-single | 2.4.2 | Single node Loki deployment |
Click on each package to see its full documentation.
Compatibility
Kubernetes Version | Compatibility | Notes |
---|---|---|
1.21.x | ✅ | No known issues |
1.22.x | ✅ | No known issues |
1.23.x | ✅ | No known issues |
1.24.x | ✅ | No known issues |
Check the compatibility matrix for additional informations about previous releases of the modules.
Usage
Prerequisites
Tool | Version | Description |
---|---|---|
furyctl | >=0.6.0 | The recommended tool to download and manage KFD modules and their packages. To learn more about furyctl read the official documentation. |
kustomize | >=3.5.0 | Packages are customized using kustomize . To learn how to create your customization layer with kustomize , please refer to the repository. |
Deployment
- List the packages you want to deploy and their version in a
Furyfile.yml
bases:
- name: logging/cerebro
version: "v3.0.1"
- name: logging/opensearch-single
version: "v3.0.1"
- name: logging/opensearch-dashboards
version: "v3.0.1"
- name: logging/logging-operator
version: "v3.0.1"
- name: logging/logging-operated
version: "v3.0.1"
- name: logging/configs
version: "v3.0.1"
See
furyctl
documentation for additional details aboutFuryfile.yml
format.
-
Execute
furyctl vendor -H
to download the packages -
Inspect the download packages under
./vendor/katalog/logging
. -
Define a
kustomization.yaml
that includes the./vendor/katalog/logging
directory as resource.
resources:
- ./vendor/katalog/logging/cerebro
- ./vendor/katalog/logging/opensearch-single
- ./vendor/katalog/logging/opensearch-dashboards
- ./vendor/katalog/logging/logging-operator
- ./vendor/katalog/logging/logging-operated
- ./vendor/katalog/logging/configs
- To deploy the packages to your cluster, execute:
kustomize build . | kubectl apply -f -
Common Customisations
Setup a high-availability three-node opensearch
Logging module offers an out of the box, highly-available setup for opensearch
instead of a single node version. To set this up, in the Furyfile
and kustomization
, you can replace opensearch-single
with opensearch-triple
.