Elasticsearch2.30のelasticsearch-head プラグインがインストールできません


#1

elasticsearch-1.7.1では
set JAVA_OPTS=-DproxyHost=proxy.xxxxxxxxxx -DproxyPort=xxxx
bin\plugin -install mobz/elasticsearch-head
でelasticsearch-head プラグインがインストールできたのですが
elasticsearch-2.3.0ではインストールができません。
set JAVA_OPTS=-DproxyHost=proxy.xxxxxxxxxx -DproxyPort=xxxx
bin\plugin install mobz/elasticsearch-head
を実行すると
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...
ERROR: failed to download out of all possible locations..., use --verbose to get detailed information
というエラーになります。
elasticsearch2.30 の plugin をProxy環境内からインストールするには
set JAVA_OPTS=-DproxyHost=proxy.xxxxxxxxxx -DproxyPort=xxxx
の部分をどのように記述すればよいのでしょうか。
動作環境はWindows7 です。
よろしくお願いします。

---elasticsearch-1.7.1 (set JAVA_OPTS=・・・なし) [失敗] ---------------
bin\plugin -install mobz/elasticsearch-head
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip...
Failed to install mobz/elasticsearch-head, reason: failed to download out of all possible locations..., use --verbose to get detailed information

---elasticsearch-1.7.1 (set JAVA_OPTS=・・・あり) [成功] ----------------
set JAVA_OPTS=-Dhttps.proxyHost=proxy.xxxxxxxxxx -Dhttps.proxyPort=xxxx
bin\plugin -install mobz/elasticsearch-head
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip...
Downloading ....................................................................
............................................DONE
Installed mobz/elasticsearch-head into C:\・・・・・・・\elasticsearch-1.7.1\plugins\head

---elasticsearch-2.3.0 (set JAVA_OPTS=・・・あり) [失敗] ----------------
set JAVA_OPTS=-Dhttps.proxyHost=proxy.xxxxxxxxxx -Dhttps.proxyPort=xxxx
bin\plugin install mobz/elasticsearch-head
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...
ERROR: failed to download out of all possible locations..., use --verbose to get detailed information


(Jun Ohtani) #2

https://www.elastic.co/guide/en/elasticsearch/plugins/2.3/_other_command_line_parameters.html#_proxy_settings

こちらはご覧になられましたでしょうか?


#3

ご回答ありがとうございます。
教えていただきましたリンクの

On Windows, they need to be added to the JAVA_OPTS environment variable:
set JAVA_OPTS="-DproxyHost=host_name -DproxyPort=port_number"
bin/plugin install mobz/elasticsearch-head
の部分のように実行しましたが以下のように同様のエラーになってしまいます。
念のためダブルクォテージョンなしでも実行してみましたが同様のエラーになります。


set JAVA_OPTS="-DproxyHost=xxxxxxxxxx -DproxyPort=xxxx"
bin\plugin install mobz/elasticsearch-head
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...
ERROR: failed to download out of all possible locations..., use --verbose to get detailed information

よろしくお願いします。


(kazuhira) #4

以下のコマンドで、Windows 7でインストール可能でした。こちらでいかがでしょうか?

bin\plugin install -Dhttps.proxyHost=host -Dhttps.proxyPort=port mobz/elasticsearch-head


#5

ご回答ありがとうございます。

(elasticsearch-2.3.0では)
set JAVA_OPTS="-DproxyHost=host -DproxyPort=port"
bin\plugin install mobz/elasticsearch-head
でも、
bin\plugin install -Dhttps.proxyHost=host -Dhttps.proxyPort=port mobz/elasticsearch-head
でも、どちらも
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...
ERROR: failed to download out of all possible locations..., use --verbose to get detailed information
というエラーになってしまいます。

そちらのWindows 7ではインストールできているということなので、
違いがあるとすれば host と port の部分と
ネットワーク環境の問題だけのように思われますが、
bin\plugin install -Dhttps.proxyHost=host -Dhttps.proxyPort=port mobz/elasticsearch-head
の host と port の部分は、elasticsearch-1.7.1の
set JAVA_OPTS=-Dhttps.proxyHost=host -Dhttps.proxyPort=port
の host と port の部分と同じでいいですよね。
これが正しいとすると、elasticsearch-1.7.1では、
set JAVA_OPTS=-Dhttps.proxyHost=host -Dhttps.proxyPort=port
bin\plugin -install mobz/elasticsearch-head
で、同じネットワーク環境の同じPCで正しくインストールできていますので、
host と port の設定は正しくて、
ネットワーク環境も問題ないと思われます。
本日、elasticsearch-1.7.1と2.3.0を交互に再度確認してみました。
別のPCでも確認してみましたが全く同じ結果になります。

よろしくお願いします。


(Jun Ohtani) #6

--verboseオプションをつけた場合にログにはどんなメッセージが出ますか?


(kazuhira) #7

Elasticsearch 1.7.1でも確認してみました。

