Установка Elasticsearch с помощью RPM
RPM-пакет Elasticsearch можно скачать с нашего сайта или из нашего репозитория RPM. Он может быть использован для установки Elasticsearch на любую систему, основанную на RPM, такую как OpenSuSE, SLES, Centos, Red Hat и Oracle Enterprise.
Установка с помощью RPM не поддерживается на дистрибутивах со старыми версиями RPM, такими как SLES 11 и CentOS 5. Вместо этого обратитесь к установке Elasticsearch из архива на Linux или MacOS.
Этот пакет содержит как бесплатные, так и подписные функции. Начните 30-дневную пробную версию, чтобы опробовать все функции.
Последнюю стабильную версию Elasticsearch можно найти на странице Загрузка Elasticsearch. Другие версии можно найти на странице Предыдущие релизы.
Elasticsearch включает в себя интегрированную версию OpenJDK от разработчиков JDK (GPLv2+CE). Чтобы использовать свою собственную версию Java, см. требования к версии JVM.
Импорт ключа GPG Elasticsearch
Мы подписываем все наши пакеты с помощью ключа Elasticsearch Signing Key (PGP-ключ D88E42B4, доступный на https://pgp.mit.edu) с отпечатком:
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
Загрузите и установите открытый ключ подписи:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Установка из репозитория RPM
Создайте файл под названием elasticsearch.repo в директории /etc/yum.repos.d/ для дистрибутивов на основе RedHat или в директории /etc/zypp/repos.d/ для дистрибутивов на основе OpenSuSE, содержащий:
[elasticsearch] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=0 autorefresh=1 type=rpm-md
И ваш репозиторий готов к использованию. Теперь вы можете установить Elasticsearch с помощью одной из следующих команд:
sudo yum install --enablerepo=elasticsearch elasticsearch sudo dnf install --enablerepo=elasticsearch elasticsearch sudo zypper modifyrepo --enable elasticsearch && \ sudo zypper install elasticsearch; \ sudo zypper modifyrepo --disable elasticsearch
| Используйте | |
| Используйте | |
| Используйте |
Настроенный репозиторий по умолчанию отключен. Это предотвращает случайное обновление elasticsearch при обновлении остальной части системы. Каждая команда установки или обновления должна явно включить репозиторий, как указано в примерах команд выше.
Загрузка и ручная установка RPM
RPM для Elasticsearch версии 7.17.28 можно загрузить с сайта и установить следующим образом:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.28-x86_64.rpm wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.28-x86_64.rpm.sha512 shasum -a 512 -c elasticsearch-7.17.28-x86_64.rpm.sha512 sudo rpm --install elasticsearch-7.17.28-x86_64.rpm
| Сравнивает SHA загруженного RPM с опубликованной контрольной суммой, которая должна вывести |
В системах на основе systemd скрипты установки попытаются установить параметры ядра (например, vm.max_map_count); вы можете пропустить это, замаскировав службу systemd-sysctl.
Включить автоматическое создание системных индексов
Некоторые коммерческие функции автоматически создают индексы в Elasticsearch. По умолчанию Elasticsearch настроен на разрешение автоматического создания индексов, и дополнительные шаги не требуются. Однако, если вы отключили автоматическое создание индексов в Elasticsearch, вам необходимо настроить action.auto_create_index в elasticsearch.yml, чтобы разрешить коммерческим функциям создать следующие индексы:
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
Если вы используете Logstash или Beats, вам, скорее всего, потребуются дополнительные имена индексов в вашем параметре action.auto_create_index, а точное значение будет зависеть от вашей локальной конфигурации. Если вы не уверены в правильном значении для вашей среды, вы можете установить значение *, что позволит автоматически создать все индексы.
SysV init vs systemd
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. Если вы используете хотя бы версию 238 systemd, 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.
Проверка работы Elasticsearch
Вы можете проверить, что ваш узел Elasticsearch работает, отправив HTTP-запрос на порт 9200 на localhost:
GET /
который должен вернуть ответ примерно такого вида:
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "7.17.28",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "8.11.3",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
} Настройка Elasticsearch
Директория /etc/elasticsearch содержит стандартную конфигурацию Elasticsearch во время выполнения. При установке пакета права владения этой директорией и всеми содержащимися файлами устанавливаются на root:elasticsearch.
Флаг setgid применяет групповые права доступа к директории /etc/elasticsearch, гарантируя, что Elasticsearch может читать все содержащиеся файлы и подкаталоги. Все файлы и подкаталоги наследуют права владения root:elasticsearch. Для выполнения команд из этой директории или любых поддиректорий, таких как инструмент elasticsearch-keystore, требуются права root:elasticsearch.
Elasticsearch по умолчанию загружает конфигурацию из файла /etc/elasticsearch/elasticsearch.yml. Формат этого конфигурационного файла описан в Настройка Elasticsearch.
RPM также содержит системный конфигурационный файл (/etc/sysconfig/elasticsearch), который позволяет настроить следующие параметры:
| | Указывает пользовательский путь к Java. |
| | Максимальное количество открытых файлов, по умолчанию |
| | Максимальный размер заблокированной памяти. Устанавливается в |
| | Максимальное количество областей отображения памяти для процесса. Если вы используете |
| | Директория конфигурационных файлов (которая должна содержать файлы |
| | Любые дополнительные системные свойства JVM, которые вы хотите применить. |
| | Настройка перезапуска при обновлении пакета, по умолчанию |
Дистрибутивы, использующие systemd, требуют настройки ограничений системных ресурсов через systemd, а не через файл /etc/sysconfig/elasticsearch. Подробнее см. Настройка Systemd.
Структура директорий RPM
RPM размещает конфигурационные файлы, логи и директорию данных в соответствующих местах для систем на базе RPM:
| Тип | Описание | По умолчанию | Настройка |
|---|---|---|---|
home | Директория Elasticsearch home или |
| |
bin | Скрипты бинарных файлов, включая |
| |
conf | Конфигурационные файлы, включая |
| |
conf | Переменные окружения, включая размер кучи, дескрипторы файлов. |
| |
data | Расположение файлов данных каждого индекса/фрагмента, выделенного на узле. |
|
|
jdk | Встроенный Java Development Kit, используемый для запуска Elasticsearch. Может быть переопределён, установив переменную окружения |
| |
logs | Расположение файлов логов. |
|
|
plugins | Расположение файлов плагинов. Каждый плагин будет содержаться в поддиректории. |
| |
repo | Расположения репозиториев общей файловой системы. Могут содержать несколько расположений. Репозиторий файловой системы может быть размещён в любом подкаталоге любой указанной здесь директории. | Не настроено |
|
Следующие шаги
Теперь у вас настроена тестовая среда Elasticsearch. Перед началом серьезной разработки или переходом в производство с Elasticsearch, вам необходимо выполнить дополнительные настройки:
- Изучите, как настроить Elasticsearch.
- Настройте важные настройки Elasticsearch.
- Настройте важные системные настройки.
© 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/rpm.html