我有一个主syslog服务器从几个源接收syslog,我想将这些日志发送到Graylog集群.为了帮助集群保持运行(在一些缓慢的虚拟机上),我需要能够将消息负载平衡到Graylog,因为有时它们来自端点的大量块(一些每10秒发送一次突发5k日志).
我正在尝试使用nginx作为系统日志消息的负载均衡器,但我似乎无法让它工作,而且似乎是因为nginx正在寻找Graylog服务器的响应.使用UDP,它不会得到响应.至少这是我认为正在发生的事情.
我得到的错误是这样的:
2016/12/01 11:27:59 [error] 2816#2816: *210325 no live upstreams while connecting
to upstream, udp client: 10.0.1.1, server: 0.0.0.0:11016,
upstream: "juniper_close_stream_backend", bytes from/to client:932/0,
bytes from/to upstream:0/0
作为我在nginx.conf中的这个规则的一个例子,它看起来像:
stream {
server {
listen 11016 udp;
proxy_pass juniper_close_stream_backend;
}
upstream juniper_close_stream_backend {
server 10.0.1.2:11016;
server 10.0.1.3:11016;
server 10.0.1.4:11016;
}
}
在这个例子中,我的syslog框是10.0.1.1,我的下游Graylog框是10.0.1.[2-4].我看到所有这些错误消息.
有关正在发生的事情的任何线索?当我在Graylog盒子上运行tcpdump时,我看到来自负载均衡器的流量,这意味着它正在工作.但我认为nginx期待一个回应,并给我一个错误.