分享

Fluentd输出插件:out_forward用法详解

 RealPython 2021-03-14

和上一篇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_timeout1.6.0):设置socket连接超时时长
    8. recover_wait0.14.0
      设置接收服务器故障恢复等待时间,默认10s
    9. heartbeat_type0.14.12
      设置心跳协议,取值可为transport、tcp、udp、none
    10. heartbeat_interval0.14.0
      心跳包发送间隔,默认1s
    11. keepalive1.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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多