Fluent Bit uses CMake as it build system. The suggested procedure to prepare the build system consists on the following steps:
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. Note that Fluent Bit requires CMake 3.x. You may need to use
cmake3
instead ofcmake
to complete the following steps on your system.
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.
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, Development Options, Input Plugins and _Output Plugins sections.
option | description | default |
---|---|---|
FLB_ALL | Enable all features available | No |
FLB_JEMALLOC | Use Jemalloc as default memory allocator | No |
FLB_TLS | Build with SSL/TLS support | Yes |
FLB_BINARY | Build executable | Yes |
FLB_EXAMPLES | Build examples | Yes |
FLB_SHARED_LIB | Build shared library | Yes |
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_LUAJIT | Enable Lua scripting support | Yes |
FLB_RECORD_ACCESSOR | Enable record accessor | Yes |
FLB_SIGNV4 | Enable AWS Signv4 support | Yes |
FLB_STATIC_CONF | Build binary using static configuration files. The value of this option must be a directory containing configuration files. | |
FLB_STREAM_PROCESSOR | Enable Stream Processor | Yes |
option | description | default |
---|---|---|
FLB_DEBUG | Build binaries with debug symbols | No |
FLB_VALGRIND | Enable Valgrind support | No |
FLB_TRACE | Enable trace mode | No |
FLB_SMALL | Minimise binary size | No |
FLB_TESTS_RUNTIME | Enable runtime tests | No |
FLB_TESTS_INTERNAL | Enable internal tests | No |
FLB_TESTS | Enable tests | No |
FLB_BACKTRACE | Enable backtrace/stacktrace support | Yes |
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_COLLECTD | Enable Collectd input plugin | On |
FLB_IN_CPU | Enable CPU input plugin | On |
FLB_IN_DISK | Enable Disk I/O Metrics input plugin | On |
FLB_IN_DOCKER | Enable Docker metrics input plugin | On |
FLB_IN_EXEC | Enable Exec 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_MQTT | Enable MQTT Server input plugin | On |
FLB_IN_NETIF | Enable Network I/O metrics input plugin | On |
FLB_IN_PROC | Enable Process monitoring 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_SYSLOG | Enable Syslog input plugin | On |
FLB_IN_SYSTEMD | Enable Systemd / Journald input plugin | On |
FLB_IN_TAIL | Enable Tail (follow files) input plugin | On |
FLB_IN_TCP | Enable TCP input plugin | On |
FLB_IN_THERMAL | Enable system temperature(s) input plugin | On |
FLB_IN_WINLOG | Enable Windows Event Log input plugin (Windows Only) | On |
The filter plugins allows to modify, enrich or drop records. The following table describes the filters available on this version:
option | description | default |
---|---|---|
FLB_FILTER_AWS | Enable AWS metadata filter | On |
FLB_FILTER_EXPECT | Enable Expect data test filter | On |
FLB_FILTER_GREP | Enable Grep filter | On |
FLB_FILTER_KUBERNETES | Enable Kubernetes metadata filter | On |
FLB_FILTER_LUA | Enable Lua scripting filter | On |
FLB_FILTER_MODIFY | Enable Modify filter | On |
FLB_FILTER_NEST | Enable Nest filter | On |
FLB_FILTER_PARSER | Enable Parser filter | On |
FLB_FILTER_RECORD_MODIFIER | Enable Record Modifier filter | On |
FLB_FILTER_REWRITE_TAG | Enable Rewrite Tag filter | On |
FLB_FILTER_STDOUT | Enable Stdout filter | On |
FLB_FILTER_THROTTLE | Enable Throttle filter | On |
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_AZURE | Enable Microsoft Azure output plugin | On |
FLB_OUT_BIGQUERY | Enable Google BigQuery output plugin | On |
FLB_OUT_COUNTER | Enable Counter output plugin | On |
FLB_OUT_CLOUDWATCH_LOGS | Enable Amazon CloudWatch output plugin | On |
FLB_OUT_DATADOG | Enable Datadog output plugin | On |
FLB_OUT_ES | Enable Elastic Search output plugin | On |
FLB_OUT_FILE | Enable File output plugin | On |
FLB_OUT_KINESIS_FIREHOSE | Enable Amazon Kinesis Data Firehose output plugin | On |
FLB_OUT_FLOWCOUNTER | Enable Flowcounter output plugin | On |
FLB_OUT_FORWARD | Enable Fluentd output plugin | On |
FLB_OUT_GELF | Enable Gelf output plugin | On |
FLB_OUT_HTTP | Enable HTTP output plugin | On |
FLB_OUT_INFLUXDB | Enable InfluxDB output plugin | On |
FLB_OUT_KAFKA | Enable Kafka output | Off |
FLB_OUT_KAFKA_REST | Enable Kafka REST Proxy output plugin | On |
FLB_OUT_LIB | Enable Lib output plugin | On |
FLB_OUT_NATS | Enable NATS output plugin | Off |
FLB_OUT_NULL | Enable NULL output plugin | On |
FLB_OUT_PGSQL | Enable PostgreSQL output plugin | On |
FLB_OUT_PLOT | Enable Plot output plugin | On |
FLB_OUT_SLACK | Enable Slack output plugin | On |
FLB_OUT_S3 | Enable Amazon S3 output plugin | On |
FLB_OUT_SPLUNK | Enable Splunk output plugin | On |
FLB_OUT_STACKDRIVER | Enable Google Stackdriver output plugin | On |
FLB_OUT_STDOUT | Enable STDOUT output plugin | On |
FLB_OUT_TCP | Enable TCP/TLS output plugin | On |
FLB_OUT_TD | Enable Treasure Data output plugin | On |