问题 运行 带有 -f 标志的 logstash docker
problems running logstash with -f flag in docker
我正在尝试使用以下命令 运行 red hat 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 容器不是 运行ning。
如果我执行以下命令:
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 进程现在 运行正在容器中,我可以管理在配置文件中设置的日志文件。
知道我为什么会有这种奇怪的行为吗?
谢谢大家。
尝试在 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"}
问题已解决。这是主机 machine.Thanks 中的一个目录权限,用于帮助@NOTtardy
我正在尝试使用以下命令 运行 red hat 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 容器不是 运行ning。
如果我执行以下命令:
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 进程现在 运行正在容器中,我可以管理在配置文件中设置的日志文件。
知道我为什么会有这种奇怪的行为吗?
谢谢大家。
尝试在 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"}
问题已解决。这是主机 machine.Thanks 中的一个目录权限,用于帮助@NOTtardy