UDP-Weiterleitung mit nginx

Ich habe ein Haupt-syslog-server, der den Empfang von syslog-aus mehreren Quellen, und ich möchten, senden Sie diese Protokolle an einen Graylog-cluster. Zu helfen, die cluster-halten (auf einige langsame VMs), ich muss in der Lage sein, einen Lastenausgleich der Nachrichten zu Graylog, wie manchmal kommen Sie in riesigen Brocken von den Endpunkten (einige senden 5k logs in bursts alle 10 Sekunden).

Ich versuche, die Verwendung von nginx als load balancer für die syslog-Meldungen, aber ich kann nicht scheinen, um es zu arbeiten, und es zu sein scheint, denn nginx ist auf der Suche nach Antworten aus der Graylog-Server. Mit UDP geht es nicht um eine Antwort zu bekommen. Das ist zumindest das, was ich denke, geschieht.

Die Fehler, die ich bekommen hab ist dieses:

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

Als ein Beispiel für diese Regel in meiner nginx.conf sieht es so aus:

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;
    }
}

In diesem Beispiel, meine syslog-box ist 10.0.1.1, und mein downstream Graylog-Boxen sind 10.0.1.[2-4]. Ich sehe diese Fehlermeldung für alle von Ihnen.

Keine Ahnung, was passiert ist? Wenn ich mit tcpdump auf der Graylog-Boxen, ich sehe den Datenverkehr, der von der load-balancer, das heißt, es funktioniert. Aber ich denke, nginx ist eine Antwort zu erwarten und gibt mir eine Fehlermeldung.

  • Vielleicht habe ich dachte, dies ein wenig. Ich "proxy_responses 0;" in der "server" - Teil des Streams, und der Fehler geht Weg. Diese im Grunde sagt nginx nicht mit einer Antwort rechnen, was in Ordnung ist. Ich würde gerne eine health_check läuft zwar, aber es scheint, als ob diese option kann nur in der kommerziellen version.
InformationsquelleAutor jasonmclose | 2016-12-01
Schreibe einen Kommentar