elastic / logstash

Logstash - transport and process your logs, events, or other data
https://www.elastic.co/products/logstash
Other
69 stars 3.5k forks source link

Retain non-default filters and plugins after apt/.deb upgrade #7040

Open ageis opened 7 years ago

ageis commented 7 years ago

Every time that I upgrade Logstash, which sometimes could even be automatic through unattended_upgrades, I need to install non-default filters and plugins that are being used in my configuration since they get wiped out. It's cumbersome and creates extra work for users.

It would be great if these were preserved upon update... I know it's a little complicated since each version has its own own jruby/ruby environment and all that, but I'm sure there should be some way to capture a list of installed non-default Logstash plugins, and leverage a post-inst hook within the .deb package or some other mechanism to ensure they will be present.

jordansissel commented 7 years ago

This is something I'd like to provide, but I am not sure how to achieve it.

Some barriers:

For now, my recommendation is this:

1) Use the offline plugin management steps to create a pack of your preferred plugins 2) Install this pack after you upgrade Logstash.


Here's an alternative idea that we might be able to do. What if our offline plugin management could produce an rpm or deb? Then your workflow for upgrades would be:

1) Build an offline pack as an rpm or deb, let's call it logstash-favorite-plugins version 1. Make this rpm/deb depend on logstash at a given version (say, 5.3.0). This will require a small post-install step for logstash-favorite-plugins that runs the correct bin/logstash-plugin install path/to/pack... command. 2) Install the logstash-favorite-plugins rpm/deb and it will depend on logstash 5.3.0 (as above) and you'll get Logstash 5.3.0 + your plugins

Next, when a new release comes out, repeat these steps.

3) Build an offline pack using Logstash 5.3.1. Call the rpm/deb logstash-favorite-plugins version 2. make it depend on logstash version 5.3.1 4) Instruct dnf/yum/apt to upgrade logstash-favorite-plugins to version 2. This will upgrade Logstash (as a dependency) to 5.3.1.

Thoughts? We might be able to automate some of this (the deb/rpm creation w/ the correct post-install step to install the pack into logstash).