Logging
Logging in the Kubernetes cluster is handled by a Logging operator. This tool allows the creation of customised logging pipelines that meet user requirements.
The logging pipeline consists of two components, SyslogNGFlow
and SyslogNGOutput
. SyslogNGFlow
specifies the log selection and log filters. SyslogNGOutput
specifies the output destination of the logs.
SyslogNGFlow
The SyslogNGFlow
specifies what logs should be sent to the final output destination. To do so, it uses match
statements that support logical operators and
, or
and not
. SyslogNGFlow
must have at least one match
statement to transfer logs.
Example
You might use the example configuration below to collect all pod logs from a namespace. Specify the namespace and the name of the related SyslogNGOutput
resource.
apiVersion: logging.banzaicloud.io/v1beta1
kind: SyslogNGFlow
metadata:
name: syslog-flow
namespace: [your_namespace]
spec:
loggingRef: cerit-logging-root
match:
regexp:
value: json.kubernetes.labels.app.kubernetes.io/instance
pattern: "*"
type: glob
localOutputRefs:
- [output_resource_name]
The part loggingRef: cerit-logging-root
is important and must be set to this exact value.
To see all routing options, see official documentation.
SyslogNGOutput
SyslogNGOutput
configures the output destination of the logs. SyslogNGOutput
can configure only one output plugin within the specification.
Example
You might use the example configuration below to transfer logs using the Syslog protocol. Specify the resource name, namespace, IP address and port. Make sure you use the same name as in localOutputRefs
.
apiVersion: logging.banzaicloud.io/v1beta1
kind: SyslogNGOutput
metadata:
name: [output_resource_name]
namespace: [your_namespace]
spec:
loggingRef: cerit-logging-root
syslog:
host: [ip_address]
port: [port]
The part loggingRef: cerit-logging-root
is important and must be set to this exact value.
To see a complete list of available output plugins, see official documentation.
Logging pipeline deployment
To create a new logging pipeline, apply the resource configurations from a YAML file.
kubectl apply -f [path_to_yaml_file]