elasticsearchを使い始めたところです。デフォルト設定(5シャード、1レプリカ)でインデックスを作成しました。次に、attachmentプラグインで〜13Gテキストファイルのインデックスを作成しました。その結果、Kibana Discoverでの検索が非常に遅くなりました。ただし、コンソールでの検索は高速です。
GET /mytext/_search
{
"fields": [ "file.name" ],
"query": {
"match": {
"file.content": "foobar"
}
},
"highlight": {
"fields": {
"file.content": {
}
}
}
}
なぜそんなに遅いのかを調べるために、X-Packをインストールしました。ガイドのドキュメントは包括的なものではないようで、セキュリティ設定を取得できませんでした。
elasticsearchのデフォルトのインストールはログインする必要はありませんが、インストール後にログインする必要があります X-Packプラグイン。 elasticsearch、kibana、x-packのセキュリティ設定と混同されていますが、ユーザーアカウントを共有していますか?結局のところ、私は認証が次のように動作するようになります:
curl -XPUT -uelastic:changeme 'localhost:9200/_shield/user/elastic/_password' -d '{ "password" : "newpass1" }'
curl -XPUT -uelastic:newpass1 'localhost:9200/_shield/user/kibana/_password' -d '{ "password" : "newpass2" }'
ここに問題があります。 Java client with org.elasticsearch.plugin:shield
]を使用してログインできない。
さて、認証を無効にすることはできますか?
ノード構成から:
GET http://localhost:9200/_nodes
"nodes" : {
"v_XmZh7jQCiIMYCG2AFhJg" : {
"transport_address" : "127.0.0.1:9300",
"version" : "5.0.0-alpha2",
"roles" : [ "master", "data", "ingest" ],
...
"settings" : {
"node" : {
"name" : "Apache Kid"
},
"http" : {
"type" : "security"
},
"transport" : {
"type" : "security",
"service" : {
"type" : "security"
}
},
...
だから、これらの設定を変更できますか、可能な値はありますか?
テスト環境で、次のオプションをelasticsearch.yml
および/またはkibana.yml
に追加しました
xpack.security.enabled: false
画像名がelasticsearchであると仮定します。名前が気に入らない場合はidを使用できます
dockerを実行する場合、これを使用できます。コマンドでdockerのbashに移動します
docker exec -i -t elasticsearch /bin/bash
次に、x-packを削除します
elasticsearch-plugin remove x-pack
終了ドッカー
exit
dockerイメージを再起動します
docker restart elasticsearch
Disclamer: MichałDymel に触発されたソリューション
Docker(ローカルdev)で使用する場合、xpackを削除する代わりに、単に無効にすることができます。
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.5.3
docker run -p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
docker.elastic.co/elasticsearch/elasticsearch:5.5.3
私はこれを使用して認証することに成功しましたxpack_security_enable
はfalseですが、まだkibanaログに認証エラーが表示されます。
elasticsearch:
image: elasticsearch:1.7.6
ports:
- ${PIM_ELASTICSEARCH_PORT}:9200
- 9300:9300
kibana:
image: docker.elastic.co/kibana/kibana:5.4.1
environment:
SERVER_NAME: localhost
ELASTICSEARCH_URL: http://localhost:9200
XPACK_SECURITY_ENABLED: 'false'
ports:
- 5601:5601
links:
- elasticsearch
depends_on:
- elasticsearch
これが私の現在の設定です。kibanaでいくつかのエラーが表示されます。 KIBANAダッシュボード
Kibanaログで私は見ることができます:
kibana_1 | {"type":"log","@timestamp":"2017-06-15T07:43:41Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"No living connections"}
kibana_1 | {"type":"log","@timestamp":"2017-06-15T07:43:42Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://localhost:9200/"}
そのため、認証を使用して接続しようとしているようです。
同じxpackの問題がありましたが、kibanaで次のコマンドで修正しました。
docker run docker.elastic.co/kibana/kibana:5.5.1 /bin/bash -c 'bin/kibana-plugin remove x-pack ; /usr/local/bin/kibana-docker'
そのため、コンテナを起動し、xpackを削除してから通常のプロセスを開始します。 elasticsearchとlogstashでも同じことができます。