Installation d’Elasticsearch sur ubuntu server 18.04

Introduction :

Bonjour, aujourd’hui un article assez long (désolé) sur l’installation d’Elasticsearch sur une Ubuntu server 18.04.
Il est possible de faire la même manip sur Debian (juste vérifier les versions des logiciels avant)

Qu’est ce qu’Elasticsearch :

« Elascticsearch est un moteur de recherche de d’analyse RESTful distribué… » en fait c’est un moteur de recherche qui utilise Lucene pour l’indexation et la recherche des données. Il permet de rechercher tout type de documents.
Il fonctionne avec JAVA (propriétaire ou la version libre). Il peut être distribué, c’est à dire que les données peuvent être répartie sur plusieurs nœuds Elascticsearch.
Une des ses grandes forces est que l’indexation se fait par des requêtes HTTP type PUT et les recherches via des requêtes de type GET.
Un autre point fort est qu’il s’agit d’une suite (dont Elasticsearch est le moteur de recherche) qui contient également Kibana pour la visualisation, les Beats qui sont des agents qui transfert les données vers Logstash et Logstash qui est comme un parseur de données vers Elasticsearch. (il y a d’autres outils dans la suites que nous pourrons voir par la suite).
Bref tout ce qu’il faut pour traiter des données d’un peu partout.
A oui il est possible d’utiliser Elasticsearch mais si vous le faite pour une utilisation pro, prenez la maintenance (payante)

Installation :

Dans mon cas j’utilise un système dans un container LXC pour installer Elasticsearch (donc il faut préparer un peu le serveur, je ferais sûrement un article sur LXD un de ses jours)

Pré-requis :

Comme beaucoup d’outils moderne Elasticsearch utilise Java (hélas …) il est possible d’utiliser la version Oracle ou la version libre. Pour ma part j’utilise la version Oracle, même si je préfère la version libre.
# aptitude install apt-transport-https wget software-properties-common curl
# add-apt-repository ppa:webupd8team/java
# aptitude update
# aptitude install -y oracle-java8-set-default

Elasticsearch installation :

Vérifier la version en cours sur le site d’elascticsearch puis
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.2.deb
Et on lance l’installation via dpkg
# dpkg -i elasticsearch-6.5.2.deb
#systemctl start elasticsearch
On vérifie d’elasticsearch fonctionne bien :
# curl -X GET ‘http://localhost:9200’
Vous devriez avoir :

{
« name » : « -KN1KG7 »,
« cluster_name » : « elasticsearch »,
« cluster_uuid » : « 9LfbDHGHR76lgTSzXcrA2g »,
« version » : {
« number » : « 6.5.2 »,
« build_flavor » : « default »,
« build_type » : « deb »,
« build_hash » : « 9434bed »,
« build_date » : « 2018-11-29T23:58:20.891072Z »,
« build_snapshot » : false,
« lucene_version » : « 7.5.0 »,
« minimum_wire_compatibility_version » : « 5.6.0 »,
« minimum_index_compatibility_version » : « 5.0.0 »
},
« tagline » : « You Know, for Search »
}


Afin de lancer Elasticsearch a chaque démarrage on utilise :
# systemctl enable elasticsearch

Elasticsearch installation via apt :

Il est possible d’installer elasticsearch via apt.
Ajouter les clés :
# wget -qO – https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add –
Ajouter les sources list :
# echo « deb https://artifacts.elastic.co/packages/6.x/apt stable main » | tee -a /etc/apt/sources.list.d/elastic-6.x.list
Puis on installe :
# aptitude update && aptitude install elasticsearch

Première configuration :

Le fichier de configuration d’elasticsearch est
/etc/elastcisearch/elastcisearch.yml
Ligne 17 décommenter et changer
     cluster.name: my-application
Remplacer my-application par le nom de votre elastic
Ligne 23 décommenter et changer
     node.name: node-1
Il s’agit du nom de votre nœud, il est possible d’ajouter des nœuds à votre application elasticsearch, pour répartir les données.
Ligne 55 décommenter et changer
network.host: 192.168.0.1
Ou l’ip est l’adresse de votre serveur. (il est possible d’utiliser _site_ pour dire que l’accès est autorisé pour le réseau local.

Vérification :

Les commandes se passent par curl, pour vérifier notre installation  il suffit de lancer :
$ curl -X GET http://localhost:9200

{
« name » : « -KN1KG7 »,
« cluster_name » : « elastic »,
« cluster_uuid » : « 9LfbDHGHR76lgTSzXcrA2g »,
« version » : {
« number » : « 6.5.2 »,
« build_flavor » : « default »,
« build_type » : « deb »,
« build_hash » : « 9434bed »,
« build_date » : « 2018-11-29T23:58:20.891072Z »,
« build_snapshot » : false,
« lucene_version » : « 7.5.0 »,
« minimum_wire_compatibility_version » : « 5.6.0 »,
« minimum_index_compatibility_version » : « 5.0.0 »
},
« tagline » : « You Know, for Search »
}

Conclusion

L’installation est trivial, la configuration et l’utilisation là c’est autre chose.
Il faut savoir par avance ce que vous voulez faire et quels sont vos objectifs car les outils utilisés ne sont pas les mêmes.
Dans un prochain article je vais voir comment utiliser Logstash et Kibana.