我正在尝试在代理后面启动一些 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
是一个别名,它是可解析的。
问题是,当我将一些日志直接推送到 logstash 时,一切正常。
当我通过 Nginx 推送日志时失败:
- 使用端口导航 Nginx 会出现 502 网关错误
Logstash 日志
发布事件时出错(重试):lumberjack 协议错误
答案1
发布事件时出错(重试):lumberjack 协议错误
这是正确的,因为lumberjack
协议不是基于的http
,而这正是 Nginx 在您的配置中所期望的。我建议尝试一个stream { }
区块而是使用 nginx,因为它是为 TCP 协议设计的。
stream {
server {
listen 80
}
upstream stream_backend {
server logstash_ip:5044
}
}