13

Elastic Search に 2 時間浸っています。marvel.agent.enabled: falseMarvel ( config/elasticsearch.yml 内) でES を正常にインストールし、Sense からの要求を成功させることができました。開発マシンを再起動したところ、Sense で次のリクエストを行うと、応答します。

Request failed to get to the server (status code: 0):

Elasticsearch may not be reachable or you may need to check your CORS settings.If CORS is enabled, try turning off Sense's Basic Authentication support under Setting (cog icon).This will result in a less strict CORS enforcement by the browser.
Please check the marvel documentation for more information.

リクエスト(ソース):

PUT /megacorp/employee/1
{
"first_name" : "John",
"last_name" :  "Smith",
"age" :        25,
"about" :      "I love to go rock climbing",
"interests": [ "sports", "music" ]
}

指示に従って、curl で同様のリクエストを行い、ES に到達できるかどうかを確認しました。

リクエスト:

curl -XPUT http://localhost:9200/megacorp/employee/100 -d '{ "first_name" : "test" }'

応答:

{"_index":"megacorp","_type":"employee","_id":"100","_version":1,"created":true}

これは、ESが利用可能であると私に思わせます。

次のチェック「CORS 設定を確認する必要があるかもしれません。」に進みます。この推奨事項に基づいて、elasticsearch.yml に次の構成を追加しました (および ES を再起動しました) 。

http.cors.enabled: true
http.cors.allow-origin: /.*/  
http.cors.allow-credentials: true

しかし、行動に変化はありません。

Marvel/Smart 設定で「Support Basic Auth」を切り替えても影響はありません。

何がうまくいかないのかについての指針を歓迎します。

4

7 に答える 7

7

marvel/sense html ページを別のブラウザーまたはプライベート/シークレット モードで実行してみてください。私は同じ問題を抱えていましたが、これを行うことで解決しました。Cookieに設定が保存されているか、よくわからないことが原因だと思います。

于 2015-02-24T09:35:57.917 に答える
5

私もこれと同じ問題を抱えていました.Elasticsearchのドキュメントによると、 http://www.elastic.co/guide/en/marvel/current/configuration.html#cors、CORSを有効にする必要があります。

要約すると、config/ フォルダーにある elasticsearch.yml ファイルを開き、これを配置します。

http.cors.enabled: true
http.cors.allow-origin: /.*/  
http.cors.allow-credentials: true 

そこのどこかに、おそらく「Network And HTTP」セクションがあります。

次に、elasticsearch を再起動した後、Marvel Sense で問題なく動作しました。

于 2015-03-12T18:13:58.107 に答える
1

したがって、意味のあるコマンドを実行しようとするときは、http://localhost:9200/_plugin/marvel/sense/index.htmlを使用する代わりに、サーバーがホストされているマシンの IP アドレスを使用してみてください。これは私にとってはうまくいきました。

于 2015-09-22T19:26:20.600 に答える
1

ES クラスター ログ (1 つのノード内) で、次のような行を見つけます。

[INFO ][http ] [c7_64] bound_address {inet[/0:0:0:0:0:0:0:0:9201]}, publish_address {inet[/192.168.88.128:9201]}

あなたは の後にあるものに興味がありますpublish_address。Sense にアクセスするときは、そこに表示されている IP:PORT を使用します。私の例では、センス URL は次のようになります。

http://192.168.88.128:9201/_plugin/marvel/sense/index.html

CORS 部分は、Marvel が別のクラスターにインストールされているシナリオでほとんど有効であり、監視対象ノードと同じクラスターに Marvel がインストールされている場合は必要ありません。また、Shield がクラスターにインストールされている場合にも必要です。

于 2015-10-13T07:04:02.873 に答える
0

私も同じ問題を抱えていました。サーバー フィールドが空白でないことを確認します。ローカルでフィールドに入力した後、私の問題は解決しました

于 2015-09-03T10:09:47.330 に答える
0

マーベルとは厳密には関係ありませんが、サーバーの「外部」からelasticsearchに接続する際に問題が発生した場合は、必要があります。

elasticsearch.ymlホストがリッスンしている構成を変更します -すべてのネットワーク インターフェイスをリッスンします

network.host: 0.0.0.0

その後、サーバーによっては、ファイアウォールで tcp ポートを開く必要があります (elasticsearch のデフォルト ポートを使用する場合: 9200)。たとえば、Centos (または RHEL) では、次を実行する必要があります。

sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
sudo firewall-cmd --reload
于 2017-03-14T07:29:27.457 に答える