Elasticsearch, comment l'installer

Posted on mar. 13 juin 2017 in Elasticsearch

Elasticsearch est un logiciel écrit en java et peut sembler compliqué à installer. Détrompons-nous, c'est on ne peut plus simple.

Pour cela, je vous propose 2 manières d'installer elasticsearch : avec et sans Docker.

Installer Elasticsearch avec Docker

Je vais supposer que vous avez déjà Docker d'installé sur votre machine. Autrement, je vous laisse regarder la documentation officielle.

Pour référence, voici le guide officiel d'installation d'Elasticsearch en utilisant Docker.

Installation rapide, pour tests

docker pull docker.elastic.co/elasticsearch/elasticsearch:5.4.1
docker run -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" docker.elastic.co/elasticsearch/elasticsearch:5.4.1

Et voilà. Vous avez maintenant un serveur elasticsearch pour test qui tourne sur votre machine.

Installation propre

Docker officiel

Créez un fichier custom_elasticsearch.yml et montez-le dans le docker. Pareil, ne placez pas les fichier de DB dans le docker, montez plutôt un dossier qui les contiendra.

docker run -p 9200:9200 -v full_path_to/custom_elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mnt/elasticsearchdata:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:5.4.1

Custom docker héritant du docker officiel

Créez un fichier Dockerfile comme suit :

FROM docker.elastic.co/elasticsearch/elasticsearch:5.4.1
ADD elasticsearch.yml /usr/share/elasticsearch/config/
USER root
RUN chown elasticsearch:elasticsearch config/elasticsearch.yml
USER elasticsearch

Puis exécutez-le :

docker build --tag=elasticsearch-custom .
docker run -ti -v /usr/share/elasticsearch/data elasticsearch-custom

Vous avez aussi la possibilité de créer vous-même votre Dockerfile, en partant de FROM ubuntu, par exemple, mais je vous laisse le faire. Le moins compliqué sera de s'inspirer des l'installation sans docker et de mettre ça dans un Dockerfile.

Installer Elasticsearch sans Docker

Je vais supposer que la dernière version de Java est déjà installé sur votre serveur. Pour rappel, Elasticsearch recommande Java 8.

Pour référence, voici le guide officiel d'installation d'Elasticsearch.

Installation rapide pour tests

  1. Téléchargez la dernière version d'elasticsearch

    curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.tar.gz
    
  2. Extrayez-le

    tar -xvf elasticsearch-5.4.1.tar.gz
    
  3. Lancez le serveur Elasticsearch

    cd elasticsearch-5.4.1/bin && ./elasticsearch
    

Installation propre

Je ne couvrirais pas l'installation en utilisant les packages système (.deb et .rpm), uniquement l'installation "à la main" (qui pourra et devrait être automatisée) car elle permet de garder facilement la main sur les numéros de version du soft (ce qui peut être utile en prod).

Pour une installation prod-ready, nous verrons cela dans un autre blogpost, nous y verrons notamment les paramètres elasticsearch et système à vérifier.

En résumé :

cd /opt
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.tar.gz
curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.tar.gz.sha1
sha1sum elasticsearch-5.4.1.tar.gz # devrait renvoyer exactement la même chose que la ligne précédente
tar -xzf elasticsearch-5.4.1.tar.gz
ln -s /opt/elasticsearch /opt/elasticsearch-5.4.1
cd elasticsearch

Créez votre propre elasticsearch.yml ou modifiez celui présent dans /opt/elasticsearch/config/elasticsearch.yml. (Pour plus d'information sur ce fichier de configuration reportez-vous au post elasticsearch_conf).

Puis, récupérez le fichier de service systemd ici : https://github.com/elastic/elasticsearch/blob/master/distribution/src/main/packaging/systemd/elasticsearch.service et installez-le :

wget -O /etc/systemd/system/elasticsearch.service https://github.com/elastic/elasticsearch/raw/master/distribution/src/main/packaging/systemd/elasticsearch.service

Vous pouvez maintenant démarrer/arrêter Elasticsearch comme un service système.