Build and Install

Fluent Bit uses CMake as it build system. The suggested procedure to prepare the build system consists on the following steps:

Prepare environment

In the following steps you can find exact commands to build and install the project with the default options. If you already know how CMake works you can skip this part and look at the build options available.

Change to the build/ directory inside the Fluent Bit sources:

  1. $ cd build/

Let CMake configure the project specifying where the root path is located:

  1. $ cmake ../
  2. -- The C compiler identification is GNU 4.9.2
  3. -- Check for working C compiler: /usr/bin/cc
  4. -- Check for working C compiler: /usr/bin/cc -- works
  5. -- Detecting C compiler ABI info
  6. -- Detecting C compiler ABI info - done
  7. -- The CXX compiler identification is GNU 4.9.2
  8. -- Check for working CXX compiler: /usr/bin/c++
  9. -- Check for working CXX compiler: /usr/bin/c++ -- works
  10. ...
  11. -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
  12. -- Looking for accept4
  13. -- Looking for accept4 - not found
  14. -- Configuring done
  15. -- Generating done
  16. -- Build files have been written to: /home/edsiper/coding/fluent-bit/build

Now you are ready to start the compilation process through the simple make command:

  1. $ make
  2. Scanning dependencies of target msgpack
  3. [ 2%] Building C object lib/msgpack-1.1.0/CMakeFiles/msgpack.dir/src/unpack.c.o
  4. [ 4%] Building C object lib/msgpack-1.1.0/CMakeFiles/msgpack.dir/src/objectc.c.o
  5. [ 7%] Building C object lib/msgpack-1.1.0/CMakeFiles/msgpack.dir/src/version.c.o
  6. ...
  7. [ 19%] Building C object lib/monkey/mk_core/CMakeFiles/mk_core.dir/mk_file.c.o
  8. [ 21%] Building C object lib/monkey/mk_core/CMakeFiles/mk_core.dir/mk_rconf.c.o
  9. [ 23%] Building C object lib/monkey/mk_core/CMakeFiles/mk_core.dir/mk_string.c.o
  10. ...
  11. Scanning dependencies of target fluent-bit-static
  12. [ 66%] Building C object src/CMakeFiles/fluent-bit-static.dir/flb_pack.c.o
  13. [ 69%] Building C object src/CMakeFiles/fluent-bit-static.dir/flb_input.c.o
  14. [ 71%] Building C object src/CMakeFiles/fluent-bit-static.dir/flb_output.c.o
  15. ...
  16. Linking C executable ../bin/fluent-bit
  17. [100%] Built target fluent-bit-bin

to continue installing the binary on the system just do:

  1. $ make install

it’s likely you may need root privileges so you can try to prefixing the command with sudo.

Build Options

Fluent Bit provides certain options to CMake that can be enabled or disabled when configuring, please refer to the following tables under the General Options, Input Plugins and Output Plugins sections.

General Options

option description default
FLB_ALL Enable all features available No
FLB_DEBUG Build binaries with debug symbols No
FLB_JEMALLOC Use Jemalloc as default memory allocator No
FLB_TLS Builds with SSL/TLS support No
FLB_BINARY Build executable Yes
FLB_EXAMPLES Build examples Yes
FLB_SHARED_LIB Build shared library Yes
FLB_VALGRIND Enable Valgrind support No
FLB_TRACE Enable trace mode No
FLB_TESTS_RUNTIME Enable runtime tests No
FLB_TESTS_INTERNAL Enable internal tests No
FLB_TESTS Enable tests No
FLB_MTRACE Enable mtrace support No
FLB_INOTIFY Enable Inotify support Yes
FLB_POSIX_TLS Force POSIX thread storage No
FLB_SQLDB Enable SQL embedded database support No
FLB_HTTP_SERVER Enable HTTP Server No
FLB_BACKTRACE Enable backtrace/stacktrace support Yes
FLB_LUAJIT Enable Lua scripting support Yes
FLB_STATIC_CONF Build binary using static configuration files. The value of this option must be a directory containing configuration files.

Input Plugins

The input plugins provides certain features to gather information from a specific source type which can be a network interface, some built-in metric or through a specific input device, the following input plugins are available:

option description default
FLB_IN_CPU Enable CPU input plugin On
FLB_IN_FORWARD Enable Forward input plugin On
FLB_IN_HEAD Enable Head input plugin On
FLB_IN_HEALTH Enable Health input plugin On
FLB_IN_KMSG Enable Kernel log input plugin On
FLB_IN_MEM Enable Memory input plugin On
FLB_IN_RANDOM Enable Random input plugin On
FLB_IN_SERIAL Enable Serial input plugin On
FLB_IN_STDIN Enable Standard input plugin On
FLB_IN_TCP Enable TCP input plugin On
FLB_IN_MQTT Enable MQTT input plugin On
FLB_IN_XBEE Enable Xbee input plugin Off

Output Plugins

The output plugins gives the capacity to flush the information to some external interface, service or terminal, the following table describes the output plugins available as of this version:

option description default
FLB_OUT_ES Enable Elastic Search output plugin On
FLB_OUT_FORWARD Enable Fluentd output plugin On
FLB_OUT_HTTP Enable HTTP output plugin On
FLB_OUT_NATS Enable NATS output plugin Off
FLB_OUT_PLOT Enable Plot output plugin On
FLB_OUT_STDOUT Enable STDOUT output plugin On
FLB_OUT_TD Enable Treasure Data output plugin On
FLB_OUT_NULL Enable /dev/null output plugin On