Je souhaite activer les journaux d'Elasticsearch.
Lorsque j'exécute des binaires elasticsearch, je me rends compte que j'ai des problèmes de journalisation: la configuration ne peut pas être chargée!
Voici la sortie:
~ $ Sudo /usr/share/elasticsearch/bin/elasticsearch
Failed to configure logging...
org.elasticsearch.ElasticsearchException: Failed to load logging configuration
at org.elasticsearch.common.logging.log4j.LogConfigurator.resolveConfig(LogConfigurator.Java:117)
at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.Java:81)
at org.elasticsearch.bootstrap.Bootstrap.setupLogging(Bootstrap.Java:94)
at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.Java:178)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.Java:32)
Caused by: Java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config
at Sun.nio.fs.UnixException.translateToIOException(UnixException.Java:86)
at Sun.nio.fs.UnixException.rethrowAsIOException(UnixException.Java:102)
at Sun.nio.fs.UnixException.rethrowAsIOException(UnixException.Java:107)
at Sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.Java:55)
at Sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.Java:144)
at Sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.Java:97)
at Java.nio.file.Files.readAttributes(Files.Java:1686)
at Java.nio.file.FileTreeWalker.walk(FileTreeWalker.Java:109)
at Java.nio.file.FileTreeWalker.walk(FileTreeWalker.Java:69)
at Java.nio.file.Files.walkFileTree(Files.Java:2602)
at org.elasticsearch.common.logging.log4j.LogConfigurator.resolveConfig(LogConfigurator.Java:107)
... 4 more
log4j:WARN No appenders could be found for logger (node).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.Apache.org/log4j/1.2/faq.html#noconfig for more info.
Java HotSpot(TM) Server VM warning: You have loaded library /usr/share/elasticsearch/lib/sigar/libsigar-x86-linux.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Je cours sous linuxmint 17 et j'utilise la dernière ES.
Si vous avez installé elasticsearch à l'aide d'un gestionnaire de packages comme yum
ou apt-get
vous ne devez pas lancer elasticsearch de cette façon. Essayez d'utiliser le service: par exemple /etc/init.d/elasticsearch
ou en utilisant la commande Sudo service elasticsearch start
Vous devez également vérifier si le fichier logging.yml se trouve à l'emplacement mentionné dans la trace de pile: /usr/share/elasticsearch/config
Utiliser Sudo
pour démarrer elasticsearch n'est pas bon, vous pouvez faire Sudo elasticsearch
pour s'exécuter en tant qu'utilisateur elasticsearch, mais je préfère utiliser l'appel de service comme décrit dans la deuxième phrase.
J'espère que ça t'as aidé
Votre elasticsearch.yml
fichier ainsi que logging.yml
le fichier sera dans le /etc/elasticsearch
dossier.
Créez un dossier de configuration dans votre dossier elasticsearch
dans /usr/share
et déplacez les fichiers .yml dans le dossier config
Exécutez maintenant /bin/elasticsearch start
et cela fonctionnera.
Suivre cela a fonctionné pour moi.
Votre fichier elasticsearch.yml ainsi que le fichier logging.yml seront dans le dossier/etc/elasticsearch.
Créez un dossier de configuration dans votre dossier elasticsearch dans/usr/share et déplacez les fichiers .yml vers le dossier de configuration
Vous pouvez faire des liens symboliques, mais si vous voulez simplement pointer elasticsearch vers le répertoire de configuration souhaité, vous pouvez utiliser ce qui suit:
/usr/share/elasticsearch/bin/elasticsearch --default.path.conf=/etc/elasticsearch/
Si vous avez installé elasticsearch dans les systèmes Debian à l'aide de dpkg, la configuration par défaut se trouve dans /etc/elasticsearch/
Vous aurez 2 fichiers yml:
elasticsearch.yml
logging.yml
Vous pouvez modifier le fichier elasticsearch (modifier le droit d'accès ou copier le fichier dans votre répertoire elasticsearch principal). Pour configurer votre chemin de journal (l.167).
#path.logs: /path/to/logs
#e.g:
path.logs: /usr/share/elasticsearch/logs
Assurez-vous que vous disposez des droits d'accès appropriés. Alors essaye
cd /usr/share/elasticsearch/
bin/elasticsearch start
et vérifiez le publish_adress
donné dans le terminal
Vous pouvez également définir plus de paramètres. J'espère que cette aide.
Si vous avez installé un .deb et que vous souhaitez démarrer Sudo/usr/share/elasticsearch/bin/elasticsearch
Tu dois faire :
cd /usr/share/elasticsearch
Sudo ln -s /etc/elasticsearch config
Je pense que vous avez installé votre elasticsearch en utilisant yum ou apt-get La meilleure façon de le faire est de taper:
$ Sudo service elasticsearch start
ou quelque chose de similaire, comme la façon dont vous démarrez des services comme nginx, etc.
Ça marche pour moi.
Si vous devez l'exécuter au premier plan, mais pas en tant que service, spécifiez simplement le répertoire de configuration de manière explicite.
$ /usr/share/elasticsearch/bin/elasticsearch -Des.path.conf=/etc/elasticsearch
Dans ce cas, elasticsearch pourra trouver tous vos fichiers de configuration.
Dans mon cas, j'essayais de lancer elasticsearch à partir du téléchargement tar afin de pouvoir exécuter facilement plusieurs instances distinctes sans définitions de service.
Ce qui a fonctionné pour moi, c'était de monter un répertoire et de lancer elasticsearch en utilisant bin/elasticsearch
au lieu de simplement elasticsearch
tout en étant dans le répertoire bin.
Maintenant, il n'a démarré aucun problème sans liens symboliques, fichiers de service ou autres modifications.
Je suis entré dans le même problème et je me demandais comment ils pouvaient le manquer dans le script d'installation de la recherche élastique. Donc, après avoir creusé, voici ce que j'ai trouvé:
Il semble que vous ayez installé la recherche élastique en utilisant yum ou apt-get, sinon vous auriez eu le répertoire 'config' sous ES_HOME.
La vérification de init.d/elasticsearch montre ce qui suit:
DAEMON_OPTS="-d -p $PID_FILE --default.path.home=$ES_HOME --default.path.logs=$LOG_DIR --default.path.data=$DATA_DIR --default.path.conf=$CONF_DIR"
:
# Start Daemon
start-stop-daemon -d $ES_HOME --start -b --user "$ES_USER" -c "$ES_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
Ainsi, toutes les variables sont correctement initialisées puis passées en tant que paramètres de ligne de commande.
Ainsi, la meilleure façon de commencer est d'utiliser le service:
>Sudo service elasticsearch start
Il s'assurera que tous les paramètres de configuration et de journal sont passés à la commande principale.
Vérifiez les journaux sous /var/log/$NAME
ce serait '/ var/log/elasticsearch`
J'exécute elasicsearch avec l'utilisateur elasticsearch
, j'ai donc utilisé cette commande:
Sudo su elasticsearch -c './bin/elasticsearch -d --default.path.conf=/etc/elasticsearch'
depuis le répertoire où elasticsearch est installé. Devais faire:
Sudo chown -R elasticsearch:elasticsearch .
là-dedans, car sinon, il n'aura pas accès en écriture aux fichiers journaux. Je ne sais pas comment cela fonctionnerait via les scripts de démarrage Debian, mais cela semble bien fonctionner comme ça.