Fluentd输出插件:out_forward用法详解
和上一篇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作为故障备份。
参数说明 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) 设置所有接收节点故障时的备份路径 常见问题 如何启用数据压缩功能 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
赞 (0)