在使用logstash-plugin安装logstash-output-kinesis时报错:

Bundler::GemNotFound: Could not find gem 'logstash-output-kinesis (>= 0) java' in any of the gem sources listed in your Gemfile or installed on this machine.

找了很久发现原因是我在安装logstash-output-kinesis时等待时间太久中断了安装过程,但是Gemfile文件仍然记录了gem "logstash-output-kinesis"安装信息,导致使用 logstash指令会因为找不到插件而报错。

解决方法如下:

  1. 删除Gemfile文件的未安装插件信息(Gemfile位于logstash安装目录下)

    vim /etc/logstash/Gemfile

    找到gem "logstash-output-kinesis"后删除改行并保存文件,此时所有logstash指令便可以正常执行啦

  2. 更改Gemfile安装源

    vim /etc/logstash/Gemfile

    source "https://rubygems.org" 改为source "https://gems.ruby-china.com/"并保存

  3. 继续安装插件(此过程可能会需要很久,所以必须耐心等待,中途中断的话便会再次出现GemNotFound,重复上面的操作即可)

    $ /etc/logstash/bin/logstash-plugin install logstash-output-kinesis
  4. 安装成功后即可

所以根本问题在于logstash部分插件安装时间太长,导致用户手动终止掉,切换个快一点的Gem源即可。

happy coding!