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
-
Téléchargez la dernière version d'elasticsearch
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.tar.gz
-
Extrayez-le
tar -xvf elasticsearch-5.4.1.tar.gz
-
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.