J'ai récemment mis à niveau ma machine depuis Ubuntu 14.04
à 16.04
. J'ai du mal à utiliser le elasticsearch
comme service. I installéelasticsearch
en utilisant:
Sudo apt-get install elasticsearch
Maintenant Sudo service elasticsearch status
la commande me montre ce résultat:
elasticsearch.service - LSB: Starts elasticsearch
Loaded: loaded (/etc/init.d/elasticsearch; bad; vendor preset: enabled)
Active: active (exited) since Sat 2016-07-30 18:28:13 BDT; 1h 19min ago
Docs: man:systemd-sysv-generator(8)
Main PID: 7988 (code=exited, status=1/FAILURE)
CGroup: /system.slice/elasticsearch.service
Jul 30 18:28:13 dimik elasticsearch[10266]: [warning] /etc/init.d/elasticsearch: No Java runtime was found
Jul 30 18:28:13 dimik systemd[1]: Started LSB: Starts elasticsearch.
Jul 30 18:28:46 dimik systemd[1]: Started LSB: Starts elasticsearch.
Jul 30 18:35:30 dimik systemd[1]: Started LSB: Starts elasticsearch.
Jul 30 19:04:36 dimik systemd[1]: Started A search engine.
Jul 30 19:07:48 dimik systemd[1]: Started A search engine.
Jul 30 19:27:01 dimik systemd[1]: Started A search engine.
Jul 30 19:27:51 dimik systemd[1]: Started A search engine.
Jul 30 19:28:54 dimik systemd[1]: Started A search engine.
Jul 30 19:29:18 dimik systemd[1]: Started LSB: Starts elasticsearch.
Bien que Java est installé sur ma machine et je peux démarrer le serveur en utilisant cette commande.
Sudo /usr/share/elasticsearch/bin/elasticsearch
Je suis un peu coincé ici. Toute aide serait appréciée.
Modifier
Après avoir configuré Java_HOME
pour rooter l'erreur:
elasticsearch.service - LSB: Starts elasticsearch
Loaded: loaded (/etc/init.d/elasticsearch; bad; vendor preset: enabled)
Active: active (exited) since Sat 2016-07-30 18:28:13 BDT; 3h 32min ago
Docs: man:systemd-sysv-generator(8)
Main PID: 7988 (code=exited, status=1/FAILURE)
CGroup: /system.slice/elasticsearch.service
Jul 30 18:35:30 dimik systemd[1]: Started LSB: Starts elasticsearch.
Jul 30 19:04:36 dimik systemd[1]: Started A search engine.
Jul 30 19:07:48 dimik systemd[1]: Started A search engine.
Jul 30 19:27:01 dimik systemd[1]: Started A search engine.
Jul 30 19:27:51 dimik systemd[1]: Started A search engine.
Jul 30 19:28:54 dimik systemd[1]: Started A search engine.
Jul 30 19:29:18 dimik systemd[1]: Started LSB: Starts elasticsearch.
Jul 30 20:02:07 dimik systemd[1]: Started LSB: Starts elasticsearch.
Jul 30 20:20:21 dimik systemd[1]: Started LSB: Starts elasticsearch.
Jul 30 21:59:21 dimik systemd[1]: Started LSB: Starts elasticsearch.
J'ai trouvé la solution à ce problème. La solution vient de ce fil de discussion - Impossible de démarrer elasticsearch avec Ubuntu 16.04 sur le site Web d'Elastic.
Il semble que pour faire fonctionner Elasticsearch sur
16.04
vous devez définirSTART_DAEMON
à vrai sur/etc/default/elasticsearch
. Il est commenté par défaut, et sans commentaire, Elasticsearch redémarre très bien.Assurez-vous d'utiliser
systemctl restart
au lieu de simplementstart
parce que le service démarre juste après l'installation, et apparemment il y asocket/pidfile/something
quesystemd
conserve qui doit être libéré avant de pouvoir redémarrer le service.
Le problème réside dans les fichiers journaux, "No Java runtime was found."
Jul 30 18:28:13 dimik elasticsearch[10266]: [warning] /etc/init.d/elasticsearch: No Java runtime was found
Voici ma solution au problème.
Vérifier le fichier init elasticsearch
Sudo nano /etc/init.d/elasticsearch
rechercher
. /usr/share/Java-wrappers/Java-wrappers.sh
find_Java_runtime openjdk8 Oracle8 openjdk7 Oracle7 openjdk6 Sun6 default
export Java_HOME
Vérifiez le fichier Java-wrappers.sh
Sudo nano /usr/share/Java-wrappers/Java-wrappers.sh
Maintenant, vous pouvez voir que l'avertissement vient de
#Displays a warning
Java_warning() {
echo "[warning] $0: $@" >&2;
}
Modifiez maintenant le fichier jvm-list.sh
Sudo nano /usr/lib/Java-wrappers/jvm-list.sh
Editez la ligne ajoutez vos fichiers de répertoires Java, dans mon cas, ajoutez/usr/lib/jvm/Java-8-Oracle *
__jvm_Oracle8="/usr/lib/jvm/jdk-8-Oracle-* /usr/lib/jvm/jre-8-Oracle-* /usr/lib/jvm/Java-8-Oracle*"
Redémarrez maintenant le service et vérifiez les services elasticsearch
Sudo systemctl redémarre elasticsearch
Statut de recherche élastique Sudo systemctl
curl -X GET " http: // localhost: 92 "
J'espère que cela aiderait
Ouvrez le fichier /etc/init.d/elasticsearch dans l'éditeur, Commentaire sous les lignes
. /usr/share/Java-wrappers/Java-wrappers.sh
find_Java_runtime openjdk8 Oracle8 openjdk7 Oracle7 openjdk6 Sun6 default
Définissez Java_HOME manuellement comme ceci:
export Java_HOME="/usr"
service elasticsearch start
Mon problème était différent, j'ai démarré elasticsearch manuellement en tant qu'utilisateur root, donc certains fichiers ont été créés avec une propriété incorrecte, donc l'utilisateur elasticsearch ne peut pas écrire dessus.
Vous pouvez essayer de démarrer elasticsearch à partir de la console pour voir les erreurs:
Sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch \
-Des.default.config=/etc/elasticsearch/elasticsearch.yml \
-Des.default.path.home=/usr/share/elasticsearch \
-Des.default.path.logs=/var/log/elasticsearch \
-Des.default.path.data=/var/lib/elasticsearch \
-Des.default.path.work=/tmp/elasticsearch \
-Des.default.path.conf=/etc/elasticsearch
Pour réparer ma machine, je devais faire:
rm -rf /var/log/elasticsearch/*
rm -rf /var/lib/elasticsearch/*