Build and install

Fluent Bit uses CMake as its build system.

Requirements

To build and install Fluent Bit from source, you must also install the following packages:

  • bison

  • build-essentials

  • cmake (version 3.31.6 or later)

  • flex

  • libssl-dev

  • libyaml-dev

  • pkg-config

Additionally, certain input or output plugins might depend on additional components. For example, some plugins require Kafka.

Prepare environment

If you already know how CMake works, you can skip this section and review the available build options.

The following steps explain how to build and install the project with the default options.

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

    cd build/
  2. Let CMake configure the project specifying where the root path is located:

    cmake ../

    This command displays a series of results similar to:

    -- 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
  3. Start the compilation process using the make command:

    make

    This command displays results similar to:

    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
  4. To continue installing the binary on the system, use make install:

    make install

    If the command indicates insufficient permissions, prefix the command with sudo.

Build options

Fluent Bit provides configurable options to CMake that can be enabled or disabled.

General options

Option
Description
Default

FLB_ALL

Enable all features available

No

FLB_ARROW

Build with Apache Arrow support

No

FLB_AVRO_ENCODER

Build with Avro encoding support

No

FLB_AWS

Enable AWS support

Yes

FLB_AWS_ERROR_REPORTER

Build with AWS error reporting support

No

FLB_BENCHMARKS

Enable benchmarks

No

FLB_BINARY

Build executable

Yes

FLB_CHUNK_TRACE

Enable chunk traces

Yes

FLB_COVERAGE

Build with code-coverage

No

FLB_CONFIG_YAML

Enable YAML configuration support

Yes

FLB_CORO_STACK_SIZE

Set coroutine stack size

FLB_CUSTOM_CALYPTIA

Enable Calyptia Support

Yes

FLB_ENFORCE_ALIGNMENT

Enable limited platform specific aligned memory access

No

FLB_EXAMPLES

Build examples

Yes

FLB_HTTP_SERVER

Enable HTTP Server

Yes

FLB_INOTIFY

Enable Inotify support

Yes

FLB_JEMALLOC

Build with Jemalloc support

No

FLB_KAFKA

Enable Kafka support

Yes

FLB_LUAJIT

Enable Lua scripting support

Yes

FLB_METRICS

Enable metrics support

Yes

FLB_MTRACE

Enable mtrace support

No

FLB_PARSER

Build with Parser support

Yes

FLB_POSIX_TLS

Force POSIX thread storage

No

FLB_PROFILES

Enable profiles support

Yes

FLB_PROXY_GO

Enable Go plugins support

Yes

FLB_RECORD_ACCESSOR

Enable record accessor

Yes

FLB_REGEX

Build with Regex support

Yes

FLB_RELEASE

Build with release mode (-O2 -g -DNDEBUG)

No

FLB_SHARED_LIB

Build shared library

Yes

FLB_SIGNV4

Enable AWS Signv4 support

Yes

FLB_SIMD

Enable SIMD support

No

FLB_SQLDB

Enable SQL embedded database 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

FLB_TLS

Build with SSL/TLS support

Yes

FLB_UNICODE_ENCODER

Build with Unicode (UTF-16LE, UTF-16BE) encoding support

Yes (if C++ compiler found)

FLB_UTF8_ENCODER

Build with UTF8 encoding support

Yes

FLB_WASM

Build with Wasm runtime support

Yes

FLB_WASM_STACK_PROTECT

Build with WASM runtime with strong stack protector flags

No

FLB_WAMRC

Build with Wasm AOT compiler executable

No

FLB_WINDOWS_DEFAULTS

Build with predefined Windows settings

Yes

FLB_ZIG

Enable zig integration

Yes

Development options

Option
Description
Default

FLB_BACKTRACE

Enable stack trace support

Yes

FLB_DEBUG

Build with debug mode (-g)

No

FLB_SMALL

Optimize for small size

No

FLB_TESTS_INTERNAL

Enable internal tests

No

FLB_TESTS_INTERNAL_FUZZ

Enable internal fuzz tests

No

FLB_TESTS_OSSFUZZ

Enable OSS-Fuzz build

No

FLB_TESTS_RUNTIME

Enable runtime tests

No

FLB_TRACE

Enable trace mode

No

FLB_VALGRIND

Enable Valgrind support

No

Optimization options

Option
Description
Default

FLB_MSGPACK_TO_JSON_INIT_BUFFER_SIZE

Determine initial buffer size for msgpack to json conversion in terms of memory used by payload.

2.0

FLB_MSGPACK_TO_JSON_REALLOC_BUFFER_SIZE

Determine percentage of reallocation size when msgpack to json conversion buffer runs out of memory.

0.1

Input plugins

Input plugins gather information from a specific source type like network interfaces, some built-in metrics, or through a specific input device.

The following input plugins are available:

Option
Description
Default

Enable Blob input plugin

On

Enable Collectd input plugin

On

Enable CPU input plugin

On

Enable Disk I/O Metrics input plugin

On

Enable Docker input plugin

On

Enable Docker events input plugin

