Запуск 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
Архивные пакеты (.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