如何将其他jar传递给LogStash类路径

时间:2014-05-07 14:45:39

标签: elasticsearch logstash

我已“缩小”已从供应商文件夹中删除ElasticSearch jars的LogStash安装。但是,这些罐子可以在机器上使用,但在不同的文件夹中。我在LS 1.0.14(http://logstash.net/docs/1.0.14/installation)的文档中找到了我可以运行的文件

CLASSPATH=$(ls /opt/elasticsearch/lib/*.jar | tr '\n' ':') /opt/logstash/bin/logstash -f logstash.conf

从其他地方加载ElasticSearch jar。但是,在LogStash 1.4.0中,这不再适用于我。还有其他办法吗?

2 个答案:

答案 0 :(得分:0)

Logstash 1.4中的elasticsearch输出插件在/opt/logstash/vendor/jar/elasticsearch*/lib中查找弹性搜索库(参见environment.rb

因此,您可以将现有的弹性搜索库链接到那里(前提是它们是兼容的版本):

cd /opt/logstash/vendor/jar
# make sure no old elastic libraries are here!
ls elasticsearch*
# rm -fr elasticsearch*
mkdir elasticsearch-local
ln -s /opt/elasticsearch/lib elasticsearch-local/lib

我没有对此进行测试,因为我使用的方法是使用Makefile中更新的所需弹性搜索库版本完全重建logstash。

答案 1 :(得分:0)

将其他 jar 复制到 /usr/share/logstash/logstash-core/lib/jars

可以在构建 docker 镜像时完成

FROM docker.elastic.co/logstash/logstash:7.11.0

COPY ./lib/ /usr/share/logstash/logstash-core/lib/jars