【问题标题】:Logstash unable to load, file not readableLogstash 无法加载,文件不可读
【发布时间】:2020-09-21 05:49:28
【问题描述】:

尝试通过answer 在 MongoDB 和 Elasticsearch 之间同步 MongoDbJdbcDriver。我使用docker-compose 进行开发,这就是logstash 的样子:

  logstash:
    image: logstash:7.9.1
    container_name: logstash
    volumes:
      - ./logstash/jars/gson-2.8.6.jar:/usr/share/logstash/logstash-core/lib/jars/gson-2.8.6.jar:ro
      - ./logstash/jars/mongojdbc2.3.jar:/usr/share/logstash/logstash-core/lib/jars/mongojdbc2.3.jar:ro
      - ./logstash/jars/mongo-java-driver-3.12.6.jar:/usr/share/logstash/logstash-core/lib/jars/mongo-java-driver-3.12.6.jar:ro
      - ./logstash/config/pipelines.yml:/usr/share/logstash/config/pipelines.yml
      - ./logstash/pipeline/mongo-to-elasticsearch.conf:/usr/share/logstash/pipeline/mongo-to-elasticsearch.conf
    command: logstash
    depends_on:
      - elasticsearch

我运行docker-compose up,它给出了这个错误:

...
logstash         |   Error: unable to load mongojdbc2.3.jar from :jdbc_driver_library, file not readable (please check user and group permissions for the path)
logstash         |   Exception: LogStash::PluginLoadingError
...

我已经在我的机器上检查了mongojdbc2.3.jar 的文件权限,为我和 docker 组提供了读写权限。但是,当我在logstash 容器内查看时,所有者不是root,而是logstash

// ls -l /usr/share/logstash/logstash-core/lib/jars

...
-rw-r--r-- 1 logstash logstash  2315317 Jul 24 15:13 mongo-java-driver-3.12.6.jar
-rw-r--r-- 1 logstash logstash    83500 Sep  8 01:30 mongojdbc2.3.jar
-rw-rw-r-- 1 logstash root       107210 Sep  1 23:32 org.eclipse.core.commands-3.6.0.jar
...

我尝试更改容器内的所有权,但由于我没有sudo 权限,所以无法更改。

请帮忙,我怎样才能在 MongoDB 和 Elasticsearch 之间成功同步?


堆栈:MongoDB (v4.4.1)、Logstash (v7.9.1)、Docker (v19.03.12)、Docker-compose (v1.27.3)

【问题讨论】:

    标签: mongodb docker docker-compose logstash


    【解决方案1】:

    尝试创建带有 jar 的新图像

      logstash:
        build: ./logstash/
        container_name: logstash
        volumes:
          - ./logstash/config/pipelines.yml:/usr/share/logstash/config/pipelines.yml
          - ./logstash/pipeline/mongo-to-elasticsearch.conf:/usr/share/logstash/pipeline/mongo-to-elasticsearch.conf
        command: logstash
        depends_on:
          - elasticsearch
    
    

    ./logstash/Dockerfile

    
    FROM docker.elastic.co/logstash/logstash:7.9.1
    
    COPY ./jars/ /usr/share/logstash/logstash-core/lib/jars
    
    
    

    【讨论】:

      猜你喜欢
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 2014-07-20
      相关资源
      最近更新 更多