我有一个在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端口的ip地址添加到配置文件中,但我仍然得到相同的错误.
如何告诉logstash查看dockerhost上的docker容器中的日志?我在这里错过了一个组件吗?
谢谢.
最佳答案 您需要以root身份运行该过程.普通用户(即非root用户)无法绑定到小于1024的端口而没有一些setuid技巧