Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer (SSL) respectively. In this section we will refer as TLS only for both implementations.
Each output plugin that requires to perform Network I/O can optionally enable TLS and configure the behavior. The following table describes the properties available:
enable or disable TLS support
force certificate validation
Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose
absolute path to CA certificate file
absolute path to scan for certificate files
absolute path to Certificate file
absolute path to private Key file
optional password for tls.key_file file
hostname to be used for TLS SNI extension
The listed properties can be enabled in the configuration file, specifically on each output plugin section or directly through the command line. The following output plugins can take advantage of the TLS feature:
By default HTTP output plugin uses plain TCP, enabling TLS from the command line can be done with:
$ fluent-bit -i cpu -t cpu -o http://192.168.2.3:80/something \-p tls=on \-p tls.verify=off \-m '*'
In the command line above, the two properties tls and tls.verify where enabled for demonstration purposes (we strongly suggest always keep verification ON).
The same behavior can be accomplished using a configuration file:
[INPUT]Name cpuTag cpu[OUTPUT]Name httpMatch *Host 192.168.2.3Port 80URI /somethingtls Ontls.verify Off
Fluent Bit supports TLS server name indication. If you are serving multiple hostnames on a single IP address (a.k.a. virtual hosting), you can make use of
tls.vhost to connect to a specific hostname.
[INPUT]Name cpuTag cpu[OUTPUT]Name forwardMatch *Host 192.168.10.100Port 24224tls Ontls.verify Ontls.ca_file /etc/certs/fluent.crttls.vhost fluent.example.com