天天看點

linux logstash中配置檔案,Docker中的Logstash-通過卷挂載時找不到配置檔案

編輯: 這似乎是boot2docker的事情…在運作docker的ubuntu vm中工作正常。

我正在嘗試在Docker容器中啟動logstash,但是當我将配置檔案作為卷挂載時,似乎找不到它。有趣的是,如果我使用bash啟動容器,則可以在其中看到配置檔案并運作與docker相同的指令,它可以工作。

Docker檔案

FROM ubuntu:14.04

MAINTAINER cvallance

RUN apt-get update

RUN apt-get -yqq install openjdk-7-jre

RUN apt-get -yqq install curl

RUN mkdir /opt/logstash \

&& cd /opt/logstash \

&& curl -O https://download.elastic.co/logstash/logstash/logstash-1.4.2.tar.gz \

&& tar zxvf logstash-1.4.2.tar.gz

CMD ["/opt/logstash/logstash-1.4.2/bin/logstash", "agent", "--verbose", "-f", "/etc/logstash/sample.conf"]

配置檔案位于$(pwd)/config/sample.conf

input {

stdin { }

}

output {

stdout {

codec => rubydebug

}

}

Docker建構指令:

docker build -t cvallance/logstash .

Docker運作指令:

docker run -ti -v $(pwd)/config:/etc/logstash cvallance/logstash

錯誤:

Error: No config files found: /etc/logstash/sample.conf

Can you make sure this path is a logstash config file?

但是 如果我像這樣在bash會話中在容器内運作相同的指令…

docker run -ti -v $(pwd)/config:/etc/logstash cvallance/logstash bash

...

[email protected]:/# /opt/logstash/logstash-1.4.2/bin/logstash agent --verbose -f /etc/logstash/sample.conf

一切正常。即輸入和輸出

testing

{

"message" => "testing",

"@version" => "1",

"@timestamp" => "2015-04-10T00:06:33.878Z",

"host" => "d3fd885903dd"

}

繼續閱讀