Upgrade ELK
NOTE: It’s highly recommended to perform a backup before any upgrade.
Upgrade Elasticsearch
Since version 0.90.7, Elasticsearch supports rolling upgrades. As a result, it’s not necessary to stop the entire cluster during the upgrade process. Instead, it is possible to upgrade one node at a time and keep the rest of the cluster operating normally.
To upgrade a node, follow the steps below:
-
Disable shard reallocation using the command below:
$ curl -XPUT localhost:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.enable" : "none" } }'
-
Stop non-essential indexing and perform a synced flush (optional):
$ curl -XPOST 'http://localhost:9200/_flush/synced'
-
Stop the node:
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown' $ sudo /opt/bitnami/ctlscript.sh stop elasticsearch
-
Extract to a new directory (not overwriting the current installation) - for example, /tmp/new_elasticsearch.
-
Rename old files:
$ cd /opt/bitnami $ sudo mv elasticsearch/bin elasticsearch/old_bin $ sudo mv elasticsearch/lib elasticsearch/old_lib $ sudo mv elasticsearch/modules elasticsearch/old_modules
-
Copy files from new installation directory:
$ sudo cp -r /tmp/new_elasticsearch/bin elasticsearch/bin $ sudo cp -r /tmp/new_elasticsearch/lib elasticsearch/lib $ sudo cp -r /tmp/new_elasticsearch/modules elasticsearch/modules
-
Start the node again:
$ sudo /opt/bitnami/ctlscript.sh start elasticsearch
-
Remove the replicas:
$ curl -XPUT 127.0.0.1:9200/_settings -d{"number_of_replicas":0}
-
Confirm that the node joins the cluster:
$ curl -XGET 'http://localhost:9200/_cat/nodes'
-
Re-enable shard reallocation:
$ curl -XPUT localhost:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.enable" : "all" } }'
-
Wait for the node to recover:
$ curl -XGET 'http://localhost:9200/_cat/health'
Repeat the process for all remaining nodes of your cluster.
Upgrade Logstash
To upgrade Logstash, follow the steps below:
-
Stop the service:
$ sudo /opt/bitnami/ctlscript.sh stop logstash
-
Extract to a new directory (not overwriting the current installation) - for example, /tmp/new_logstash.
-
Backup old files:
$ cd /opt/bitnami $ sudo cp logstash old_logstash
-
Copy files from new installation directory:
$ sudo cp -r /tmp/new_logstash/* logstash/
-
Test your configuration file:
$ logstash -t -f /opt/bitnami/logstash/pipeline/logstash.conf
-
Start the service again:
$ sudo /opt/bitnami/ctlscript.sh start logstash
Upgrade Kibana
To upgrade Kibana, follow these steps:
-
Create a snapshot of the existing .kibana index
-
Stop the service:
$ sudo /opt/bitnami/ctlscript.sh stop kibana
-
Extract to a new directory (not overwriting the current installation) - for example, /tmp/new_kibana.
-
Take note of the Kibana plugins that are already installed:
$ kibana/bin/kibana-plugin list
-
Backup old files:
$ cd /opt/bitnami $ sudo cp kibana old_kibana
-
Copy files from new installation directory:
$ sudo cp -r /tmp/new_kibana/* kibana/
-
Recover the kibana.yml file:
$ cp old_kibana/config/kibana.yml kibana/config/kibana.yml
-
Start the service again:
$ sudo /opt/bitnami/ctlscript.sh start kibana