我发现使用Flume源syslogudp会导致大约25%的数据丢失。
这是我的配置
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = syslogudp
a1.sources.r1.bind = 172.24.1.78
a1.sources.r1.port = 65535
a1.sinks.k1.type = file_roll
a1.sinks.k1.sink.directory = / var / log / tmp
a1.sinks.k1.sink.rollInterval = 0
a1.sinks.k1.sink.batchSize = 20000
a1.channels.c1.type = memory
a1.channels.c1.capacity = 20000
a1.channels.c1.transactionCapacity = 20000
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
我已经对RHEL内核参数进行了更改以解决问题但没有影响。
sysctl -w net.core.rmem_max = 33554432
sysctl -w net.ipv4.udp_mem ='262144 327680 393216'
sysctl -w net.core.netdev_max_backlog = 2000
有什么建议吗?
答案 0 :(得分:0)
问题可能在于UDP本身? Wikipedia says:
它(UDP)没有握手对话,因此将底层网络协议的任何不可靠性暴露给用户的程序。由于这通常是IP不可靠的介质,因此无法保证交付,订购或重复保护。