Elasticsearch avec Docker
Comme é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&utm_source=rss&utm_medium=rss
on obtient :
{ "cluster_name" : "elasticsearch", "nodes" : { "22UAJOAUSK6931WBFBvZtQ" : { "name" : "Blind Faith", "transport_address" : "inet[<strong>/172.17.0.1:9300]</strong>", "host" : "710b5c9bff05", "ip" : "172.17.0.1", "version" : "1.7.2", "build" : "e43676b", "http_address" : "inet[/<strong>172.17.0.1:9200</strong>]", "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 } } } }