代理之后的Logstash不起作用

我试图在代理之后启动几个Logstash实例。

我正在使用nginx,但HAProxy也是一个选项。

worker_processes 4; events { worker_connections 1024; } http { upstream streams { server logstash_ip:5044; } server { listen 80; location / { rewrite ^/(.*) /$1 break; proxy_ignore_client_abort on; proxy_pass http://streams; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } } } 

logstash_ip是一个别名,它是可以parsing的。

问题是,当我将一些日志直接推送到logstash时 – 一切正常。

当我通过Nginx推送日志时,它失败了:

  1. 使用端口浏览Nginx会导致502网关错误
  2. Logstash日志

    发布事件(重试)时发生错误:lumberjack协议错误

发布事件(重试)时发生错误:lumberjack协议错误

这是正确的,因为lumberjack协议不是基于http ,这是Nginx在你的configuration中所期待的。 我build议尝试使用 nginx 的stream { }块 ,因为这是为TCP协议devise的。

 stream { server { listen 80 } upstream stream_backend { server logstash_ip:5044 } }