Fluentd输出插件:out_forward用法详解

和上一篇in_forward相对应的插件是out_forward。

out_forward是一个带缓存的输出插件,用于向其他节点转发日志事件,并支持转发节点之间的负载均衡和自动故障切换。

out_forward支持至多一次和至少一次传输模式,默认为至多一次。

out_forward内置于Fluentd,无需安装。

  1. 示例配置
    <match pattern> @type forward send_timeout 60s recover_wait 10s hard_timeout 60s
    <server> name myserver1 host 192.168.1.3 port 24224 weight 60 </server> <server> name myserver2 host 192.168.1.4 port 24224 weight 60 </server> ...
    <secondary> @type file path /var/log/fluent/forward-failed </secondary></match>

    这个例子使用out_forward向myserver1和myserver2转发日志,

    并使用本地file作为故障备份。

  2. 参数说明
    1. Fluentd通用参数适用于out_forward
    2. @type
      插件类型,取值为forward
    3. <server>(至少包含一个,0.14.5(最低要求版本,下同))
      host:server的ip地址
      name:server的name,用在日志和ssl传输中
      port:端口,默认24224,tcp和udp使用相同的端口
      standby:
      是否为备用节点。备用节点会在活动节点故障时被提升为
      活动节点,并开始接收数据。
      weight:
      负载均衡权重值,默认为60.
      若一个节点的权重值为20,另一个节点的权重值为30,
      那么out_forward会以2:3的比例向它们转发数据。
    4. require_ack_response(0.14.0)
      是否开启接收应答,默认为false。
      若开启,out_forward会采用“至少一次”的传输模式,
      发送数据后会等待接收端的应答。
    5. ack_response_timeout(0.14.0)
      设定应答响应超时时长。
    6. send_timeout(0.14.0)
      设置发送超时时长
    7. connect_timeout(1.6.0)
      设置socket连接超时时长
    8. recover_wait(0.14.0)
      设置接收服务器故障恢复等待时间,
      默认10s。
    9. heartbeat_type(0.14.12)
      设置心跳协议。
      取值可为transport、tcp、udp、none
    10. heartbeat_interval(0.14.0)
      心跳包发送间隔,默认1s
    11. keepalive(1.5.0)
      是否启用长连接,默认false
    12. <secondary>(0.14.0)
      设置所有接收节点故障时的备份路径
  3. 常见问题
    1. 如何启用数据压缩功能
      Fluentd自v0.14.7版本开始支持对传输数据的压缩,
      可通过如下配置开启压缩功能。
      <match debug.**> @type forward compress gzip <server> host 192.168.1.2 port 24224 </server></match>

      该配置只需在发送端开启,接收端可自动解压数据。

    2. 节点不可用报错
      有时候会在Fluentd运行日志中发现“no nodes are available”
      这样的报错,这可能是因为网络不通造成的。
      通信双方需要相互开放tcp和udp的24224端口。
      可通过以下命令进行检查:
      $ telnet host 24224$ nmap -p 24224 -sU host
(0)

相关推荐