web-dev-qa-db-ja.com

Elasticsearchはログファイルに書き込めません

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を使用しています。

39
4m1nh4j1

yumapt-getなどのパッケージマネージャーを使用してelasticsearchをインストールした場合、この方法でelasticsearchを開始しないでください。サービスを使用してみてください:たとえば/etc/init.d/elasticsearchまたはコマンドSudo service elasticsearch startを使用してください

また、logging.ymlファイルがスタックトレースに記載されている場所にあるかどうかも確認する必要があります:/usr/share/elasticsearch/config

Sudoを使用してelasticsearchを開始するのは良くありません。Sudo elasticsearchを実行してelasticsearchユーザーとして実行できますが、2番目の文で説明されているサービス呼び出しを使用することを好みます。

役立つことを願っています

39

elasticsearch.ymlファイルとlogging.ymlファイルは、/etc/elasticsearchフォルダーにあります。

/usr/shareelasticsearchフォルダーにconfigフォルダーを作成し、.ymlファイルをconfigフォルダーに移動します

/bin/elasticsearch startを実行すると動作します。

10
user3890091

これに続いて私のために働いた。

Elasticsearch.ymlファイルとlogging.ymlファイルは/ etc/elasticsearchフォルダーにあります。

/ usr/shareのelasticsearchフォルダーにconfigフォルダーを作成し、.ymlファイルをconfigフォルダーに移動します

7
Kwame

シンボリックリンクを作成できますが、elasticsearchに目的の設定ディレクトリを指定するだけの場合は、次を使用できます。

/usr/share/elasticsearch/bin/elasticsearch --default.path.conf=/etc/elasticsearch/

4
Michael Doyle

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ターミナルで指定

さらにパラメーターを定義することもできます。この助けを願っています。

3
c24b

.debをインストール済みで、Sudo/usr/share/elasticsearch/bin/elasticsearchを開始する場合

あなたはしなければならない :

cd /usr/share/elasticsearch

Sudo ln -s /etc/elasticsearch config
2
user1344381

Yumまたはapt-getを使用してelasticsearchをインストールしたと思います。これを行う最良の方法は、次のように入力することです。

$ Sudo service elasticsearch start

またはnginxなどのサービスを開始する方法など、類似したもの.

わたしにはできる。

1
wonook

サービスとしてではなくフォアグラウンドで実行する必要がある場合は、構成ディレクトリを明示的に指定します。

$ /usr/share/elasticsearch/bin/elasticsearch -Des.path.conf=/etc/elasticsearch

この場合、elasticsearchはすべての設定ファイルを見つけることができます。

1
Roman Tataurov

私の場合、サービス定義なしで複数の個別のインスタンスを簡単に実行できるように、tarダウンロードからelasticsearchを開始しようとしました。

私のために働いたのは、ディレクトリに移動して、binディレクトリにいる間にelasticsearchだけでなくbin/elasticsearchを使用してelasticsearchを起動することでした。

これで、シンボリックリンク、サービスファイル、またはその他の変更なしで問題なく起動しました。

0
Chris Magnuson

私は同じ問題に遭遇し、エラスティック検索のインストールスクリプトでどのように見逃すことができるのか疑問に思っていました。だから、ここでいくつか掘り下げた後、私が見つけたものです:

  1. Yumまたはapt-getを使用してエラスティック検索をインストールしたか、ES_HOMEの下に「config」ディレクトリがあったようです。

  2. 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

  3. そのため、すべての変数が適切に初期化され、コマンドラインパラメーターとして渡されます。

  4. したがって、開始するための最良の方法は、サービスを使用することです。

    >Sudo service elasticsearch start

  5. すべての設定およびログパラメータがメインコマンドに渡されることを確認します。

  6. '/ var/log/elasticsearch`となる/var/log/$NAMEの下のログを確認します

0
SriSri

ユーザーelasticsearchでelasicsearchを実行しているため、次のコマンドを使用しました。

Sudo su elasticsearch -c './bin/elasticsearch -d --default.path.conf=/etc/elasticsearch'

elasticsearchがインストールされているディレクトリから。しなければならなかった:

Sudo chown -R elasticsearch:elasticsearch .

ただし、それ以外の場合はログファイルへの書き込みアクセス権がないためです。 debian起動スクリプトを介してこれがどのように機能するかはわかりませんが、これはこのようにうまく機能するようです。

0
gitaarik