从Docker容器inputLogstash系统日志

我有一个在泊坞窗主机上的docker容器中运行的Java应用程序。 应用程序使用log4j进行日志logging并logging到系统日志。 我希望能够将我的系统日志日志发送到logstash。

我将rsyslogconfiguration文件中的configuration更改为:

*.* @@<logstash host ip>:514 

我在我的logstashconfiguration文件为syslog:

 input { syslog { type => syslog port => 514 } 

}

并在logstash日志中有错误,说syslog tcp监听器死亡和

 exception=>#<Errno::EACCES: Permission denied - bind(2) 

我想我应该指定主机在logstashconfiguration的位置,并将我的dockerhost +端口的IP地址添加到configuration文件,但我仍然得到相同的错误。

我如何告诉logstash查看dockerhost上的docker容器的日志? 我在这里错过了一个组件吗?

谢谢。

您需要以root身份运行进程。 正常的用户(即非root)不能绑定到less于1024的端口,没有一些setuid欺骗