tcp
Last updated
Last updated
The in_tcp
Input plugin enables Fluentd to accept TCP payload.
It is included in Fluentd's core.
Don't use this plugin for receiving logs from Fluentd client libraries. Use in_forward
for such cases.
Example input:
Parsed result:
Refer to the Configuration File article for the basic structure and syntax of the configuration file.
For <parse>
, see Parse Section.
We have observed drastic performance improvements on Linux, with proper kernel parameter settings. If you have high-volume TCP traffic, follow Before Installing Fluentd instructions.
See Common Parameters.
@type
The value must be tcp
.
tag
type | default | version |
---|---|---|
string | required parameter | 0.14.0 |
The tag of output events.
port
type | default | version |
---|---|---|
integer | 5170 | 0.14.0 |
The port to listen to.
bind
type | default | version |
---|---|---|
string | 0.0.0.0 (all addresses) | 0.14.0 |
The bind address to listen to.
source_hostname_key
type | default | version |
---|---|---|
string | nil (no adding hostname) | 0.14.10 |
The field name of the client's hostname. If set, the client's hostname will be set to its key. The default is nil
(no adding hostname).
With this configuration:
The client's hostname is set to client_host
field:
source_address_key
type | default | version |
---|---|---|
string | nil (no adding source address) | 1.4.2 |
The field name for the client's IP address. If set, Fluentd automatically adds the remote address to each data record.
For example, if you have the following configuration:
You will get something like below:
message_length_limit
type | default | version |
---|---|---|
size | nil (no limit) | 1.16.1 |
The maximum number of bytes for the message.
<transport>
Sectiontype | default | available values | version |
---|---|---|---|
enum | tcp | tcp, tls | 0.14.12 |
This section is for setting TLS transport or some general transport configurations.
linger_timeout
type | default | available transport type | version |
---|---|---|---|
integer | 0 | tcp, tls | 1.14.6 |
The timeout (seconds) to set SO_LINGER
.
The default value 0
is to send RST rather than FIN to avoid lots of connections sitting in TIME_WAIT on closing on non-Windows.
You can set positive value to send FIN on closing on non-Windows.
On Windows, Fluentd sends FIN without depending on this setting.
send_keepalive_packet
type | default | available transport type | version |
---|---|---|---|
bool | false | tcp, tls | 1.16.0 |
Enable SO_KEEPALIVE
on the underlying TCP sockets.
This is useful when you connect to Fluentd over firewalls or proxies and want to prevent connections from being closed automatically.
See How to Enable TLS Encryption section for how to use and see Configuration Example for all supported parameters.
Without <transport tls>
, in_tcp
uses raw TCP.
<security>
Sectionrequired | multi | version |
---|---|---|
false | false | 1.7.2 |
Adds <security>/<client>
section to allow access by Host/IP/Network.
<client>
Sectionhost
type | default | version |
---|---|---|
string | nil | 1.7.2 |
The IP address or host name of the client.
This is exclusive with network
.
network
type | default | version |
---|---|---|
string | nil | 1.7.2 |
Network address specification.
This is exclusive with host
.
<parse>
Sectionrequired | multi | version |
---|---|---|
true | false | 0.14.10 |
in_tcp
uses the parser plugin to parse the payload.
For more details:
Here is a Ruby example to send an event to in_tcp
:
in_tcp
supports TLS transport.
Example:
Fluentd supports TLS mutual authentication (i.e. client certificate auth). If you want to use this feature, please set the client_cert_auth
and ca_path
options like this:
When this feature is enabled, Fluentd will check all the incoming requests for a client certificate signed by the trusted CA. Requests with an invalid client certificate will fail.
To check if mutual authentication is working properly, issue these commands:
If the connection gets established successfully, your setup is working fine.
If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is an open-source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.