14. Fluentd输出插件:out_forward用法详解

2022-11-01,,,,

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.参数说明

Fluentd通用参数适用于out_forward
@type插件类型,取值为forward
<server>(至少包含一个,0.14.5(最低要求版本,下同))
host:server的ip地址
name:server的name,用在日志和ssl传输中
port:端口,默认24224,tcp和udp使用相同的端口
standby:
是否为备用节点。备用节点会在活动节点故障时被提升为
活动节点,并开始接收数据。
weight:
负载均衡权重值,默认为60.
若一个节点的权重值为20,另一个节点的权重值为30,
那么out_forward会以2:3的比例向它们转发数据。
require_ack_response(0.14.0)是否开启接收应答,默认为false。若开启,out_forward会采用“至少一次”的传输模式,发送数据后会等待接收端的应答。
ack_response_timeout(0.14.0)设定应答响应超时时长。
send_timeout(0.14.0)设置发送超时时长
connect_timeout(1.6.0)设置socket连接超时时长
recover_wait(0.14.0)设置接收服务器故障恢复等待时间,默认10s。
heartbeat_type(0.14.12)设置心跳协议。取值可为transport、tcp、udp、none
heartbeat_interval(0.14.0)心跳包发送间隔,默认1s
keepalive(1.5.0)是否启用长连接,默认false
<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>

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

3.2 节点不可用报错

有时候会在Fluentd运行日志中发现“no nodes are available”这样的报错,这可能是因为网络不通造成的。

通信双方需要相互开放tcp和udp的24224端口。可通过以下命令进行检查:

$ telnet host 24224
$ nmap -p 24224 -sU host

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

《14. Fluentd输出插件:out_forward用法详解.doc》

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