本章节开始介绍logstash的插件及功能,插件对于logstash来说非常重要,按类别分为:input、filter、codec、output四种类型。
logstash有非常丰富的插件,通过安装目录下的 ./bin/logstash-plugin 脚本来管理和部署。用户可以通过命令行脚本对插件进行安装、删除、升级等操作。
logstash默认是从Rubygems中https://guides.rubygems.org/下载logstash的插件进行安装的。RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。RubyGems 旨在方便地管理 gem 安装的工具,以及用于分发 gem 的服务器。这类似于 Ubuntu 下的apt-get, Centos 的 yum,Python 的 pip。
- 插件列表
展现logstash中已经安装的插件。
#列举已经安装的插件
bin/logstash-plugin list
#列举已经安装的插件和其版本信息 bin/logstash-plugin list --verbose
#通过名称筛选插件 bin/logstash-plugin list '*namefragment*'
#根据插件类型筛选插件,对应input|filter|codec|output bin/logstash-plugin list --group output
- 插件添加
第一种方式:直接安装
bin/logstash-plugin install logstash-output-kafka
直接从Rubygems中下载安装,非常方便。
第二种方式:下载gem包进行安装
bin/logstash-plugin install /path/to/logstash-output-kafka-1.0.0.gem
这种方式需要用户自己去下载对应gem包来安装。
第三种方式:--path.plugins
# supposing the code is in /opt/shared/lib/logstash/inputs/my-custom-plugin-code.rb
bin/logstash --path.plugins /opt/shared/lib
这种方式是开发插件时使用,这里不做详细介绍了。
- 插件升级
默认logstash会从库中将插件升级到最新的版本。
#升级所有插件
bin/logstash-plugin update
#升级指定插件 bin/logstash-plugin update logstash-output-kafka
- 插件删除
bin/logstash-plugin remove logstash-output-kafka
- 代理支持
前面的部分依赖于logstash能够与rubygems.org进行通信。在某些环境中,转发代理用于处理HTTP请求。通过设置http_proxy环境变量,可以通过代理安装和更新logstash插件:
export HTTP_PROXY=http://127.0.0.1:3128 bin/logstash-plugin install logstash-output-kafka
- 插件生成
自定义插件。
bin/logstash-plugin generate --type input --name xkcd --path ~/ws/elastic/plugins
--type
: 插件的类型(input|filter|output|codec)--name
: 插件名称--path
: 插件的目录(不指定默认当前目录)