Elasticsearchのログを有効にしたいと思います。
Elasticsearchバイナリを実行すると、ロギングに問題があることがわかります。設定をロードできません!
出力は次のとおりです。
~ $ 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'.
私はlinuxmint 17で実行しており、最新のESを使用しています。
yum
やapt-get
などのパッケージマネージャーを使用してelasticsearchをインストールした場合、この方法でelasticsearchを開始しないでください。サービスを使用してみてください:たとえば/etc/init.d/elasticsearch
またはコマンドSudo service elasticsearch start
を使用してください
また、logging.ymlファイルがスタックトレースに記載されている場所にあるかどうかも確認する必要があります:/usr/share/elasticsearch/config
Sudo
を使用してelasticsearchを開始するのは良くありません。Sudo elasticsearch
を実行してelasticsearchユーザーとして実行できますが、2番目の文で説明されているサービス呼び出しを使用することを好みます。
役立つことを願っています
elasticsearch.yml
ファイルとlogging.yml
ファイルは、/etc/elasticsearch
フォルダーにあります。
/usr/share
のelasticsearch
フォルダーにconfigフォルダーを作成し、.ymlファイルをconfigフォルダーに移動します
/bin/elasticsearch start
を実行すると動作します。
これに続いて私のために働いた。
Elasticsearch.ymlファイルとlogging.ymlファイルは/ etc/elasticsearchフォルダーにあります。
/ usr/shareのelasticsearchフォルダーにconfigフォルダーを作成し、.ymlファイルをconfigフォルダーに移動します
シンボリックリンクを作成できますが、elasticsearchに目的の設定ディレクトリを指定するだけの場合は、次を使用できます。
/usr/share/elasticsearch/bin/elasticsearch --default.path.conf=/etc/elasticsearch/
Dpkgを使用してDebianシステムにelasticsearchをインストールした場合、デフォルト設定は/etc/elasticsearch/
2つのymlファイルがあります。
elasticsearch.yml
logging.yml
Elasticsearchファイルを編集できます(アクセス権を変更するか、メインのelasticsearchディレクトリーにファイルをコピーします)。ログパスを構成するには(l.167)。
#path.logs: /path/to/logs
#e.g:
path.logs: /usr/share/elasticsearch/logs
適切なアクセス権があることを確認してください。それから試して
cd /usr/share/elasticsearch/
bin/elasticsearch start
publish_adress
ターミナルで指定
さらにパラメーターを定義することもできます。この助けを願っています。
.debをインストール済みで、Sudo/usr/share/elasticsearch/bin/elasticsearchを開始する場合
あなたはしなければならない :
cd /usr/share/elasticsearch
Sudo ln -s /etc/elasticsearch config
Yumまたはapt-getを使用してelasticsearchをインストールしたと思います。これを行う最良の方法は、次のように入力することです。
$ Sudo service elasticsearch start
またはnginxなどのサービスを開始する方法など、類似したもの.
わたしにはできる。
サービスとしてではなくフォアグラウンドで実行する必要がある場合は、構成ディレクトリを明示的に指定します。
$ /usr/share/elasticsearch/bin/elasticsearch -Des.path.conf=/etc/elasticsearch
この場合、elasticsearchはすべての設定ファイルを見つけることができます。
私の場合、サービス定義なしで複数の個別のインスタンスを簡単に実行できるように、tarダウンロードからelasticsearchを開始しようとしました。
私のために働いたのは、ディレクトリに移動して、binディレクトリにいる間にelasticsearch
だけでなくbin/elasticsearch
を使用してelasticsearchを起動することでした。
これで、シンボリックリンク、サービスファイル、またはその他の変更なしで問題なく起動しました。
私は同じ問題に遭遇し、エラスティック検索のインストールスクリプトでどのように見逃すことができるのか疑問に思っていました。だから、ここでいくつか掘り下げた後、私が見つけたものです:
Yumまたはapt-getを使用してエラスティック検索をインストールしたか、ES_HOMEの下に「config」ディレクトリがあったようです。
Init.d/elasticsearchを確認すると、次のことがわかります。
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
そのため、すべての変数が適切に初期化され、コマンドラインパラメーターとして渡されます。
したがって、開始するための最良の方法は、サービスを使用することです。
>Sudo service elasticsearch start
すべての設定およびログパラメータがメインコマンドに渡されることを確認します。
'/ var/log/elasticsearch`となる/var/log/$NAME
の下のログを確認します
ユーザーelasticsearch
でelasicsearchを実行しているため、次のコマンドを使用しました。
Sudo su elasticsearch -c './bin/elasticsearch -d --default.path.conf=/etc/elasticsearch'
elasticsearchがインストールされているディレクトリから。しなければならなかった:
Sudo chown -R elasticsearch:elasticsearch .
ただし、それ以外の場合はログファイルへの書き込みアクセス権がないためです。 debian起動スクリプトを介してこれがどのように機能するかはわかりませんが、これはこのようにうまく機能するようです。