# Logstash起動時のエラー

**URL:** <https://discuss.elastic.co/t/logstash/159275>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [December 4, 2018, 2:49am UTC](https://discuss.elastic.co/t/logstash/159275 "2018-12-04T02:49:17Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![tom1989](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@tom1989](https://discuss.elastic.co/u/tom1989)\
**Post date:** [December 4, 2018, 2:49am UTC](https://discuss.elastic.co/t/logstash/159275/1 "2018-12-04T02:49:17Z")

</div>

linux環境にlogstash,erasticsearch,kibanaの構築をしています。

logstash(tar.gz版)を設定後に起動コマンドを実行したところ下記エラーが出ます。

[main]Logstash - java.lang.IllegalStateException: Logstash stopped processing because of an error:(GemspecError) There was a LoadError while loading logstash-core.gemspec:  
load error: psych-- java.lang.RuntimeException :BUG : we can not copy embedded jar to temp directory

Does it try to require a relative path? That's been removed in Ruby 1.9.

・エラー文中のtempディレクトリとは、/tmpディレクトリでしょうか？(/tmpはrootユーザのみ書き込み許可されていますが、logstashの起動ユーザにはroot権限がありません)  
・(もし/tmpをさしている場合)Erasticsearchでは、環境変数ES\_TMPDIRに任意のtmpディレクトリを設定しましたが、logstashも同様に変更できるでしょうか。  
・上記とは異なるエラー原因でしょうか

恐れ入りますがご教示頂けますと幸いです。

---

<div class="post-metadata">

**Author:** ![mnozawa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mnozawa/32/15091_2.png) [@mnozawa](https://discuss.elastic.co/u/mnozawa)\
**Post date:** [December 4, 2018, 3:47am UTC](https://discuss.elastic.co/t/logstash/159275/2 "2018-12-04T03:47:05Z")

</div>

同様と思われるエラーのトピックがありました

> [@Unabale to star logstash as a service](https://discuss.elastic.co/t/unabale-to-star-logstash-as-a-service/135673):
>
> Hello, My Environement includes: Logstash version: 6.2.4 Operating System : RedHat Entreprise Linux Server release 6.6. I install Logstash form rpm file but while starting the deamon, I get the following error: Does it try to require a relative path? That's been removed in Ruby 1.9. [ERROR] 2018-06-11 14:21:19.233 [main] Logstash - java.lang.IllegalStateException: org.jruby.exceptions.RaiseException: (GemspecError) There was a LoadError while loading logstash-core.gemspec: load error: psy…

temp directoryとは /tmp のことを指しているようですね。  
権限周りを変更することができれば解決する可能性がたかそうです。

一方、logstashの設定としてtemp directoryを変更する項目はさっと見たところなさそうに思います。  
(logstashのファイル群の中には/tmpを指している箇所が相当数ありますが大半がjrubyに関するもので、専門外の私にはよくわかりませんでした)

---

<div class="post-metadata">

**Author:** ![tom1989](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@tom1989](https://discuss.elastic.co/u/tom1989)\
**Post date:** [December 4, 2018, 4:28am UTC](https://discuss.elastic.co/t/logstash/159275/3 "2018-12-04T04:28:12Z")

</div>

ありがとうございます。  
/tmpの権限変更可能かサーバの管理者に確認してみます。

ちなみに添付いただいた記事ですと、スーパーユーザーで実行するとpipeline.ymlが使用できないということですよね？(複数conf実行したいためpipelineは使用したいと考えております)

---

<div class="post-metadata">

**Author:** ![st1t](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/st1t/32/9188_2.png) [@st1t](https://discuss.elastic.co/u/st1t)\
**Post date:** [December 4, 2018, 6:25am UTC](https://discuss.elastic.co/t/logstash/159275/4 "2018-12-04T06:25:46Z")

</div>

もし解決できない場合は以下情報を貼って貰えればもう少し何かわかるかもしれません。

- OS情報
  - RHEL|CentOS|Debian|Ubuntu等
  - アーキテクチャ(i386 |x86\_64等。uname -aコマンドで出てくるかと思います)

- Logstash情報
  - Version

- /tmpディレクトリの情報

```auto
$ ls -la /tmp

```

- エラーが出るまでの実行手順（以下、例）

```auto
$ sudo su -
# bin/logstash -f logstash-simple.conf
Sending Logstash logs to /root/logstash-6.5.1/logs which is now configured via log4j2.properties
[2018-12-04T06:15:19,237][WARN][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2018-12-04T06:15:19,279][INFO][logstash.runner] Starting Logstash {"logstash.version"=&gt;"6.5.1"}
[2018-12-04T06:15:24,433][INFO][logstash.pipeline] Starting pipeline {:pipeline_id=&gt;"main", "pipeline.workers"=&gt;2, "pipeline.batch.size"=&gt;125, "pipeline.batch.delay"=&gt;50}
[2018-12-04T06:15:25,052][INFO][logstash.outputs.elasticsearch] Elasticsearch pool URLs updated {:changes=&gt;{:removed=&gt;[], :added=&gt;[http://localhost:9200/]}}
[2018-12-04T06:15:25,063][INFO][logstash.outputs.elasticsearch] Running health check to see if an Elasticsearch connection is working {:healthcheck_url=&gt;http://localhost:9200/, :path=&gt;"/"}

```

---

<div class="post-metadata">

**Author:** ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)\
**Post date:** [December 5, 2018, 1:07pm UTC](https://discuss.elastic.co/t/logstash/159275/5 "2018-12-05T13:07:19Z")

</div>

こんにちわ。  
確かに/tmpフォルダに書き込み権限がないと、同じエラーになることをLogstash6.5.1で確認しました。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/f/d/fd23e812fe44e75d934487ecaff08c6611d94f29.png)

tmpが書き込み権限がないというのであれば、書き込みができる場所を  
Javaのテンポラリ用のフォルダの指定をすれば良い、ということになるかと思います。

そこで、EM\_TEMPDIRではなく、 **LS\_JAVA\_OPTS環境変数でJVM引数を指定** してみてください。

```auto
export LS_JAVA_OPTS="-Djava.io.tmpdir=/hoge/fuga"

```

/hoge/fugaは、logstash実行ユーザが書き込みができる場所とします。  
これで実行いただくと、tmpフォルダが書き込み権限なくても、/hoge/fuga以下を使うので起動エラーは避けられるはずです。

こちらはDockerで確認していますが、これを確認したときの起動コマンドはこちらになります。  
/tmpフォルダはReadOnly、新しく指定するtmp用のフォルダはReadWriteで。

```auto
docker run -it -v /home/test/1205:/tmp:ro \
                -v /home/test/hoge:/hoge/fuga:rw \
                -e LS_JAVA_OPTS=-Djava.io.tmpdir=/hoge/fuga \
                docker.elastic.co/logstash/logstash:6.5.1

```

これでlogstashを起動すると、jrubyのjarがtmpとして指定したフォルダにコピーされていることが確認できました。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/7/5/757be35ff14b45f101541bc492f6a20e50b6bcc5.png)

参考になれば幸いです。

---

<div class="post-metadata">

**Author:** ![tom1989](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@tom1989](https://discuss.elastic.co/u/tom1989)\
**Post date:** [December 7, 2018, 12:15am UTC](https://discuss.elastic.co/t/logstash/159275/6 "2018-12-07T00:15:20Z")

</div>

ありがとうございます！  
tmpフォルダに権限を与えて実行できました。

JAVAのtmp出力で使用しているのですね。  
今後ディレクトリ構成を諸々検討するため、環境変数の設定も視野に入れたいと思います。

ご回答いただいたみなさま、本当にありがとうございました。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [January 4, 2019, 12:15am UTC](https://discuss.elastic.co/t/logstash/159275/7 "2019-01-04T00:15:23Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
