Impossible de se connecter à ElasticSearch sur une version fraiche d'Ubuntu serveur 16.04
Il s'agit d'une traduction du post de fcoelho sur le fil de discussion d'elastic.
root@ubuntu1604lts:~# curl -X GET 'http://localhost:9200'
curl: (7) Failed connect to localhost:9200; Connection refused.
Même avec la configuration réseau par défaut.
Le service ElasticSearch ne démarre pas
root@ubuntu1604lts:~# systemctl status elasticsearch● elasticsearch.service - LSB: Starts elasticsearch
Loaded: loaded (/etc/init.d/elasticsearch; bad; vendor preset: enabled)
Active: active (exited) since Sun 2018-03-11 15:08:09 CET; 5s ago
Docs: man:systemd-sysv-generator(8)
Process: 1386 ExecStop=/etc/init.d/elasticsearch stop (code=exited, status=0/S
Process: 1421 ExecStart=/etc/init.d/elasticsearch start (code=exited, status=0
Le serveur n'écoute pas sur le port 9200 :
root@ubuntu1604lts:~# netstat -atp tcp | grep -i "listen"tcp 0 0 *:ssh *:* LISTEN 811/sshd
tcp 0 0 *:postgresql *:* LISTEN 553/postgres
tcp 0 0 *:5433 *:* LISTEN 554/postgres
tcp6 0 0 [::]:ssh [::]:* LISTEN 811/sshd
tcp6 0 0 [::]:postgresql [::]:* LISTEN 553/postgres
tcp6 0 0 [::]:5433 [::]:* LISTEN 554/postgres
La solution
Il semble que pour lancer le service ElasticSearch sur Ubuntu 16.4, il faut paramétrerSTART_DAEMON
à true
dans le fichier /etc/default/elasticsearch
:# Start Elasticsearch automatically
START_DAEMON=true
Par défaut, cette ligne est commentée dans le paquet elasticsearch d'Ubuntu (sic)
La décommenter permet au service de se lancer correctement.
On peut également s'assurer que le service démarre avec le bon utilisateur. Pour cela, il suffit de décommetter les 2 lignes suivantes :
# Run Elasticsearch as this user ID and group ID
ES_USER=elasticsearch
ES_GROUP=elasticsearch
Important
Pour finir, assurez-vous d'utilisersystemctl restart
au lieu de start
car le service est démarré juste après l'isntallation, et apparemment, il y a soit un socket, un pidfile ou quelque chose d'autre que le système retient et qui devrait être disponible pour que le service démarre à nouveau.On peut également forcer la main à ElasticSearch en le démarrant avec son utilisateur :
root@ubuntu1604lts:~# sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch &