Spec-Zone.ru › Elasticsearch 7
›Руководство по Elasticsearch [7.17] ›Настройка Elasticsearch

Запуск Elasticsearch

Способ запуска Elasticsearch зависит от способа его установки.

Архивные пакеты (.tar.gz)

Если вы установили Elasticsearch с помощью пакета .tar.gz, вы можете запустить Elasticsearch из командной строки.

Запуск Elasticsearch из командной строки

Elasticsearch можно запустить из командной строки следующим образом:

./bin/elasticsearch

Если хранилище ключей Elasticsearch защищено паролем, вам будет предложено ввести пароль хранилища ключей. Подробности см. в разделе Настройки безопасности.

По умолчанию Elasticsearch выводит свои логи в консоль (stdout) и в файл <cluster name>.log в каталоге каталог логов. Elasticsearch записывает некоторую информацию во время запуска, но после завершения инициализации он продолжит работу в фоновом режиме и не будет ничего записывать в лог, пока не произойдёт событие, требующее записи. Во время работы Elasticsearch вы можете взаимодействовать с ним через его HTTP-интерфейс, который по умолчанию находится на порту 9200. Для остановки Elasticsearch нажмите Ctrl-C.

Все скрипты, входящие в пакет Elasticsearch, требуют версию Bash, поддерживающую массивы, и предполагают, что Bash доступен по адресу /bin/bash. Таким образом, Bash должен быть доступен по этому пути, либо напрямую, либо через символическую ссылку.

Запуск в качестве демона

Для запуска Elasticsearch в качестве демона укажите -d в командной строке и запишите идентификатор процесса в файл с помощью опции -p:

./bin/elasticsearch -d -p pid

Если хранилище ключей Elasticsearch защищено паролем, вам будет предложено ввести пароль хранилища ключей. Подробности см. в разделе Настройки безопасности.

Сообщения в логах можно найти в каталоге $ES_HOME/logs/.

Для остановки Elasticsearch, выполните команду завершения процесса по идентификатору, записанному в файле pid:

pkill -F pid

Пакет Elasticsearch .tar.gz не включает модуль systemd. Для управления Elasticsearch в качестве службы используйте пакет Debian или RPM вместо этого.

Архивные пакеты (.zip)

Если вы установили Elasticsearch на Windows с помощью пакета .zip, вы можете запустить Elasticsearch из командной строки. Если вы хотите, чтобы Elasticsearch запускался автоматически при загрузке системы без какого-либо пользовательского взаимодействия, установите Elasticsearch в качестве службы.

Запуск Elasticsearch из командной строки

Elasticsearch можно запустить из командной строки следующим образом:

.\bin\elasticsearch.bat

Если хранилище ключей Elasticsearch защищено паролем, вам будет предложено ввести пароль хранилища ключей. Подробности см. в разделе Настройки безопасности.

По умолчанию Elasticsearch выводит свои логи в консоль (STDOUT) и в файл <cluster name>.log в каталоге каталог логов. Elasticsearch записывает некоторую информацию во время запуска, но после завершения инициализации он продолжит работу в фоновом режиме и не будет ничего записывать в лог, пока не произойдёт событие, требующее записи. Во время работы Elasticsearch вы можете взаимодействовать с ним через его HTTP-интерфейс, который по умолчанию находится на порту 9200. Для остановки Elasticsearch нажмите Ctrl-C.

Пакеты Debian

Elasticsearch не запускается автоматически после установки. Способ запуска и остановки Elasticsearch зависит от того, использует ли ваша система SysV init или systemd (используется новыми дистрибутивами). Определить, какой используется, можно выполнив эту команду:

ps -p 1

Запуск Elasticsearch с SysV init

Используйте команду update-rc.d для настройки Elasticsearch на автоматический запуск при загрузке системы:

sudo update-rc.d elasticsearch defaults 95 10

Elasticsearch можно запустить и остановить, используя команду service:

