在docker中运行logstash与-f标志的问题
我试图用下面的命令在红帽子7中运行logstash容器:
docker run -v /home/logstash/config:/conf -v /home/docker/logs:/logs logstash logstash -f /conf/logstash.conf --verbose
收到的回应是:
{:timestamp=>"2016-05-05T10:21:20.765000+0000", :message=>"translation missing: en.logstash.runner.configuration.file-not-found", :level=>:error} {:timestamp=>"2016-05-05T10:21:20.770000+0000", :message=>"starting agent", :level=>:info}
并且logstash容器未运行。
如果我执行下面的命令:
docker run -dit -v /home/logstash/config:/conf -v /home/docker/logs:/logs --name=logstash2 logstash logstash -e 'input { stdin { } } output { stdout { } }'
使用以下命令在容器中input:
docker exec -ti bash
并执行:
logstash -f /conf/logstash.conf
一个新的logstash进程现在正在容器中运行,我可以pipe理configuration文件中设置的日志文件。
任何想法为什么我有这种奇怪的行为?
谢谢,所有。
问题解决了。 这是主机中的目录权限。感谢帮助@NOTtardy
尝试在logstash -f /conf/logstash.conf --verbose
附近logstash -f /conf/logstash.conf --verbose
双引号
编辑:刚试过你自己命令,它工作正常。 可能是你的logstash.conf是错误的原因。
我使用了一个非常简单的logstash.conf
input { udp { port => 5000 type => syslog } } output { stdout { codec => rubydebug } }
并得到了以下输出
{:timestamp=>"2016-05-05T18:24:26.294000+0000", :message=>"starting agent", :level=>:info} {:timestamp=>"2016-05-05T18:24:26.332000+0000", :message=>"starting pipeline", :id=>"main", :level=>:info} {:timestamp=>"2016-05-05T18:24:26.370000+0000", :message=>"Starting UDP listener", :address=>"0.0.0.0:5000", :level=>:info} {:timestamp=>"2016-05-05T18:24:26.435000+0000", :message=>"Starting pipeline", :id=>"main", :pipeline_workers=>1, :batch_size=>125, :batch_delay=>5, :max_inflight=>125, :level=>:info} {:timestamp=>"2016-05-05T18:24:26.441000+0000", :message=>"Pipeline main started"}