NginX load balancer

(Werner van der Merwe) #1

Hi - I am having quite a bit of difficulty using a HAProxy LB to balance incoming GELF tcp messages.
More and more I see people recommending NginX as preferred balancer. Could someone please give me some config examples to balance both UDP and TCP messages?

I understand for the web interface, I can refer to

But I am having difficulty in finding info on load balancing the actual GELF messages?

(Artem Davydov) #2

hi , for udp :

upstream cluster {
#       server;

server {
        listen 12202 udp;
        proxy_timeout 10s;
        proxy_pass cluster;

second ip is under comment for automaticaly switch failover . Zabbix monitor status of graylog cluster , if it is DEAD perfoms some script to copy new config to nginx and reload it, so all messages will go to another node. Advices on this forum were not to do roundrobin. Also you can decrease proxy_timeout , but dont forget it instead of nginx will create and dont close a lot of connections.

(Werner van der Merwe) #3

Thanks David - That is very interesting…

Any idea why round robin was a bad idea?
We have 3 Graylog nodes, so spreading the CPU load made sense in my head. I’d prefer to not scale vertically due to the cost increases for virtualization, for some reason two servers with 4 cores each is cheaper than one machine with 8 cores!
Plus I prefer to be able to spin up nodes using vRA and puppet during busy periods… Please don’t shatter my dreams! :slight_smile:

Just wondering if the garbage I receive using HAProxy is maybe as a result of the same recommendation, but I can’t think of any reason why that would be…?

(Werner van der Merwe) #4

I read your post here: How to balance udp inputs (GELF)
So I presume the recommendation to not use Round robin is confined to UDP?

(Artem Davydov) #5

haproxy cannot balance udp , this was the reason for us to choose nginx, [quote=“wernervdmerwe, post:4, topic:957”]
So I presume the recommendation to not use Round robin is confined to UDP?
yep, you are right.

in your case (Gelf TCP) you may choose haproxy.