Logstash 插件已安装但未找到

问题描述 投票:0回答:2

我正在使用 Logstash 2.3.2,对于我的一个项目,我必须在 RAM 中保存一些数据。我在 stackoverflow 上问了一个问题(Logstash:是否可以将文档保存在内存中?)以获得一个过滤器,最合适的过滤器是 memcached(即使这个是非官方的)。

我下载了插件,生成了 gem 文件(不为空),并且成功安装了插件。

enter image description here

但是,当我在配置文件中使用此过滤器运行logsatsh时,出现以下错误:

:reason=>"Couldn't find any filter plugin named 'memcached'. Are you sure this is correct? Trying to load the memcached filter plugin resulted in this error: no such file to load -- logstash/filters/memcached", :level=>:error}

此外,当我使用命令 bin/logstah-plugin list 时,过滤器 memcached 不存在。

我不明白为什么会这样。我遵循了这个讨论(https://discuss.elastic.co/t/logstash-plugin-installed-but-not-found/24369)但没有成功!

那么,你知道我该如何解决这个问题吗?

感谢您的关注和帮助。

rubygems logstash
2个回答
4
投票

这是要遵循的过程:

A.在

logstash-filter-cache-memcached.gemspec
中修改这一行

s.add_runtime_dependency 'logstash-core', '>= 1.4.0', '< 2.0.0'

s.add_runtime_dependency 'logstash-core', '>= 1.4.0', '< 3.0.0'

B.运行以下命令来构建您的插件

> gem build logstash-filter-cache-memcached.gemspec  

C.在您的logstash文件夹中,安装插件:

> bin/logstash-plugin install /path/to/logstash-filter-cache-memcached/logstash-filter-cache-memcached-0.1.1.gem 

这应该会产生这样的结果:

Validating /path/to/logstash-filter-cache-memcached/logstash-filter-cache-memcached-0.1.1.gem
Installing logstash-filter-cache-memcached
Installation successful

D。验证您的插件是否正确安装

> bin/logstash-plugin list | grep cache
logstash-filter-cache-memcached

E。运行快速测试看看是否有效:

> bin/logstash -t -e 'input{stdin{}} filter {memcached{namespace => "test" host => "localhost:11211" key => "test" field => "message" ttl=>60}} output {stdout{}}'

你应该看到这个:

memcached plugin doesn't have a version. This plugin isn't well
 supported by the community and likely has no maintainer. {:level=>:warn}
Configuration OK

0
投票

这是给一年后的我的。 我在尝试自定义logstash-input-redis插件时遇到了这个问题,我添加了

require 'redis-cluster-client'
,完成了代码,
bundle execute rspec
gem build
logstash-plugin install ...
成功,但logstash无法启动。 3天后,我用
--log.level debug
启用了调试日志,发现它无法加载“redis-cluster-client”,而邪恶的是,这个导致崩溃的问题记录在调试级别。

我也尝试过使用 Logstash 的文档来实现外部依赖,但它似乎并没有做任何更好的事情。

最后,我通过将下载的二进制文件中的 JRUBY_HOME 环境变量更改为

JRUBY_HOME=$LOGSTASH_HOME/vendor/jruby
来让它工作,然后我清理 gem,删除然后重新安装插件,它终于可以工作了。

如果这对你有帮助,请给我一个star https://github.com/tai-tran-tan/logstash-input-redis_cluster 祝朋友好运!

© www.soinside.com 2019 - 2024. All rights reserved.