【发布时间】:2018-08-10 10:12:09
【问题描述】:
我有两个使用 Debian 8 的负载均衡器和三个使用 Debian 9 的 Graylog 服务器。
我网络中的每台服务器都通过 rsyslog 将日志发送到在 LB 上配置的虚拟服务器。连接是 UDP。
问题在于数据包不平衡。 (所有连接都在列表中的第一个真实服务器上)
如果发生故障转移,数据包会正确发送到其他真实服务器。
我发现重新平衡连接的唯一方法是从 LB 中删除所有真实服务器并重新启动 keepalived 服务。
我已经绑定了:
ipvsadm --set 0 0 1
Timeout (tcp tcpfin udp): 900 120 1
我已经设置了这两个变量:
echo 1 > /proc/sys/net/ipv4/vs/expire_nodest_conn
echo 1 > /proc/sys/net/ipv4/vs/expire_quiescent_template
IPVS 配置如下:
vrrp_instance logserver {
state MASTER
interface eth0
virtual_router_id 195
priority 200
advert_int 1
authentication {
auth_type keepalived
auth_pass xxxxxx
}
virtual_ipaddress {
10.20.20.195/22
}
}
virtual_server 10.20.20.195 0 {
delay_loop 60
protocol UDP
lb_algo wrr
lb_kind DR
persistence_timeout 30
real_server 10.20.20.196 0 {
weight 100
MISC_CHECK {
connect_timeout 3
misc_path "/etc/keepalived/checkgraylog 10.20.20.196"
}
}
real_server 10.20.20.197 0 {
weight 100
MISC_CHECK {
connect_timeout 3
misc_path "/etc/keepalived/checkgraylog 10.20.20.197"
}
}
real_server 10.20.20.198 0 {
weight 100
MISC_CHECK {
connect_timeout 3
misc_path "/etc/keepalived/checkgraylog 10.20.20.198"
} } }
有没有办法有效地平衡 UDP 连接和直接路由? 谢谢
【问题讨论】:
标签: udp load-balancing rsyslog graylog2