我正在尝试使用以下命令运行redst 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 { } }'
使用以下命令输入容器:
docker exec -ti bash
并执行:
logstash -f /conf/logstash.conf
新的logstash进程现在正在容器中运行,我可以管理在配置文件中设置的日志文件。
我知道为什么会有这种奇怪的行为?
谢谢大家。
答案 0 :(得分:1)
问题解决了。它是主机中的目录权限。感谢帮助@NOTtardy
答案 1 :(得分:0)
尝试围绕 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"}