Windows

Fluent Bit is distributed as the fluent-bit package for Windows and as a Windows container on Docker Hub. Fluent Bit provides two Windows installers: a ZIP archive and an EXE installer.

Not all plugins are supported on Windows. The CMake configuration shows the default set of supported plugins.

Configuration

Provide a valid Windows configuration with the installation.

The following configuration is an example:

[SERVICE]
    # Flush
    # =====
    # set an interval of seconds before to flush records to a destination
    flush        5

    # Daemon
    # ======
    # instruct Fluent Bit to run in foreground or background mode.
    daemon       Off

    # Log_Level
    # =========
    # Set the verbosity level of the service, values can be:
    #
    # - error
    # - warning
    # - info
    # - debug
    # - trace
    #
    # by default 'info' is set, that means it includes 'error' and 'warning'.
    log_level    info

    # Parsers File
    # ============
    # specify an optional 'Parsers' configuration file
    parsers_file parsers.conf

    # Plugins File
    # ============
    # specify an optional 'Plugins' configuration file to load external plugins.
    plugins_file plugins.conf

    # HTTP Server
    # ===========
    # Enable/Disable the built-in HTTP Server for metrics
    http_server  Off
    http_listen  0.0.0.0
    http_port    2020

    # Storage
    # =======
    # Fluent Bit can use memory and filesystem buffering based mechanisms
    #
    # - https://docs.fluentbit.io/manual/administration/buffering-and-storage
    #
    # storage metrics
    # ---------------
    # publish storage pipeline metrics in '/api/v1/storage'. The metrics are
    # exported only if the 'http_server' option is enabled.
    #
    storage.metrics on

[INPUT]
    Name         winlog
    Channels     Setup,Windows PowerShell
    Interval_Sec 1

[OUTPUT]
    name  stdout
    match *

Migration to Fluent Bit

For version 1.9 and later, td-agent-bit is a deprecated package and was removed after 1.9.9. The correct package name to use now is fluent-bit.

Installation packages

The latest stable version is 3.2.4. Each version is available from the following download URLs.

These are now using the Github Actions built versions. Legacy AppVeyor builds are still available (AMD 32/64 only) at releases.fluentbit.io but are deprecated.

MSI installers are also available:

To check the integrity, use the Get-FileHash cmdlet for PowerShell.

PS> Get-FileHash fluent-bit-3.2.4-win32.exe

Installing from a ZIP archive

  1. Download a ZIP archive. Choose the suitable installers for your 32-bit or 64-bit environments.

  2. Expand the ZIP archive. You can do this by clicking Extract All in Explorer or Expand-Archive in PowerShell.

    PS> Expand-Archive fluent-bit-3.2.4-win64.zip

    The ZIP package contains the following set of files.

    fluent-bit
    ├── bin
    │   ├── fluent-bit.dll
    │   └── fluent-bit.exe
    │   └── fluent-bit.pdb
    ├── conf
    │   ├── fluent-bit.conf
    │   ├── parsers.conf
    │   └── plugins.conf
    └── include
        │   ├── flb_api.h
        │   ├── ...
        │   └── flb_worker.h
        └── fluent-bit.h
  3. Launch cmd.exe or PowerShell on your machine, and execute fluent-bit.exe:

    PS> .\bin\fluent-bit.exe -i dummy -o stdout

The following output indicates Fluent Bit is running:

PS> .\bin\fluent-bit.exe  -i dummy -o stdout
Fluent Bit v2.0.x
* Copyright (C) 2019-2020 The Fluent Bit Authors
* Copyright (C) 2015-2018 Treasure Data
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
* https://fluentbit.io

[2019/06/28 10:13:04] [ info] [storage] initializing...
[2019/06/28 10:13:04] [ info] [storage] in-memory
[2019/06/28 10:13:04] [ info] [storage] normal synchronization mode, checksum disabled, max_chunks_up=128
[2019/06/28 10:13:04] [ info] [engine] started (pid=10324)
[2019/06/28 10:13:04] [ info] [sp] stream processor started
[0] dummy.0: [1561684385.443823800, {"message"=>"dummy"}]
[1] dummy.0: [1561684386.428399000, {"message"=>"dummy"}]
[2] dummy.0: [1561684387.443641900, {"message"=>"dummy"}]
[3] dummy.0: [1561684388.441405800, {"message"=>"dummy"}]

To halt the process, press Control+C in the terminal.

Installing from the EXE installer

  1. Download an EXE installer for the appropriate 32-bit or 64-bit build.

  2. Double-click the EXE installer you've downloaded. The installation wizard starts.

  3. Click Next and finish the installation. By default, Fluent Bit is installed in C:\Program Files\fluent-bit\.

You should be able to launch Fluent Bit using the following PowerShell command:.

