[英]How to pass additional jars to LogStash classpath
我已經“縮小”了 LogStash 的安裝范圍,它已從供應商文件夾中刪除了 ElasticSearch jar。 但是,這些 jars 在機器上可用,但在不同的文件夾中。 我在 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 中,這不再適用於我。 有沒有其他方法可以做到?
Logstash 1.4 中的 elasticsearch 輸出插件在/opt/logstash/vendor/jar/elasticsearch*/lib
查找 elasticsearch 庫(請參閱environment.rb )
所以你可以在那里鏈接你現有的 elasticsearch 庫(前提是它們是兼容的版本):
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。
將額外的 jars 復制到/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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.