ElasticSearch Update 6.7.0

De EjnTricks

Cet article présente la mise à jour de ElasticSearch en version 6.7.0.

Dans le cadre de cet article, la mise à jour est effectuée manuellement avec le même principe que pour l'installation initiale. Théoriquement, la mise à jour est simple. Cependant il est nécessaire de n'oublier aucune étape.

Warning-icon.png Attention tous les produits de la suite ne sont pas forcément compatibles. Par exemple, il est nécessaire de mettre à jour Kibana dans la même version, soit 6.4.X, en même temps.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Download-icon.png Téléchargement

L'application est téléchargée dans le répertoire /var/opt/elasticsearch.


System-Install-icon.png Installation

L'application va être installée sous /var/opt/elasticsearch, avec modification de l'emplacement racine pour être 6.7.0.

#sudo tar --transform 's/^elasticsearch-6.7.0/6.7.0/' -C /var/opt/elasticsearch -xzvf /var/opt/elasticsearch/elasticsearch-6.7.0.tar.gz

Le fichier téléchargé peut être supprimé.

#sudo rm /var/opt/elasticsearch/elasticsearch-6.7.0.tar.gz


Icon File Owner.png Propriétaire fichiers

L'installation a été réalisée avec le compte root. Il est préférable de donner la propriété au compte de démarrage du serveur web, soit elasticsearch dans le cadre de cette installation.

#sudo chown -R elasticsearch:elasticsearch /var/opt/elasticsearch/6.7.0


Icon ACL.png Sécurisation

Les droits mis en place seront uniquement pour le compte d'exécution, soit elasticsearch.

#sudo chmod -R go-rwx /var/opt/elasticsearch/6.7.0


linnk= Arrêt

Dans le cadre de cette installation, l'instance est arrêté. Ceci ne serait pas nécessaire en utilisant un cluster. De plus pour éviter toute erreur potentielle, les applications périphériques, Logstash / Kibana / Beats, sont arrêtées.

#sudo systemctl stop elasticsearch


Share-icon.png Fichiers communs

Lors de l'installation, les fichiers de configuration ont été placés dans /var/opt/elasticsearch/common/config. Ceux-ci ne sont pas modifiés entre les deux versions et aucune action n'est requise.


Plugin-icon.png Réinstallation Plugins

Il est nécessaire de refaire l'installation des plugins utilisés, voir documentation officielle. Pour cette instance, les plugins Ingest-GeoIP et Ingest-User-Agent sont réinstallés.

Attention pour cette version le plugin ingest-geoip a été inclus dans la distribution, cf https://www.elastic.co/guide/en/elasticsearch/plugins/6.7/ingest-geoip.html. Cependant, la précédente installation stocke des bases d'information dans le répertoire de configuration, à savoir /var/opt/elasticsearch/common/config/ingest-geoip dans le cadre de cette installation. Si ces fichiers sont toujours existant, une erreur se produit lors du redémarrage.

[WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [ejn-1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: java.io.IOException: expected database [GeoLite2-ASN.mmdb] to not exist in 
[/var/opt/elasticsearch/common/config/ingest-geoip]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.7.0.jar:6.7.0]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.7.0.jar:6.7.0]
Caused by: java.lang.RuntimeException: java.io.IOException: expected database [GeoLite2-ASN.mmdb] to not exist in [/var/opt/elasticsearch/common/config/ingest-geoip]
        at org.elasticsearch.ingest.geoip.IngestGeoIpPlugin.getProcessors(IngestGeoIpPlugin.java:78) ~[?:?]
        at org.elasticsearch.ingest.IngestService.processorFactories(IngestService.java:105) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.ingest.IngestService.<init>(IngestService.java:88) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.node.Node.<init>(Node.java:387) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.node.Node.<init>(Node.java:266) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:212) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:212) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.7.0.jar:6.7.0]
        ... 6 more
Caused by: java.io.IOException: expected database [GeoLite2-ASN.mmdb] to not exist in [/var/opt/elasticsearch/common/config/ingest-geoip]
        at org.elasticsearch.ingest.geoip.IngestGeoIpPlugin.assertDatabaseExistence(IngestGeoIpPlugin.java:150) ~[?:?]
        at org.elasticsearch.ingest.geoip.IngestGeoIpPlugin.loadDatabaseReaders(IngestGeoIpPlugin.java:102) ~[?:?]
        at org.elasticsearch.ingest.geoip.IngestGeoIpPlugin.getProcessors(IngestGeoIpPlugin.java:76) ~[?:?]
        at org.elasticsearch.ingest.IngestService.processorFactories(IngestService.java:105) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.ingest.IngestService.<init>(IngestService.java:88) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.node.Node.<init>(Node.java:387) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.node.Node.<init>(Node.java:266) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:212) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:212) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.7.0.jar:6.7.0]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.7.0.jar:6.7.0]
        ... 6 more

comme la mise à jour s'effectue à l'aide de lien, il suffit de supprimer, ou déplacer, le répertoire contenant les bases.

#sudo rm -rf /var/opt/elasticsearch/common/config/ingest-geoip

Il en est de même pour ingest-user-agent, cf https://www.elastic.co/guide/en/elasticsearch/plugins/6.7/ingest-user-agent.html.


Vues-icon.png Référencement version

Afin de faciliter les montées de versions, le lien /var/opt/elasticsearch/installed a été mis en place et doit être mis à jour.

#sudo rm /var/opt/elasticsearch/installed
#sudo ln -s /var/opt/elasticsearch/6.7.0 /var/opt/elasticsearch/installed
#sudo chown -h elasticsearch:elasticsearch /var/opt/elasticsearch/installed


Start-icon.png Redémarrage

L'instance peut être redémarrée.

#sudo systemctl start elasticsearch


Viewer icon.png Voir aussi

Documentation officielle: https://www.elastic.co/guide/en/elasticsearch/reference/6.7/setup-upgrade.html

https://www.elastic.co/guide/en/elasticsearch/reference/6.7/rolling-upgrades.html

https://www.elastic.co/guide/en/elasticsearch/plugins/6.7/listing-removing-updating.html

Release Notes: https://www.elastic.co/guide/en/elasticsearch/reference/6.7/release-notes-6.7.0.html