logstash官方提供的插件安装方法是:
bin/plugin install logstash-output-webhdfs
按照此方法,不出意料肯定会出现以下错误:
[ec2-user@ip-xxx-xxx-xxx-xxx logstash-2.3.0]$ bin/plugin install --no-verify logstash-output-webhdfs
The use of bin/plugin is deprecated and will be removed in a feature release. Please use bin/logstash-plugin.
Installing logstash-output-webhdfs
Error Bundler::InstallError, retrying 1/10
An error occurred while installing snappy (0.0.12), and Bundler cannot continue.
Make sure that `gem install snappy -v '0.0.12'` succeeds before bundling.
WARNING: SSLSocket#session= is not supported
WARNING: SSLSocket#session= is not supported
WARNING: SSLSocket#session= is not supported
原因是:GFW墙掉了logstash的默认gem source(类似于CentOS的yum source);
[ec2-user@ip-xxx-xxx-xxx-xxx logstash-2.3.0]$ cat Gemfile | grep source
source "https://rubygems.org"
需要将gem source修改为国内的源,
[ec2-user@ip-xxx-xxx-xxx-xxx logstash-2.3.0]$ vim Gemfile
# This is a Logstash generated Gemfile.
# If you modify this file manually all comments and formatting will be lost.
#source "https://rubygems.org"
source "https://ruby.taobao.org/"
......
执行
bin/plugin install logstash-output-webhdfs
一般都能安装成。
有的插件在淘宝的gem库中找不到,这时候可以考虑本地安装的办法。
先去https://github.com/logstash-plugins下载对应的插件,然后解压,在logstash的Gemfile中添加一行(以logstash-output-webhdfs为例):
[ec2-user@ip-xxx-xxx-xxx-xxx logstash-2.3.0]$ vim Gemfile
......
gem "logstash-output-webhdfs", :path => "/home/ec2-user/logstash-output-webhdfs"
执行
bin/logstash-plugin install --no-verify
即可安装成功