Вот как я решил
Во-первых, откройте /etc/elasticsearch/elasticsearch.yml
в вашем редакторе nano, используя следующую команду:
sudo nano /etc/elasticsearch/elasticsearch.yml
Ваши сетевые настройки должны быть:
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 127.0.0.1
#
# Set a custom port for HTTP:
#
http.port: 9200
Чтобы Elasticsearch разрешил подключения с любого хоста, а также прослушивал порт 9200
.
Далее, выполните приведенный ниже код, чтобы определитьпричина ошибки:
journalctl -xe
Ошибка 1
Недостаточно памяти для среды выполнения Java для продолжения
Решение
Откройте /etc/elasticsearch/jvm.options
в своем редакторе nano, используя следующую команду:
sudo nano /etc/elasticsearch/jvm.options
Отмените комментирование значений Xmx
и Xms
Итак, ваши настройки должны быть:
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g
Ошибка 2
начальный размер кучи не равен максимальному размеру кучи
Решение
Откройте /etc/elasticsearch/jvm.options
в вашем нано-редакторе, используя следующую команду:
sudo nano /etc/elasticsearch/jvm.options
Измените значения Xmx
и Xms
не более 50% вашей физической памяти. Значение этих параметров зависит от объема оперативной памяти, доступной на вашем сервере, и Elasticsearch требует памяти для целей, отличных от кучи JVM, и важно оставить для этого место.
Если ваша физическая память составляет <= 1 ГБ </strong>
Тогда ваши настройки должны быть такими:
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms128m
-Xmx128m
Если ваша физическая RAM составляет > = 1 ГБ
Тогда ваши настройки должны быть:
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g
Ошибка 3
настройки обнаружения по умолчанию не подходят для производственного использования;по крайней мере один из [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] должен быть настроен
Решение
Открыть /etc/elasticsearch/elasticsearch.yml
в вашем нано-редактореиспользуя следующую команду:
sudo nano /etc/elasticsearch/elasticsearch.yml
Ваши параметры обнаружения должны быть такими:
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.seed_hosts: []
Как только все ошибки будут исправлены, выполните команду ниже, чтобы запустить и подтвердить состояние Elasticsearch:
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch
Вот и все.
Надеюсь, это поможет