Когда я попытался подключиться к Elasticsearch с помощью,
curl http://localhost:9200
он работал нормально.
Но когда я запускаю, curl http://IpAddress:9200
он выдает ошибку, говоря
Не удалось подключиться к порту localhost 9200: в соединении отказано
Как устранить эту ошибку?
elasticsearch
подбородок2580
источник
источник
curl -X GET "http://localhost:9200"
Ответы:
По умолчанию он должен быть привязан ко всем локальным адресам. Итак, если у вас нет проблемы сетевого уровня с брандмауэрами, единственный параметр ES, который я могу проверить, - это
network.bind_host
убедиться, что он либо не установлен, либо установлен на0.0.0.0
или::0
или на правильный IP-адрес для вашей сети.Обновление:
network.host
вместо комментариев в ES 2.3 вы должны установить .источник
network.bind_host
значение, и моя проблема заключалась в том , чтобы оставить его неустановленным.Отредактируйте
/etc/elasticsearch/elasticsearch.yml
и добавьте следующую строку:Это «сбросит» этот параметр и разрешит соединения с других IP-адресов.
источник
/Applications/elasticsearch-2.1.1/config/elasticsearch.yml
, а параметр, который мне пришлось редактировать, былnetwork.host
notnetwork.bind_host
.curl http://172.17.0.2:9200
. Вы узнаете, что это обычно используемый IP-адрес докеров.Пробовал все на этой странице, и помогли только инструкции отсюда .
в
/etc/default/elasticsearch
убедитесь, что они не прокомментированы:убедитесь, что
/var/lib/elasticsearch
принадлежит пользователю elasticsearch:источник
chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/
и без комментариевSTART_DAEMON=true
sudo systemctl restart elasticsearch
как ответил @kalanit, решило проблемуВ моем случае был запущен elasticsearch. Но все еще имел
Следующая команда была неудачной
Чтобы заставить его работать, мне пришлось вместо этого запустить
Потом все прошло нормально.
источник
sudo systemctl enable elasticsearch
.systemctl
работает, а служба нет?Почему бы вам не начать с этой командной строки:
Я сделал это и получил:
Затем отредактировал
/etc/elasticsearch/jvm.options
файл:Это сработало как шарм.
источник
Ни одно из предложенных здесь решений не сработало для меня, но в конечном итоге он заработал, добавив в
elasticsearch.yml
После этого я перезапустил службу, и теперь я могу использовать
curl
ее как внутри виртуальной машины, так и извне. По какой-то странной причине мне пришлось попробовать несколько разных вариантовcurl
вызова внутри виртуальной машины, прежде чем он сработал:Примечание: я использую Elasticsearch 5.5 в Ubuntu 14.04.
источник
убедитесь, что сервер запущен. Я видел эту проблему, когда у моей виртуальной машины было слишком мало ОЗУ и es не мог запуститься.
приведенное выше покажет вам, действительно ли es запущен.
источник
Для этой проблемы мне пришлось использовать:
sudo /usr/share/elasticsearch/bin/elasticsearch start
чтобы получить что-то на портах 9200/9300 (sudo netstat -ntlp) и ответ на:
curl -XGET http://localhost:9200
источник
Отредактируйте
elasticsearch.yml
и добавьте следующую строкуnetwork.host: 0.0.0.0
не работал дляисточник
Откройте файл Dockerfile в папке elasticsearch и обновите network.host = 0.0.0.0 на network.host = 127.0.0.1 . Затем перезапустите контейнер. Проверьте ваше соединение с помощью curl.
источник
У меня была такая же проблема с отказом от соединений на порту 9200. Проверьте статус службы elasticsearch с помощью команды
sudo service elasticsearch status
. Если он выдает ошибку и вы читаете что-либо, связанное с Java, вероятно, проблема в вашей памяти jvm. Вы можете редактировать его в формате/etc/elasticsearch/jvm.options
. Для машины с оперативной памятью 1 ГБ в среде Amazon я сохранил свою конфигурацию:После настройки и перезапуска службы elasticsearch все заработало как шарм. Также должна быть полезна проверка Nmap и UFW (если вы используете локальный брандмауэр).
источник
У меня возникла аналогичная проблема.
Вот как я это решил
Выполните служебную команду ниже, чтобы запустить ElasticSearch.
ИЛИ
Если вы все еще получаете ошибку
Запустите служебную команду ниже, чтобы проверить статус ElasticSearch.
ИЛИ
Если вы получили ответ ( Active: active (running) ), как показано ниже, значит ElasticSearch активен и работает.
Затем вы можете проверить, работает ли ваш узел Elasticsearch , отправив HTTP-запрос на порт 9200 на локальном хосте, используя следующую команду:
В противном случае, если вы получите другой ответ, вам может потребоваться дополнительная отладка, чтобы исправить это, но выполнение приведенной ниже команды поможет вам определить, какие предостережения удерживают запуск службы ElasticSearch .
ИЛИ
Если вы хотите остановить службу ElasticSearch , просто выполните команду службы ниже;
ИЛИ
Н / Д: вам может потребоваться запускать команду
sudo service elasticsearch status
ИЛИsudo systemctl status elasticsearch
каждый раз, когда вы сталкиваетесь с ошибкой, чтобы узнать состояние службы ElasticSearch .Это также применимо к Kibana : запускайте команду
sudo service kibana status
ИЛИsudo systemctl status kibana
каждый раз, когда вы сталкиваетесь с ошибкой, чтобы узнать состояние службы Kibana .Вот и все.
Надеюсь, это поможет.
источник
В этом случае, прежде всего, вам нужно проверить версию Java, используя следующую команду:
после выполнения этой команды вы получите что-то вроде этого:
затем используйте эту команду:
и выберите версию ниже
Введите, чтобы сохранить текущий выбор [+], или введите номер выбора: 2
источник
Мои 2 цента,
Я просто выполнил процедуру установки в Digital Ocean, очевидно, пакет, доступный в репозиториях, не обновлен, я удалил все и выполнил процедуру установки прямо из Elastic Search, и теперь все работает, в основном поведение из коробки включено локальный хост, указывающий на 9200. То же самое / проблема, что и с Kibana, решением для меня тоже было удалить все и просто следовать их процедуре. Надеюсь, это сэкономит кому-то два часа (время, которое я потратил на выяснение того, как настроить ELK!)
en
источник
Обновите свой jdk до последней минимальной версии для вашего elasticsearch.
источник
Измените network.bind на 0.0.0.0 и http: port на 9200. Адрес привязки 0.0.0.0 означает все адреса IPv4 на локальном компьютере. Если у хоста два IP-адреса, 192.168.1.1 и 10.1.2.1, и сервер, работающий на хосте, прослушивает 0.0.0.0, он будет доступен по обоим этим IP-адресам.
источник
Если вы столкнулись с ошибкой в соединении , просто запустите приведенную ниже команду, чтобы проверить состояние службы ElasticSearch.
Это поможет вам расшифровать состояние службы ElasticSearch и что с этим делать.
источник
Бесполезно для 7.5.0 и выше.
источник
После использования некоторых из приведенных выше ответов не забывайте, что после правильной установки может потребоваться полная перезагрузка.
источник
Чтобы добавить к этому, я наткнулся на множество документов через Google, в которых говорилось, что для network.host нужно указать localhost.
Это привело к отказу в печально известной связи. Вы должны использовать IP-адрес (127.0.0.1), а не полное доменное имя.
Джефф
источник
Убедитесь, что порт
9200
открыт для моего случая, это был экземпляр Amazon, поэтому, когда я открыл его в своей группе безопасности, команда curl сработала.источник
Отключение SELinux у меня сработало, хотя я этого не предлагаю - я сделал это только для PoC
источник
Моя проблема заключалась в том, что я не мог работать,
localhost
мне нужно было установить его на IP-адрес localhostnetwork.bind_host: 127.0.0.1
источник
В моем случае проблема связана с версией java, которую я установил
open-jdk 11
ранее. Это создает проблему при запуске службы. Я поменялopen-jdk 8
и он заработалисточник