Outputs are the destinations where your log forwarder sends the log messages, for example, to Sumo Logic, or to a file. Depending on which log forwarder you use, you have to configure different custom resources.
Fluentd outputs 🔗︎
- The
Outputresource defines an output where your Fluentd Flows can send the log messages. The output is anamespacedresource which means only aFlowwithin the same namespace can access it. You can usesecretsin these definitions, but they must also be in the same namespace. Outputs are the final stage for alogging flow. You can define multipleoutputsand attach them to multipleflows. ClusterOutputdefines an Output without namespace restrictions. It is only evaluated in thecontrolNamespaceby default unlessallowClusterResourcesFromAllNamespacesis set to true.
Note:
Flowcan be connected toOutputandClusterOutput, butClusterFlowcan be attached only toClusterOutput.
- For the details of the supported output plugins, see Outputs.
- For the details of
Outputcustom resource, see OutputSpec. - For the details of
ClusterOutputcustom resource, see ClusterOutput.
Fluentd S3 output example 🔗︎
The following snippet defines an Amazon S3 bucket as an output.
apiVersion: logging.banzaicloud.io/v1beta1
kind: Output
metadata:
name: s3-output-sample
spec:
s3:
aws_key_id:
valueFrom:
secretKeyRef:
name: s3-secret
key: awsAccessKeyId
namespace: default
aws_sec_key:
valueFrom:
secretKeyRef:
name: s3-secret
key: awsSecretAccessKey
namespace: default
s3_bucket: example-logging-bucket
s3_region: eu-west-1
path: logs/${tag}/%Y/%m/%d/
buffer:
timekey: 1m
timekey_wait: 10s
timekey_use_utc: true
syslog-ng outputs 🔗︎
- The
SyslogNGOutputresource defines an output for syslog-ng where your SyslogNGFlows can send the log messages. The output is anamespacedresource which means only aSyslogNGFlowwithin the same namespace can access it. You can usesecretsin these definitions, but they must also be in the same namespace. Outputs are the final stage for alogging flow. You can define multipleSyslogNGoutputsand attach them to multipleSyslogNGFlows. SyslogNGClusterOutputdefines a SyslogNGOutput without namespace restrictions. It is only evaluated in thecontrolNamespaceby default unlessallowClusterResourcesFromAllNamespacesis set to true.
Note:
SyslogNGFlowcan be connected toSyslogNGOutputandSyslogNGClusterOutput, butSyslogNGClusterFlowcan be attached only toSyslogNGClusterOutput.
RFC5424 syslog-ng output example 🔗︎
The following example defines a simple SyslogNGOutput resource that sends the logs to the specified syslog server using the RFC5424 Syslog protocol in a TLS-encrypted connection.
apiVersion: logging.banzaicloud.io/v1beta1
kind: SyslogNGOutput
metadata:
name: syslog-output
namespace: default
spec:
syslog:
host: 10.20.9.89
port: 601
template: "$(format-json
--subkeys json.
--exclude json.kubernetes.labels.*
json.kubernetes.labels=literal($(format-flat-json --subkeys json.kubernetes.labels.)))\n"
tls:
ca_file:
mountFrom:
secretKeyRef:
key: ca.crt
name: syslog-tls-cert
cert_file:
mountFrom:
secretKeyRef:
key: tls.crt
name: syslog-tls-cert
key_file:
mountFrom:
secretKeyRef:
key: tls.key
name: syslog-tls-cert
transport: tls
- For the details of the supported output plugins, see syslog-ng outputs.
- For the details of
SyslogNGOutputcustom resource, see SyslogNGOutputSpec. - For the details of
SyslogNGClusterOutputcustom resource, see SyslogNGClusterOutput.