How to handle Logstash updates and automatic installation of plugins
- Dominant language
- Java
- Stars
- 14.9k
- Forks
- 3.5k
- Avg merge
- 19h 14m
- Merged PRs (30d)
- 63
Description
Is there a way that when upgrading Logstash that required plugins are automatically installed?
We have the issue that when upgrading to a later version of Logstash such as this:
`
---> Package logstash.noarch 1:5.2.1-1 will be updated
---> Package logstash.noarch 1:5.2.2-1 will be an update
`
Dependent plugins are removed and logstash does not start after reboot:
`
[2017-03-07T11:11:54,827][ERROR][logstash.plugins.registry] Problems loading a plugin with {:type=>"filter", :name=>"range", :path=>"logstash/filters/range", :error_message=>"NameError", :error_class=>NameError, :error_backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb:221:in `namespace_lookup'", "/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb:157:in `legacy_lookup'", "/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb:133:in `lookup'", "/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb:175:in `lookup_pipeline_plugin'", "/usr/share/logstash/logstash-core/lib/logstash/plugin.rb:129:in `lookup'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:95:in `plugin'", "(eval):216:in `initialize'", "org/jruby/RubyKernel.java:1079:in `eval'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:65:in `initialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:144:in `initialize'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:275:in `create_pipeline'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:95:in `register_pipeline'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:264:in `execute'", "/usr/share/logstash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:67:in `run'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:183:in `run'", "/usr/share/logstash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:132:in `run'", "/usr/share/logstash/lib/bootstrap/environment.rb:71:in `(root)'"]}
[2017-03-07T11:11:54,902][ERROR][logstash.agent ] Cannot load an invalid configuration {:reason=>"Couldn't find any filter plugin named 'range'. Are you sure this is correct? Trying to load the range filter plugin resulted in this error: Problems loading the requested plugin named range of type filter. Error: NameError NameError"}
`
We then require manual installation of those plugins before starting Logstash:
`
cd /usr/share/logstash/
bin/logstash-plugin install logstash-output-gelf logstash-filter-range
`
I am not sure if placing the above plugin install command into startup-options is ideal?
Contributor guide
Assessment
This issue has not been assessed yet.