in_forward插件通常用于从其他节点接收日志事件,这些节点包括其他Fluentd实例、fluent-cat命令行或者Fluentd客户端程序。这是目前效率最高的日志事件接收方法。
in_forward插件会在本地打开一个tcp监听socket,用于接收日志事件。同时,它也会开启一个udp端口用于接收和对端的心跳保活消息。
in_forward可接收json或MessagePack格式的数据,它会自动探测源数据是哪种格式。MessagePack是Fluentd内部使用的数据封装格式,因其效率高于json。
in_forward插件内置于Fluentd,无须安装。
- 示例配置
<source> @type forward port 24224 bind 0.0.0.0 </source>
- 参数说明
- 通用参数适用于in_forward插件
- @type
插件类型,取值为forward
- port(0.14.0(最低要求版本,下同))
监听端口,默认为24224
- bind(0.14.0)
绑定的ip地址,默认为0.0.0.0
- tag(1.5.0)
设置事件的tag,默认使用源事件的tag
- add_tag_prefix(1.5.0)
向源事件tag前添加前缀
<source> @type forward add_tag_prefix prod </source>
如此配置,in_forward产生的事件tag为prod.INCOMING_TAG,比如prod.app.log。
- linger_timeout(0.14.0)
设置socket的close等待时长。
- resolve_hostname(0.14.10)
是否由ip解析主机名,默认false
- deny_keepalive(0.14.5)
是否禁用长连接,默认false
- send_keepalive_packet(1.4.2)
是否启动tcp保活,默认false
- chunk_size_limit(0.14.0)
指定接收数据的最大chunk大小,
超出最大值的chunk会被丢弃。
默认无限制。
- chunk_size_warn_limit(0.14.0):
指定接收数据的预警chunk大小,
超出预警值会发送告警信息。
默认不告警。
- skip_invalid_event(0.14.0)
是否跳过非法事件。
- source_address_key(0.14.11)
指定生成事件中来源ip的字段名,
默认不添加来源ip字段。
- source_hostname_key(0.14.4)
指定生成事件中来源主机名称的字段名,
默认不添加主机名字段。
- <transport>配置项
in_forward默认使用tcp传输数据。
不加密。
<transport>可开启ssl加密传输
<transport tls> cert_path /path/to/fluentd.crt # 这里还需要其他参数,请参见Fluentd官网说明 </transport>
- 其他事项
- Fluentd工作在多worker进程模式时,in_forward插件会共用监听端口。
<system> workers 3 </system> <source> @type forward port 24224 </source>
这里,24224端口接收的事件会被自动路由到3个worker进程中。
- in_forward主要是为了高效传输日志,并不像in_tail一样可以通过<parse>来配置对数据的解析方法。
如果想解析收到的数据,可在事件路由链中添加合适的过滤器。
我们会在后续的文章中了解过滤器的用法。