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

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>
  1. 其他事项
  • Fluentd工作在多worker进程模式时,in_forward插件会共用监听端口。
<system>
  workers 3
</system>

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

这里,24224端口接收的事件会被自动路由到3个worker进程中。

  • in_forward主要是为了高效传输日志,并不像in_tail一样可以通过<parse>来配置对数据的解析方法。
    如果想解析收到的数据,可在事件路由链中添加合适的过滤器。
posted @ 2020-11-03 17:39  哈喽哈喽111111  阅读(563)  评论(0编辑  收藏  举报