来自docker容器的Logstash syslog输入

时间:2014-12-12 21:35:23

标签: java log4j docker logstash syslog

我在docker主机上的docker容器中运行了一个java应用程序。该应用程序使用log4j进行日志记录并记录到syslog。我希望能够将我的syslog日志发送到logstash。

我将rsyslog配置文件中的配置更改为:

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

我在我的logstash配置文件中有syslog:

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

}

在logstash日志中,我收到错误,说syslog tcp listener死了,

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

我认为我应该指定主机在logstash配置中的位置,并将dockerhost + port的ip地址添加到配置文件中,但我仍然得到相同的错误。

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

感谢。

1 个答案:

答案 0 :(得分:2)

您需要以root身份运行该流程。普通用户(即非root用户)无法绑定到小于1024的端口而没有一些setuid技巧