Logstash has a rich collection of input, filter, codec and output plugins. Plugins are available as self-containedpackages called gems and hosted on RubyGems.org. The plugin manager accessed via bin/logstash-plugin
script is used to manage thelifecycle of plugins in your Logstash deployment. You can install, remove and upgrade plugins using the Command LineInterface (CLI) invocations described below.
The majority of the plugin manager commands require access to the internet to reach RubyGems.org.If your organization is behind a firewall you can set these environments variables to configure Logstash to use your proxy.
export http_proxy=http://localhost:3128export https_proxy=http://localhost:3128
Logstash release packages bundle common plugins so you can use them out of the box. To list the plugins currentlyavailable in your deployment:
bin/logstash-plugin list bin/logstash-plugin list --verbose bin/logstash-plugin list '*namefragment*' bin/logstash-plugin list --group output
Will list all installed plugins |
|
Will list installed plugins with version information |
|
Will list all installed plugins containing a namefragment |
|
Will list all installed plugins for a particular group (input, filter, codec, output) |
The most common situation when dealing with plugin installation is when you have access to internet. Using this method,you will be able to retrieve plugins hosted on the public repository (RubyGems.org) and install on top of your Logstashinstallation.
bin/logstash-plugin install logstash-output-kafka
Once the plugin is successfully installed, you can start using it in your configuration file.
In some cases, you want to install plugins which have not yet been released and not hosted on RubyGems.org. Logstashprovides you the option to install a locally built plugin which is packaged as a ruby gem. Using a file location:
bin/logstash-plugin install /path/to/logstash-output-kafka-1.0.0.gem
--path.plugins
Using the Logstash --path.plugins
flag, you can load a plugin source code located on your file system. Typically this is used bydevelopers who are iterating on a custom plugin and want to test it before creating a ruby gem.
The path needs to be in a specific directory hierarchy: PATH/logstash/TYPE/NAME.rb
, where TYPE is inputs filters, outputs or codecs and NAME is the name of the plugin.
# supposing the code is in /opt/shared/lib/logstash/inputs/my-custom-plugin-code.rbbin/logstash --path.plugins /opt/shared/lib
Plugins have their own release cycle and are often released independent of Logstash’s core release cycle. Using the updatesubcommand you can get the latest version of the plugin.
If you need to remove plugins from your Logstash installation:
bin/logstash-plugin remove logstash-output-kafka
The previous sections relied on Logstash being able to communicate with RubyGems.org. In certain environments, ForwardingProxy is used to handle HTTP requests. Logstash Plugins can be installed and updated through a Proxy by setting theHTTP_PROXY
environment variable:
export HTTP_PROXY=http://127.0.0.1:3128bin/logstash-plugin install logstash-output-kafka
Once set, plugin commands install, update can be used through this proxy.