我在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容器中的日志?我在这里错过了一个组件吗?
感谢。
答案 0 :(得分:2)
您需要以root身份运行该流程。普通用户(即非root用户)无法绑定到小于1024的端口而没有一些setuid技巧