PS> C:\Program Files\fluent-bit\bin\fluent-bit.exe -i dummy -o stdout

Installer options

The Windows installer is built by CPack using NSIS and supports the default NSIS options for silent installation and install directory.

To silently install to C:\fluent-bit directory here is an example:

PS> <installer exe> /S /D=C:\fluent-bit

The uninstaller also supports a silent uninstall using the same /S flag. This can be used for provisioning with automation like Ansible, Puppet, and so on.

Windows service support

Windows services are equivalent to daemons in UNIX (long-running background processes). For v1.5.0 and later, Fluent Bit has native support for Windows services.

For example, you have the following installation layout:

C:\fluent-bit\
├── conf
│   ├── fluent-bit.conf
│   └── parsers.conf
│   └── plugins.conf
└── bin
    ├── fluent-bit.dll
    └── fluent-bit.exe
    └── fluent-bit.pdb

To register Fluent Bit as a Windows service, execute the following command on at a command prompt. A single space is required after binpath=.

sc.exe create fluent-bit binpath= "\fluent-bit\bin\fluent-bit.exe -c \fluent-bit\conf\fluent-bit.conf"

Fluent Bit can be started and managed as a normal Windows service.

% sc.exe start fluent-bit
% sc.exe query fluent-bit
SERVICE_NAME: fluent-bit
    TYPE               : 10  WIN32_OWN_PROCESS
    STATE              : 4 Running
    ...

To halt the Fluent Bit service, use the stop command.

sc.exe stop fluent-bit

To start Fluent Bit automatically on boot, execute the following:

sc.exe config fluent-bit start= auto

FAQs

Fluent Bit fails to start up when installed under C:\Program Files

Quotations are required if file paths contain spaces. For example:

sc.exe create fluent-bit binpath= "\"C:\Program Files\fluent-bit\bin\fluent-bit.exe\" -c \"C:\Program Files\fluent-bit\conf\fluent-bit.conf\""

Can you manage Fluent Bit service using PowerShell?

Instead of sc.exe, PowerShell can be used to manage Windows services.

Create a Fluent Bit service:

PS> New-Service fluent-bit -BinaryPathName "C:\fluent-bit\bin\fluent-bit.exe -c C:\fluent-bit\conf\fluent-bit.conf" -StartupType Automatic

Start the service:

PS> Start-Service fluent-bit

Query the service status:

PS> get-Service fluent-bit | format-list
Name                : fluent-bit
DisplayName         : fluent-bit
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
ServiceType         : Win32OwnProcess

Stop the service:

PS> Stop-Service fluent-bit

Remove the service (requires PowerShell 6.0 or later)

PS> Remove-Service fluent-bit

Compile from Source

If you need to create a custom executable, use the following procedure to compile Fluent Bit by yourself.

Preparation

  1. Install Microsoft Visual C++ to compile Fluent Bit. You can install the minimum toolkit using the following command:

PS> wget -o vs.exe https://aka.ms/vs/16/release/vs_buildtools.exe
PS> start vs.exe
  1. Choose C++ Build Tools and C++ CMake tools for Windows and wait until the process finishes.

  2. Install flex and bison. One way to install them on Windows is to use winflexbison.

    PS> wget -o winflexbison.zip https://github.com/lexxmark/winflexbison/releases/download/v2.5.22/win_flex_bison-2.5.22.zip
    PS> Expand-Archive winflexbison.zip -Destination C:\WinFlexBison
    PS> cp -Path C:\WinFlexBison\win_bison.exe C:\WinFlexBison\bison.exe
    PS> cp -Path C:\WinFlexBison\win_flex.exe C:\WinFlexBison\flex.exe
  3. Add the path C:\WinFlexBison to your systems environment variable Path. Here's how to do that.

  4. Install OpenSSL binaries, at least the library files and headers.

  5. Install Git to pull the source code from the repository.

    PS> wget -o git.exe https://github.com/git-for-windows/git/releases/download/v2.28.0.windows.1/Git-2.28.0-64-bit.exe
    PS> start git.exe

Compilation

  1. Open the Start menu on Windows and type command Prompt for VS. From the result list, select the one that corresponds to your target system ( x86 or x64).

  2. Verify the installed OpenSSL library files match the selected target. You can examine the library files by using the dumpbin command with the /headers option .

  3. Clone the source code of Fluent Bit.

    % git clone https://github.com/fluent/fluent-bit
    % cd fluent-bit/build
  4. Compile the source code.

    % cmake .. -G "NMake Makefiles"
    % cmake --build .

Now you should be able to run Fluent Bit:

.\bin\debug\fluent-bit.exe -i dummy -o stdout

Packaging

To create a ZIP package, call cpack as follows:

cpack -G ZIP

Last updated