Skip to content

Latest commit

 

History

History
145 lines (115 loc) · 6.62 KB

forward.md

File metadata and controls

145 lines (115 loc) · 6.62 KB

Forward

Forward is the protocol used by Fluent Bit and Fluentd to route messages between peers. This plugin implements the input service to listen for Forward messages.

Configuration Parameters

The plugin supports the following configuration parameters:

Key Description Default
Listen Listener network interface. 0.0.0.0
Port TCP port to listen for incoming connections. 24224
Unix_Path Specify the path to unix socket to receive a Forward message. If set, Listen and Port are ignored.
Unix_Perm Set the permission of the unix socket file. If Unix_Path is not set, this parameter is ignored.
Buffer_Max_Size Specify the maximum buffer memory size used to receive a Forward message. The value must be according to the Unit Size specification. 6144000
Buffer_Chunk_Size By default the buffer to store the incoming Forward messages, do not allocate the maximum memory allowed, instead it allocate memory when is required. The rounds of allocations are set by Buffer_Chunk_Size. The value must be according to the Unit Size specification. 1024000
Tag_Prefix Prefix incoming tag with the defined value.
Tag Override the tag of the forwarded events with the defined value.
Shared_Key Shared key for secure forward authentication.
Self_Hostname Hostname for secure forward authentication.
Security.Users Specify the username and password pairs for secure forward authentication.

Getting Started

In order to receive Forward messages, you can run the plugin from the command line or through the configuration file as shown in the following examples.

Command Line

From the command line you can let Fluent Bit listen for Forward messages with the following options:

$ fluent-bit -i forward -o stdout

By default the service will listen an all interfaces (0.0.0.0) through TCP port 24224, optionally you can change this directly, e.g:

$ fluent-bit -i forward -p listen="192.168.3.2" -p port=9090 -o stdout

In the example the Forward messages will only arrive through network interface under 192.168.3.2 address and TCP Port 9090.

Configuration File

In your main configuration file append the following Input & Output sections:

{% tabs %} {% tab title="fluent-bit.conf" %}

[INPUT]
    Name              forward
    Listen            0.0.0.0
    Port              24224
    Buffer_Chunk_Size 1M
    Buffer_Max_Size   6M

[OUTPUT]
    Name   stdout
    Match  *

{% endtab %}

{% tab title="fluent-bit.yaml" %}

pipeline:
    inputs:
        - name: forward
          listen: 0.0.0.0
          port: 24224
          buffer_chunk_size: 1M
          buffer_max_size: 6M
    outputs:
        - name: stdout
          match: '*'

{% endtab %} {% endtabs %}

Fluent Bit + Secure Forward Setup

Since Fluent Bit v3, in_forward can handle secure forward protocol.

For using user-password authentication, it needs to specify secutiry.users at least an one-pair. For using shared key, it needs to specify shared_key in both of forward output and forward input. self_hostname is not able to specify with the same hostname between fluent servers and clients.

{% tabs %} {% tab title="fluent-bit-secure-forward.conf" %}

[INPUT]
    Name              forward
    Listen            0.0.0.0
    Port              24224
    Buffer_Chunk_Size 1M
    Buffer_Max_Size   6M
    Security.Users fluentbit changeme
    Shared_Key secret
    Self_Hostname flb.server.local

[OUTPUT]
    Name   stdout
    Match  *

{% endtab %}

{% tab title="fluent-bit-secure-forward.yaml" %}

pipeline:
    inputs:
        - name: forward
          listen: 0.0.0.0
          port: 24224
          buffer_chunk_size: 1M
          buffer_max_size: 6M
          security.users: fluentbit changeme
          shared_key: secret
          self_hostname: flb.server.local
    outputs:
        - name: stdout
          match: '*'

{% endtab %} {% endtabs %}

Testing

Once Fluent Bit is running, you can send some messages using the fluent-cat tool (this tool is provided by Fluentd:

$ echo '{"key 1": 123456789, "key 2": "abcdefg"}' | fluent-cat my_tag

In Fluent Bit we should see the following output:

$ bin/fluent-bit -i forward -o stdout
Fluent-Bit v0.9.0
Copyright (C) Treasure Data

[2016/10/07 21:49:40] [ info] [engine] started
[2016/10/07 21:49:40] [ info] [in_fw] binding 0.0.0.0:24224
[0] my_tag: [1475898594, {"key 1"=>123456789, "key 2"=>"abcdefg"}]