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.
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. |
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.
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.
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 %}
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 %}
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"}]