TCP
The tcp input plugin allows to listen for JSON messages through a network interface (TCP port).
Configuration Parameters
The plugin supports the following configuration parameters:
Key | Description |
---|---|
Listen | Listener network interface, default: 0.0.0.0. |
Port | TCP port where listening for connections, default: 5170. |
Buffer_Size | Specify the maximum buffer size in KB to receive a JSON message. If not set, the default size will be the value of Chunk_Size. |
Chunk_Size | By default the buffer to store the incoming JSON messages, do not allocate the maximum memory allowed, instead it allocate memory when is required. The rounds of allocations are set by Chunk_Size in KB. If not set, Chunk_Size is equal to 32 (32KB). |
Getting Started
In order to receive JSON messages over TCP, you can run the plugin from the command line or through the configuration file:
Command Line
From the command line you can let Fluent Bit listen for JSON messages with the following options:
$ fluent-bit -i tcp -o stdout
By default the service will listen an all interfaces (0.0.0.0) through TCP port 5170, optionally you can change this directly, e.g:
$ fluent-bit -i tcp://192.168.3.2:9090 -o stdout
In the example the JSON 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:
[INPUT]
Name tcp
Listen 0.0.0.0
Port 5170
Chunk_Size 32
Buffer_Size 64
[OUTPUT]
Name stdout
Match *
Testing
Once Fluent Bit is running, you can send some messages using the netcat:
$ echo '{"key 1": 123456789, "key 2": "abcdefg"}' | nc 127.0.0.1 5170
In Fluent Bit we should see the following output:
$ bin/fluent-bit -i tcp -o stdout
Fluent-Bit v0.11.0
Copyright (C) Treasure Data
[2017/01/02 10:57:44] [ info] [engine] started
[2017/01/02 10:57:44] [ info] [in_tcp] binding 0.0.0.0:5170
[0] tcp.0: [1483376268, {"msg"=>{"key 1"=>123456789, "key 2"=>"abcdefg"}}]