sudo -i service elasticsearch start
sudo -i service elasticsearch stop

Если Elasticsearch не удалось запустить по какой-либо причине, причина будет выведена в STDOUT. Файлы логов находятся в /var/log/elasticsearch/.

Запуск Elasticsearch с systemd

Для настройки Elasticsearch на автоматический запуск при загрузке системы, выполните следующие команды:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

Elasticsearch можно запустить и остановить следующим образом:

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

Эти команды не предоставляют обратной связи о успешном или неуспешном запуске Elasticsearch. Вместо этого эта информация записывается в файлы логов, расположенные в /var/log/elasticsearch/.

Если вы защитили хранилище ключей Elasticsearch паролем, вам потребуется предоставить systemd пароль хранилища ключей с помощью локального файла и переменных среды systemd. Этот локальный файл должен быть защищён во время своего существования и может быть безопасно удалён после запуска Elasticsearch.

echo "keystore_password" > /path/to/my_pwd_file.tmp
chmod 600 /path/to/my_pwd_file.tmp
sudo systemctl set-environment ES_KEYSTORE_PASSPHRASE_FILE=/path/to/my_pwd_file.tmp
sudo systemctl start elasticsearch.service

По умолчанию служба Elasticsearch не регистрирует информацию в журнале systemd. Для включения журнала journalctl, опция --quiet должна быть удалена из командной строки ExecStart в файле elasticsearch.service.

При включённом журнале systemd, информация о логах доступна с помощью команд journalctl:

Для просмотра журнала:

sudo journalctl -f

Для отображения записей журнала для службы elasticsearch:

sudo journalctl --unit elasticsearch

Для отображения записей журнала для службы elasticsearch, начиная с заданного времени:

sudo journalctl --unit elasticsearch --since  "2016-10-30 18:17:16"

Дополнительные параметры командной строки см. в man journalctl или https://www.freedesktop.org/software/systemd/man/journalctl.html.

Таймауты запуска со старыми версиями systemd

По умолчанию Elasticsearch устанавливает параметр TimeoutStartSec на systemd для 900s. Если вы используете версию systemd не менее 238, Elasticsearch может автоматически продлить таймаут запуска, и будет повторять это, пока запуск не завершится, даже если он займет больше 900 секунд.

Версии systemd до 238 не поддерживают механизм продления таймаута и завершат процесс Elasticsearch, если он не полностью запустится в течение заданного таймаута. В этом случае Elasticsearch сообщит в своих логах, что он был остановлен нормально, через некоторое время после запуска:

[2022-01-31T01:22:31,077][INFO ][o.e.n.Node               ] [instance-0000000123] starting ...
...
[2022-01-31T01:37:15,077][INFO ][o.e.n.Node               ] [instance-0000000123] stopping ...

Однако лог systemd укажет, что запуск истек по таймауту:

Jan 31 01:22:30 debian systemd[1]: Starting Elasticsearch...
Jan 31 01:37:15 debian systemd[1]: elasticsearch.service: Start operation timed out. Terminating.
Jan 31 01:37:15 debian systemd[1]: elasticsearch.service: Main process exited, code=killed, status=15/TERM
Jan 31 01:37:15 debian systemd[1]: elasticsearch.service: Failed with result 'timeout'.
Jan 31 01:37:15 debian systemd[1]: Failed to start Elasticsearch.

Чтобы этого избежать, обновите вашу версию systemd до версии не менее 238. Вы также можете временно обойти проблему, продлив параметр TimeoutStartSec.

Изображения Docker

Если вы установили образ Docker, вы можете запустить Elasticsearch из командной строки. Существуют различные методы, в зависимости от того, используете ли вы режим разработки или режим производства. См. Docker Run.

Пакеты RPM

Elasticsearch не запускается автоматически после установки. Способ запуска и остановки Elasticsearch зависит от того, использует ли ваша система SysV init или systemd (используется новыми дистрибутивами). Определить, какой используется, можно выполнив эту команду:

