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

Установка 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 

Используйте yum в CentOS и более старых дистрибутивах на основе Red Hat.

Используйте dnf в Fedora и других более новых дистрибутивах на основе Red Hat.

Используйте zypper в дистрибутивах на основе OpenSUSE.

Настроенный репозиторий по умолчанию отключен. Это предотвращает случайное обновление 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 с опубликованной контрольной суммой, которая должна вывести elasticsearch-{version}-x86_64.rpm: OK.

В системах на основе 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), который позволяет настроить следующие параметры:

ES_JAVA_HOME

Указывает пользовательский путь к Java.

MAX_OPEN_FILES

Максимальное количество открытых файлов, по умолчанию 65535.

MAX_LOCKED_MEMORY

Максимальный размер заблокированной памяти. Устанавливается в unlimited, если вы используете опцию bootstrap.memory_lock в elasticsearch.yml.

MAX_MAP_COUNT

Максимальное количество областей отображения памяти для процесса. Если вы используете mmapfs в качестве типа хранилища индексов, убедитесь, что это значение установлено высоким. Для получения дополнительной информации ознакомьтесь с документацией ядра Linux по max_map_count. Устанавливается через sysctl перед запуском Elasticsearch. По умолчанию 262144.

ES_PATH_CONF

Директория конфигурационных файлов (которая должна содержать файлы elasticsearch.yml, jvm.options и log4j2.properties); по умолчанию /etc/elasticsearch.

ES_JAVA_OPTS

Любые дополнительные системные свойства JVM, которые вы хотите применить.

RESTART_ON_UPGRADE

Настройка перезапуска при обновлении пакета, по умолчанию false. Это означает, что вам придется перезапустить экземпляр Elasticsearch после ручного обновления пакета. Причина заключается в том, чтобы обеспечить, что обновления в кластере не приведут к непрерывному перераспределению фрагментов, что приведет к высокому сетевому трафику и снижению скорости отклика вашего кластера.

Дистрибутивы, использующие systemd, требуют настройки ограничений системных ресурсов через systemd, а не через файл /etc/sysconfig/elasticsearch. Подробнее см. Настройка Systemd.

Структура директорий RPM

RPM размещает конфигурационные файлы, логи и директорию данных в соответствующих местах для систем на базе RPM:

Тип Описание По умолчанию Настройка

home

Директория Elasticsearch home или $ES_HOME

/usr/share/elasticsearch

bin

Скрипты бинарных файлов, включая elasticsearch для запуска узла и elasticsearch-plugin для установки плагинов

/usr/share/elasticsearch/bin

conf

Конфигурационные файлы, включая elasticsearch.yml

/etc/elasticsearch

ES_PATH_CONF

conf

Переменные окружения, включая размер кучи, дескрипторы файлов.

/etc/sysconfig/elasticsearch

data

Расположение файлов данных каждого индекса/фрагмента, выделенного на узле.

/var/lib/elasticsearch

path.data

jdk

Встроенный Java Development Kit, используемый для запуска Elasticsearch. Может быть переопределён, установив переменную окружения ES_JAVA_HOME в /etc/sysconfig/elasticsearch.

/usr/share/elasticsearch/jdk

logs

Расположение файлов логов.

/var/log/elasticsearch

path.logs

plugins

Расположение файлов плагинов. Каждый плагин будет содержаться в поддиректории.

/usr/share/elasticsearch/plugins

repo

Расположения репозиториев общей файловой системы. Могут содержать несколько расположений. Репозиторий файловой системы может быть размещён в любом подкаталоге любой указанной здесь директории.

Не настроено

path.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

Spec-Zone.ru

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