直接pipe道到Logstash?

我希望像Nginx这样的服务器的日志数据直接通过networking进入Logstash。 Logstash内置了TCP和UDP套接字处理程序,这对于接收数据来说是完美的,但发送它是一个问题。 我知道有托运人,什么不是,但是不必pipe理磁盘上的日志对于这个日志数据不那么关键的项目(比如内部开发服务器)来说是好的。

有没有一个狡猾的方式,我可以创build一个套接字,但有一个Nginx将写入到其他任何日志文件的文件系统上的path? 假设这是可能的,我怎样才能configuration缓冲和重新连接? 我讨厌sockets死了,日志背压开始捆绑服务器进行日志logging。

我还没有尝试过,但在远端的netcat命名pipe道可能会做的伎俩。 如果netcat死了,你应该在一个进程pipe理框架(比如daemontools,runit或systemd)下运行它,以便自动重新生成。

我不会推荐这是一个长期的解决scheme,但它可以很好地debugginglogstash或您的托运人是否按预期工作。

在logstash方面:

input { tcp { port => 9000 } } 

在你的客户方面:

 cat logfile.log | nc logstash-server 9000