ps -p 1

Запуск Elasticsearch с SysV init

Используйте команду chkconfig для настройки Elasticsearch на автоматический запуск при загрузке системы:

sudo chkconfig --add elasticsearch

Elasticsearch можно запустить и остановить, используя команду service:

sudo -i service elasticsearch start
sudo -i service elasticsearch stop

Если Elasticsearch не удалось запустить по какой-либо причине, причина будет выведена в STDOUT. Файлы логов находятся в /var/log/elasticsearch/.

Запуск Elasticsearch с systemd

Для настройки Elasticsearch на автоматический запуск при загрузке системы, выполните следующие команды:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

Elasticsearch можно запустить и остановить следующим образом:

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

Эти команды не предоставляют обратной связи о успешном или неуспешном запуске Elasticsearch. Вместо этого эта информация записывается в файлы логов, расположенные в /var/log/elasticsearch/.

Если вы защитили хранилище ключей Elasticsearch паролем, вам потребуется предоставить systemd пароль хранилища ключей с помощью локального файла и переменных среды systemd. Этот локальный файл должен быть защищён во время своего существования и может быть безопасно удалён после запуска Elasticsearch.

echo "keystore_password" > /path/to/my_pwd_file.tmp
chmod 600 /path/to/my_pwd_file.tmp
sudo systemctl set-environment ES_KEYSTORE_PASSPHRASE_FILE=/path/to/my_pwd_file.tmp
sudo systemctl start elasticsearch.service

По умолчанию служба Elasticsearch не регистрирует информацию в журнале systemd. Для включения журнала journalctl, опция --quiet должна быть удалена из командной строки ExecStart в файле elasticsearch.service.

При включённом журнале systemd, информация о логах доступна с помощью команд journalctl:

Для просмотра журнала:

sudo journalctl -f

Для отображения записей журнала для службы elasticsearch:

sudo journalctl --unit elasticsearch

Для отображения записей журнала для службы elasticsearch, начиная с заданного времени:

sudo journalctl --unit elasticsearch --since  "2016-10-30 18:17:16"

Проверьте man journalctl или https://www.freedesktop.org/software/systemd/man/journalctl.html для получения дополнительных командных опций.

Таймауты запуска со старыми версиями systemd

По умолчанию Elasticsearch устанавливает параметр TimeoutStartSec на значение systemd в 900s. Если вы используете версию systemd не ниже 238, Elasticsearch может автоматически продлевать таймаут запуска, повторяя это до завершения запуска, даже если это займет более 900 секунд.

Версии systemd до 238 не поддерживают механизм продления таймаута и завершат процесс Elasticsearch, если он не запустится полностью в течение заданного таймаута. Если это произойдёт, Elasticsearch в своих логах сообщит о нормальном завершении работы через короткое время после запуска:

[2022-01-31T01:22:31,077][INFO ][o.e.n.Node               ] [instance-0000000123] starting ...
...
[2022-01-31T01:37:15,077][INFO ][o.e.n.Node               ] [instance-0000000123] stopping ...

Однако лог systemd будет сообщать о том, что запуск завершился по таймауту:

Jan 31 01:22:30 debian systemd[1]: Starting Elasticsearch...
Jan 31 01:37:15 debian systemd[1]: elasticsearch.service: Start operation timed out. Terminating.
Jan 31 01:37:15 debian systemd[1]: elasticsearch.service: Main process exited, code=killed, status=15/TERM
Jan 31 01:37:15 debian systemd[1]: elasticsearch.service: Failed with result 'timeout'.
Jan 31 01:37:15 debian systemd[1]: Failed to start Elasticsearch.

Чтобы избежать этого, обновите свою systemd до версии не ниже 238. Вы также можете временно обойти проблему, продлив параметр TimeoutStartSec.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/starting-elasticsearch.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API