On

Enable Dummy input plugin

On

Enable Linux eBPF input plugin

Off

Enable Elasticsearch (Bulk API) input plugin

On

Enable Exec input plugin

On

Enable Exec WASI input plugin

On

Enable Fluent Bit metrics input plugin

On

Enable Forward input plugin

On

Enable GPU metrics input plugin

On

Enable Head input plugin

On

Enable Health input plugin

On

Enable HTTP input plugin

On

Enable Kafka input plugin

On

Enable Kernel log input plugin

On

Enable Kubernetes Events input plugin

On

Enable Memory input plugin

On

Enable MQTT Broker input plugin

On

Enable Network I/O metrics input plugin

On

Enable NGINX metrics input plugin

On

Enable Node exporter metrics input plugin

On

Enable OpenTelemetry input plugin

On

Enable Node exporter metrics input plugin

On

Enable Podman metrics input plugin

On

Enable Process input plugin

On

Enable Process exporter metrics input plugin

On

Enable Prometheus remote write input plugin

On

Enable Prometheus scrape metrics input plugin

On

Enable Prometheus textfile input plugin

On

Enable Random input plugin

On

Enable Serial input plugin

On

Enable Serial input plugin

On

Enable StatsD input plugin

On

Enable Standard input plugin

On

Enable Syslog input plugin

On

Enable Systemd input plugin

On

Enable Tail input plugin

On

Enable TCP input plugin

On

Enable Thermal input plugin

On

Enable UDP input plugin

On

Enable Windows Event Log input plugin (Windows Only)

Off

Enable Windows Event Log input plugin using winevt.h API (Windows Only)

Off

Enable Windows exporter metrics input plugin

On

Enable Windows system statistics input plugin

Off

Processor plugins

Processor plugins handle the events within the processor pipelines to allow modifying, enriching, or dropping events.

The following table describes the processors available:

Option
Description
Default

Enable content modifier processor

On

Enable metrics label manipulation processor

On

Enable metrics selector processor

On

Enable OpenTelemetry envelope processor

On

Enable sampling processor

On

Enable SQL processor

On

Filter plugins

Filter plugins let you modify, enrich or drop records.

The following table describes the filters available on this version:

Option
Description
Default

Enable AWS metadata filter

On

Enable Checklist filter

On

Enable AWS ECS metadata filter

On

Enable Expect data test filter

On

Enable Geoip2 filter

On

Enable Grep filter

On

Enable Kubernetes metadata filter

On

Enable Log derived metrics filter

On

Enable Lua scripting filter

On

Enable Modify filter

On

Enable Multiline stack trace filter

On

Enable Nest filter

On

Enable Nightfall filter

On

Enable Parser filter

On

Enable Record Modifier filter

On

Enable Rewrite Tag filter

On

Enable Stdout filter

On

Enable Sysinfo filter

On

Enable Tensorflow filter

Off

Enable Throttle filter

On

Enable Type Converter filter

On

Enable Wasm filter

On

Output plugins

Output plugins let you flush the information to some external interface, service, or terminal.

The following table describes the output plugins available:

Option
Description
Default

Enable Microsoft Azure output plugin

On

Enable Microsoft Azure storage blob output plugin

On

Enable Azure Data Explorer (Kusto) output plugin

On

Enable Azure Log Ingestion output plugin

On

Enable Google BigQuery output plugin

On

Enable Google Chronicle output plugin

On

Enable Amazon CloudWatch output plugin

On

Enable Counter output plugin

On

Enable Datadog output plugin

On

Enable Elastic Search output plugin

On

Enable Exit output plugin

On

Enable File output plugin

On

Enable Flow counter output plugin

On

Enable Fluentd output plugin

On

Enable GELF output plugin

On

Enable HTTP output plugin

On

Enable InfluxDB output plugin

On

Enable Kafka output

On

Enable Kafka REST Proxy output plugin

On

Enable Amazon Kinesis Data Firehose output plugin

On

Enable Amazon Kinesis Data Streams output plugin

On

FLB_OUT_LIB

Enable Library output plugin

On

Enable LogDNA output plugin

On

Enable Loki output plugin

On

Enable NATS output plugin

On

Enable New Relic output plugin

On

Enable NULL output plugin

On

Enable OpenSearch output plugin

On

Enable OpenTelemetry output plugin

On

Enable Oracle Cloud Infrastructure Logging output plugin

On

Enable PostgreSQL output plugin

Off

Enable Plot output plugin

On

Enable Prometheus exporter output plugin

On

Enable Prometheus remote write output plugin

On

Enable Amazon S3 output plugin

On

Enable Apache Skywalking output plugin

On

Enable Slack output plugin

On

Enable Splunk output plugin

On

Enable Stackdriver output plugin

On

Enable STDOUT output plugin

On

Enable Syslog output plugin

On

Enable Treasure Data output plugin

On

Enable TCP/TLS output plugin

On

Enable UDP output plugin

On

Enable Vivo exporter output plugin

On

Enable UDP output plugin

On

Last updated

Was this helpful?