Docker Logstash,无法获取管道配置

时间:2018-03-13 10:43:39

标签: windows docker logstash

在我的Windows机器上运行这个docker compose文件:

搬运工-compose.yml:

version: '3.0'
services:
  logstash:
    image: logstash:latest
    command: -f ./etc/logstash/config/ --log.level debug
    volumes:
      - ./config/:/etc/logstash/config/
      - ./pipeline/:/etc/logstash/pipeline/

logstash.yml:

http.host: "0.0.0.0"
path.config: /etc/logstash/pipeline/logstash.conf
path.settings: /etc/logstash/config/logstash.yml

这给出了错误:

Failed to fetch pipeline configuration {:message=>"No config files found: ./etc/logstash/config/. Can you make sure this path is a logstash config file?"}

可能是什么问题?这是我的Win10机器上的目录结构:

/docker
  /config
    /logstash.yml
  /pipeline
    /logstash.conf

- 编辑

下一个配置文件解决了问题:

logstash: image: logstash:latest command: -f ./etc/logstash/pipeline/ volumes: - ./config/:/etc/logstash/config/ - ./pipeline/:/etc/logstash/pipeline/

2 个答案:

答案 0 :(得分:0)

您正在安装到错误的图像目录。 Logstas docker图像目录布局如下:

  • 的/ usr /共享/ logstash /配置

  • 的/ usr /共享/ logstash /管道

和bin,数据等一样。

请参阅更多信息:Logstash Docker Directory Layout

答案 1 :(得分:0)

您根据./config文件的部分定义了将主机的/etc/logstash/config/文件夹挂载到容器内的docker-compose.yaml

volumes:
  - ./config/:/etc/logstash/config/

主机上的./config文件夹路径是docker-compose.yaml文件位置的相对路径。

docker-compose.yaml位于./docker/config文件夹中,因此其中没有.config个文件夹。

要实现您想要的目标,只需将docker-compose.yaml文件移至一级:

mv docker-compose.yaml ../

文件应位于./docker文件夹中:

/docker
  docker-compose.yaml
  /config
    /logstash.yml
  /pipeline
    /logstash.conf