13. Fluentd输出插件:in_forward用法详解

2022-11-05,,,,

in_forward插件通常用于从其他节点接收日志事件,这些节点包括其他Fluentd实例、fluent-cat命令行或者Fluentd客户端程序。这是目前效率最高的日志事件接收方法。

in_forward插件会在本地打开一个tcp监听socket,用于接收日志事件。同时,它也会开启一个udp端口用于接收和对端的心跳保活消息。

in_forward可接收json或MessagePack格式的数据,它会自动探测源数据是哪种格式。MessagePack是Fluentd内部使用的数据封装格式,因其效率高于json。

in_forward插件内置于Fluentd,无须安装。

1.示例配置

<source>
@type forward
port 24224
bind 0.0.0.0
</source>

2.参数说明

通用参数适用于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传输数据。不加密。可开启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>来配置对数据的解析方法。

如果想解析收到的数据,可在事件路由链中添加合适的过滤器。

13. Fluentd输出插件:in_forward用法详解的相关教程结束。

《13. Fluentd输出插件:in_forward用法详解.doc》

下载本文的Word格式文档,以方便收藏与打印。