Ответ 1
В тестовой среде я добавил следующий параметр elasticsearch.yml
и/или kibana.yml
xpack.security.enabled: false
Я только начинаю использовать elasticsearch. Создал индекс с настройками по умолчанию (5 осколков, 1 реплика). Затем я проиндексировал ~ 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-клиента с помощью org.elasticsearch.plugin:shield
. Вероятно, последняя версия зависимости от экрана (2.3.3) несовместима с зависимостью elasticsearch (5.0.0-alpha).
Ну, я могу просто отключить аутентификацию?
Из node config:
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, если вам не нравится имя
Если вы запустите докер, вы можете использовать его. перейдите к bash в докере с командой
docker exec -i -t elasticsearch /bin/bash
затем удалите x-pack
elasticsearch-plugin remove x-pack
выход в докер
exit
и перезагрузите изображение докеров
docker restart elasticsearch
Disclamer: решение, вдохновленное Michał Dymel
Мне удалось аутентифицироваться, используя этот 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_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.