Variables

Fluent Bit supports the usage of environment variables in any value associated to a key when using a configuration file.

The variables are case sensitive and can be used in the following format:

  1. ${MY_VARIABLE}

When Fluent Bit starts, the configuration reader will detect any request for ${MY_VARIABLE} and will try to resolve its value.

Example

Create the following configuration file (fluent-bit.conf):

  1. [SERVICE]
  2. Flush 1
  3. Daemon Off
  4. Log_Level info
  5. [INPUT]
  6. Name cpu
  7. Tag cpu.local
  8. [OUTPUT]
  9. Name ${MY_OUTPUT}
  10. Match *

Open a terminal and set the environment variable:

  1. $ export MY_OUTPUT=stdout

The above command set the ‘stdout’ value to the variable MY_OUTPUT.

Run Fluent Bit with the recently created configuration file:

  1. $ bin/fluent-bit -c fluent-bit.conf
  2. Fluent Bit v1.4.0
  3. * Copyright (C) 2019-2020 The Fluent Bit Authors
  4. * Copyright (C) 2015-2018 Treasure Data
  5. * Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
  6. * https://fluentbit.io
  7. [2020/03/03 12:25:25] [ info] [engine] started
  8. [0] cpu.local: [1491243925, {"cpu_p"=>1.750000, "user_p"=>1.750000, "system_p"=>0.000000, "cpu0.p_cpu"=>3.000000, "cpu0.p_user"=>2.000000, "cpu0.p_system"=>1.000000, "cpu1.p_cpu"=>0.000000, "cpu1.p_user"=>0.000000, "cpu1.p_system"=>0.000000, "cpu2.p_cpu"=>4.000000, "cpu2.p_user"=>4.000000, "cpu2.p_system"=>0.000000, "cpu3.p_cpu"=>1.000000, "cpu3.p_user"=>1.000000, "cpu3.p_system"=>0.000000}]

As you can see the service worked properly as the configuration was valid.