Upgrade procedure from 1.4.2.to 1.5

I am currently testing an ELK stack based on 1.4.2 - what steps should I take to upgrade. Isn't this a great FAQ question? :smile:

I don't believe there have been any backwards incompatible changes, so as long as you make sure all the plugins you need are installed it should be quite straight forward. The usual good advice about not upgrading the entire fleet right away obviously applies here too.

I did the upgrade from 1.4.2 to 1.5.0 version some days ago and everything went smoothly. No change required in the configuration file and logstash is still running. The upgrade was pretty simple as I am running logstash from a docker container.

I had the same question. I'm using Mint so just download and install the .deb file - it will update just fine.

So is the procedure to upgrade from 1.4.x to 1.5.x to install it over itself? Are there any files to backup/restore?

I've been trying to upgrade to 1.5.2 from 1.4.2 as well. The upgrade went smoothly, but I couldn't use the new (and supposedly appropriate) version of aws-cloud.
When I try to create a TransportClient with aws-cloud 2.5.1, I get the following exception:

org.elasticsearch.common.inject.CreationException: Guice creation errors:

1) A binding to org.elasticsearch.cloud.aws.AwsS3Service was already configured at _unknown_.
  at _unknown_

2) A binding to org.elasticsearch.cloud.aws.AwsEc2Service was already configured at _unknown_.
  at _unknown_

2 errors
	at org.elasticsearch.common.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:344)
	at org.elasticsearch.common.inject.InjectorBuilder.initializeStatically(InjectorBuilder.java:151)
	at org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java:102)
	at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:93)
	at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:70)
	at org.elasticsearch.common.inject.ModulesBuilder.createInjector(ModulesBuilder.java:59)
	at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:187)
	at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:123)
...

I have cluster to 1.4.2 version but I am running "node client" on ES 1.5.2 in same cluster ? I have been seeing my nodes becomes unresponsive sometime randomly. Is this could be root cause for it ?

Any suggestion would help.

So there are no generic (or distro specific) step by step upgrade directions

No, there's no special upgrade procedure.

Please pardon my ignorance but I'm not very *ix literate. I'm simply trying to find out how I should upgrade LS to keep it up to date. A preferred method if there is one.

  • Install new versions in another folder and copy over key files?
  • Install new version over the old and the settings will be retained?
  • Backup config files, install new version over the old, recopy config files back?
  • ???

I'm not sure why it is so hard to get this question answered. At this point, without any guidance, I am leaning towards the first method.

I guess we've been assuming that you asked about any Logstash-specific upgrade concerns, not how to unpack an archive or install a package.

Normally both configuration files and state files (like sincedb, in the Logstash case) would be stored in a location separate from the program files, in which case most of your questions are moot. If you store configuration files and state files together with the program files, stop doing that. You should strongly consider using a package management system like APT or RPM since it'll take care of all that for you, plus set up an init script, create a user with home directory, create a log directory, set up log rotation, and so on.

Install new versions in another folder and copy over key files?

That works, but again, there shouldn't be any key files there.

Install new version over the old and the settings will be retained?
Backup config files, install new version over the old, recopy config files back?

If "install over the old" means "unpack the the .tar.gz or .zip into the same directory" then don't do that. Any files that have disappeared between the releases won't be removed. Unpack the archive into a new location.

Thank you very much.

Honestly, I had installed it both ways (w APT & w/o APT). Again, I'm not very *ix literate so I wanted to be sure I was not misunderstanding the correct way to upgrade.

I just tried the update via yum, and it puked:

Processing Dependency: logstash < 1.4.3 for package: logstash-contrib-1.4.2-1_efd53ef.noarch

I understand that contrib has is now a plugin, so it has different installation instructions that before.

But what about upgrades? Do I need to remove the old logstash-contrib package?

I don't see this covered in any upgrade documentation.