Littlewing : Elasticsearch avec Docker
vendredi 9 octobre 2015 à 10:30Comme évoqué dans un précédent article, j’ai décidé de me mettre (modestement) à Docker. Comme je devais utiliser elasticsearch pour un projet, j’ai dit pourquoi pas utiliser l’image docker. Voici les actions que j’ai réalisé et le (petit) problème vite résolu.
Installation
Que du simple et du basique. elastic.co fournit une image officielle.
$ docker pull elasticsearch
Problème de binding réseau
Si je démarre l’instance de manière classique, j’ai un petit soucis de binding réseau. En effet, l’instance Docker positionne le hostname à 172.17.0.1 et … ça occasionne quelques soucis lors de l’appel à mon cluster (ex.: timeout, impossibilité de joindre le cluster, catastrophe nucléaire,…).
Si on exécute la requête suivante : http://localhost:9200/_nodes/process?pretty
on obtient :
{ "cluster_name" : "elasticsearch", "nodes" : { "22UAJOAUSK6931WBFBvZtQ" : { "name" : "Blind Faith", "transport_address" : "inet[/172.17.0.1:9300]", "host" : "710b5c9bff05", "ip" : "172.17.0.1", "version" : "1.7.2", "build" : "e43676b", "http_address" : "inet[/172.17.0.1:9200]", "process" : { "refresh_interval_in_millis" : 1000, "id" : 1, "max_file_descriptors" : 1048576, "mlockall" : false } } } }
Bref, ça ne le fait pas. Pour pouvoir utiliser cette image sans avoir à créer ma propre image, j’ai donc positionné les variables HOSTNAME
, es.network.bind_host
et es.network.host
au démarrage de la machine.
docker run -i -t -d --name elasticsearch -p 9200:9200 \\ -e HOSTNAME=127.0.0.1 elasticsearch -Des.network.bind_host=0.0.0.0 \\ -Des.network.host=127.0.0.1
Maintenant j’ai la configuration suivante :
{ "cluster_name" : "elasticsearch", "nodes" : { "0g0flJVhQ8qtH7fRFqywvQ" : { "name" : "Sweetface", "transport_address" : "inet[/127.0.0.1:9300]", "host" : "127.0.0.1", "ip" : "127.0.0.1", "version" : "1.7.2", "build" : "e43676b", "http_address" : "inet[/127.0.0.1:9200]", "process" : { "refresh_interval_in_millis" : 1000, "id" : 1, "max_file_descriptors" : 1048576, "mlockall" : false } } } }
Original post of Littlewing.Votez pour ce billet sur Planet Libre.
Articles similaires
- Littlewing : Comment customiser une image Docker (09/09/2015)
- Littlewing : Insérer des données issues d’un fichier CSV dans ELASTICSEARCH (21/01/2015)
- Littlewing : Mettre en oeuvre rapidement l’ autocomplétion avec Elasticsearch (04/02/2015)
- Littlewing : Intégrer la base adresse nationale dans Elasticsearch (20/05/2015)
- Emmanuel Gontcho : Skype cherche-t-il des "esclaves" ? (06/11/2009)