以下のコマンドで、インストール可能でした。

set JAVA_OPTS=-Dhttps.proxyHost=host -Dhttps.proxyPort=port

bin\plugin -install mobz/elasticsearch-head
(もしくは)bin\plugin -install mobz/elasticsearch-head/1.x

前のご回答でお伝えした2.3.0利用時に設定したプロキシのホスト、ポートとは同じものを設定しています。

こちらのWindows環境についてもお伝えしておくと、

Windows 7 64ビット
Java 8 u60(少し前ですが…)

となります。

同じく、--verboseを付与して実行してみてはいかがでしょうか?


#8

--verboseオプションをつけて実行してみました。

bin\plugin install -Dhttps.proxyHost=host -Dhttps.proxyPort=port mobz/elasticsearch-head --verbose
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...
Failed: SSLHandshakeException[sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:unable to find valid certification path to requested target]; nested: ValidatorException[PKIX path building failed: un.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]; nested: SunCertPathBuilderException[unable to find valid certification path to requested target];
ERROR: failed to download out of all possible locations..., use --verbose to get detailed information

よろしくお願いします。


(kazuhira) #9

記載いただいている情報を見ると、Elasticsearchというより、
Java ⇒ プロキシ ⇒ GitHub
の間のSSL通信の問題のように思えます。

Elasticsearchのプラグインのダウンロードは、Java標準のjava.net.URLConnectionを利用して行われているようです。

以下あたりを切り分けの観点にされるとよいと思います。

  • 1.7.1と2.3.0を使用している時のJavaが、同じかどうか
  • java.net.URLConnectionを単体で使ったプログラムで、プロキシを介してGitHub(https://github.com)と通信可能か
  • -Djavax.net.debug=ssl:handshake または -Djavax.net.debug=all などを付与して、SSL通信の様子を見てみる
  • 利用されているプロキシにSSLに関する特殊な要件、設定などないか

#10

確認していただきましてありがとうございます。

(1) 1.7.1と2.3.0を使用している時のJavaが、同じかどうか
(2) java.net.URLConnectionを単体で使ったプログラムで、
プロキシを介してGitHub(https://github.com)と通信可能か
(3) -Djavax.net.debug=ssl:handshake または -Djavax.net.debug=all などを付与して、
SSL通信の様子を見てみる
(4) 利用されているプロキシにSSLに関する特殊な要件、設定などないか

(1)については同じJavaです。
set JAVA_HOME
JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_73

(2)(3)(4)については私には敷居が高すぎて
正直、何をしたらよいのかがよく分かりません。

今回、サイトから直接インストールさせているような感じなのですが、
これ以外の方法ではできないのでしょうか。
例えば、
一旦、インストールファイルをローカルにダウンロードしておいて、
その後、このダウンロードしたファイルを
インストールするようなことはできないのでしょうか。
もし、ダウンロードの段階で同じようなエラーがでるのであれば
ダウンロードだけはプロキシを介さないPCで行っておいて
ダウンロードしたファイルを目的のPCにコピーして
インストールさせるようなことはできないでしょうか。

よろしくお願いします。


(Jun Ohtani) #11

オフラインでのインストールについては、

https://www.elastic.co/guide/en/elasticsearch/plugins/current/installation.html#_custom_url_or_file_system

こちらを参考にしていただければと。


#12

最初の方法(オンライン?)ではうまくいきませんでしたが、
オフラインでインストールすることができました。
ありがとうございました。

私が最初に思っていたインストール方法とは少し違っていたので
elasticsearch-headプラグインのオフラインによる
インストールの仕方を以下に記しておきます。
(elasticsearchがC:\test\elasticsearch-2.3.0にある場合)
(Windows7の場合)

  1. GitHub
    https://github.com/mobz/elasticsearch-head
    の右上あたりにあるDownloadZIPボタンをクリックして、
    elasticsearch-head-master.zip
    というファイルをelasticsearch-2.3.0\bin
    のフォルダの中にダウンロードする
  2. コマンドプロンプトを管理者として実行で起動して
    elasticsearch-2.3.0\binフォルダに移動する
  3. plugin install file:C:\test\elasticsearch-2.3.0\bin\elasticsearch-head-master.zip
    でインストールする。(\と/はどちらでもよい)
  4. 以下のようなメッセージが表示される。
    -> Installing from file:C:/test/elasticsearch-2.3.0/bin/elasticsearch-head-master.zip...
    Trying file:C:/test/elasticsearch-2.3.0/bin/elasticsearch-head-master.zip ...
    Downloading .........DONE
    Verifying file:C:/test/elasticsearch-2.3.0/bin/elasticsearch-head-master.zip checksums if available ...
    NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify)
    Installed head into C:\test\elasticsearch-2.3.0\plugins\head
  5. Elasticsearchを起動する
  6. http://localhost:9200/_plugin/head/でelasticsearch-headプラグインの画面が表示される

(system) #13