Versions | v1.0 (td-agent3) | v0.12 (td-agent2)

TCP Input Plugin

The in_tcp Input plugin enables Fluentd to accept TCP payload.

Don’t use this plugin for receiving logs from Fluentd client libraries. Use in_forward for such cases.

Table of Contents

Example Configuration

in_tcp is included in Fluentd’s core. No additional installation process is required.

  @type tcp
  tag # required
    @type regexp
    expression /^(?<field1>\d+):(?<field2>\w+)$/
  port 20001   # optional. 5170 by default
  bind # optional. by default
  delimiter \n # optional. \n (newline) by default

Example input:

$ echo '123456:awesome' | netcat 5170

Parsed result like below:

Please see the Config File article for the basic structure and syntax of the configuration file. For <parse> section, please check Parse section cofiguration.
We've observed the drastic performance improvements on Linux, with proper kernel parameter settings. If you have high-volume TCP traffic, please make sure to follow the instruction described at Before Installing Fluentd.

Plugin helpers


Common Parameters


The value must be tcp.


type default version
string required parameter 0.14.0

tag of output events.


type default version
integer 5170 0.14.0

The port to listen to.


type default version
string (all addresses) 0.14.0

The bind address to listen to.


type default version
string nil (no adding hostname) 0.14.10

The field name of the client’s hostname. If set the value, the client’s hostname will be set to its key. The default is nil (no adding hostname).

If you set following configuration:

source_hostname_key client_host

then the client’s hostname is set to client_host field.

    "foo": "bar",
    "client_host": ""

<parse> section

required multi version
true false 0.14.10

in_tcp uses parser plugin to parse the payload.

For more details about parser plugin, see followings:

Code example

Here is ruby example to send event to in_tcp.

require 'socket'

# This example uses json payload.
# In in_tcp configuration, need to configure "@type json" in "<parse>"'', 5170) do |s|
  s.write('{"k":"v1"}' + "\n")
  s.write('{"k":"v2"}' + "\n")
Last updated: 2019-03-19 07:34:38 +0000

Versions | v1.0 (td-agent3) | v0.12 (td-agent2)

If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is a open source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.