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:
$ cd build/
Let CMake configure the project specifying where the root path is located:
$ cmake ../
-- The C compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- The CXX compiler identification is GNU 4.9.2
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
...
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Looking for accept4
-- Looking for accept4 - not found
-- Configuring done
-- Generating done
-- 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:
$ make
Scanning dependencies of target msgpack
[ 2%] Building C object lib/msgpack-1.1.0/CMakeFiles/msgpack.dir/src/unpack.c.o
[ 4%] Building C object lib/msgpack-1.1.0/CMakeFiles/msgpack.dir/src/objectc.c.o
[ 7%] Building C object lib/msgpack-1.1.0/CMakeFiles/msgpack.dir/src/version.c.o
...
[ 19%] Building C object lib/monkey/mk_core/CMakeFiles/mk_core.dir/mk_file.c.o
[ 21%] Building C object lib/monkey/mk_core/CMakeFiles/mk_core.dir/mk_rconf.c.o
[ 23%] Building C object lib/monkey/mk_core/CMakeFiles/mk_core.dir/mk_string.c.o
...
Scanning dependencies of target fluent-bit-static
[ 66%] Building C object src/CMakeFiles/fluent-bit-static.dir/flb_pack.c.o
[ 69%] Building C object src/CMakeFiles/fluent-bit-static.dir/flb_input.c.o
[ 71%] Building C object src/CMakeFiles/fluent-bit-static.dir/flb_output.c.o
...
Linking C executable ../bin/fluent-bit
[100%] Built target fluent-bit-bin
to continue installing the binary on the system just do:
$ 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 | Buils 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 |