和上一篇in_forward相对应的插件是out_forward。 out_forward是一个带缓存的输出插件,用于向其他节点转发日志事件,并支持转发节点之间的负载均衡和自动故障切换。 out_forward支持至多一次和至少一次传输模式,默认为至多一次。
out_forward内置于Fluentd,无需安装。 <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作为故障备份。 - <server>(至少包含一个,0.14.5(最低要求版本,下同))name:server的name,用在日志和ssl传输中port:端口,默认24224,tcp和udp使用相同的端口 备用节点会在活动节点故障时被提升为活动节点,并开始接收数据。 若一个节点的权重值为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连接超时时长
- 设置心跳协议,取值可为transport、tcp、udp、none
- heartbeat_interval(0.14.0)
- Fluentd自v0.14.7版本开始支持对传输数据的压缩,可通过如下配置开启压缩功能。
<match debug.**> @type forward compress gzip <server> host 192.168.1.2 port 24224 </server> </match> 该配置只需在发送端开启,接收端可自动解压数据。 - 有时候会在Fluentd运行日志中发现“no nodes are available”这样的报错,这可能是因为网络不通造成的。通信双方需要相互开放tcp和udp的24224端口。
$ telnet host 24224 $ nmap -p 24224 -sU host
|