Spec-Zone.ru › Elasticsearch 8
›Руководство по Elasticsearch [8.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

Чтобы узнать пошагово, как установить Elastic Stack на вашем собственном сервере, попробуйте наш учебник: Установка управляемого самостоятельно Elastic Stack.

Импорт ключа 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 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.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 v8.17.3 можно загрузить с сайта и установить следующим образом:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.3-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.3-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-8.17.3-x86_64.rpm.sha512 
sudo rpm --install elasticsearch-8.17.3-x86_64.rpm

Сравнивает SHA загруженного RPM-пакета и опубликованную контрольную сумму, которая должна вывести elasticsearch-{version}-x86_64.rpm: OK.

В дистрибутивах на базе systemd скрипты установки попытаются установить параметры ядра (например, vm.max_map_count); вы можете пропустить это, замаскировав системный блок systemd-sysctl.service.

Запуск Elasticsearch с включенной безопасностью

При установке Elasticsearch функции безопасности включены и настраиваются по умолчанию. При установке Elasticsearch происходит следующая конфигурация безопасности автоматически:

  • Аутентификация и авторизация включены, и пароль сгенерирован для встроенного суперпользователя elastic.
  • Сертификаты и ключи для TLS создаются для транспортного и HTTP-слоев, и TLS включен и настроен с этими ключами и сертификатами.

Пароль, сертификаты и ключи выводятся в ваш терминал. Вы можете сбросить пароль пользователя elastic с помощью команды elasticsearch-reset-password.

Рекомендуется сохранять пароль elastic как переменную окружения в вашей оболочке. Например:

export ELASTIC_PASSWORD="your_password"

Переконфигурация узла для присоединения к существующему кластеру

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

  1. На любом узле в вашем существующем кластере сгенерируйте токен регистрации узла:

    /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
  2. Скопируйте токен регистрации, который выводится в ваш терминал.
  3. На вашем новом узле Elasticsearch передайте токен регистрации в качестве параметра инструменту elasticsearch-reconfigure-node:

    /usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <enrollment-token>

    Elasticsearch теперь настроен для присоединения к существующему кластеру.

  4. Запустите ваш новый узел с помощью systemd.

Включение автоматического создания системных индексов

Некоторые коммерческие функции автоматически создают индексы в 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, и точное значение будет зависеть от вашей локальной конфигурации. Если вы не уверены в правильном значении для вашей среды, вы можете установить значение на *, что позволит автоматически создавать все индексы.

Запуск Elasticsearch

Для автоматической загрузки 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 пароль хранилища ключей с помощью локального файла и системных переменных среды. Этот локальный файл должен быть защищен во время его существования и может быть безопасно удален после запуска 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.

При включении 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 работает, отправив запрос HTTPS на порт 9200 на localhost:

curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200 

Убедитесь, что вы используете https в своем вызове, иначе запрос не удастся.

--cacert
Путь к сгенерированному сертификату http_ca.crt для HTTP-слоя.

Вызов возвращает ответ примерно такого вида:

{
  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "8.17.3",
    "build_type" : "tar",
    "build_hash" : "f27399d",
    "build_flavor" : "default",
    "build_date" : "2016-03-30T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "9.12.0",
    "minimum_wire_compatibility_version" : "1.2.3",
    "minimum_index_compatibility_version" : "1.2.3"
  },
  "tagline" : "You Know, for Search"
}

Настройка Elasticsearch

Директория /etc/elasticsearch содержит стандартную конфигурацию runtime Elasticsearch. Владение этой директорией и всеми содержащимися в ней файлами устанавливается как root:elasticsearch при установке пакета.

Флаг setgid применяет групповые разрешения к директории /etc/elasticsearch, чтобы обеспечить Elasticsearch доступ для чтения любых содержащихся файлов и поддиректорий. Все файлы и поддиректории наследуют владение root:elasticsearch. Для выполнения команд из этой директории или любых поддиректорий, таких как elasticsearch-keystore tool, требуются разрешения root:elasticsearch.

Elasticsearch по умолчанию загружает конфигурацию из файла /etc/elasticsearch/elasticsearch.yml. Формат этого файла конфигурации описан в Настройка Elasticsearch.

В RPM также есть системный файл конфигурации (/etc/sysconfig/elasticsearch), который позволяет настраивать следующие параметры:

ES_JAVA_HOME

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

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 для получения дополнительной информации.

Подключение клиентов к Elasticsearch

При первом запуске Elasticsearch TLS настраивается автоматически для HTTP-слоя. Сертификат CA генерируется и хранится на диске по адресу:

/etc/elasticsearch/certs/http_ca.crt

Шестнадцатеричный отпечаток SHA-256 этого сертификата также выводится на терминал. Все клиенты, подключающиеся к Elasticsearch, такие как Elasticsearch Clients, Beats, автономные Elastic Agents и Logstash, должны проверить, что они доверяют сертификату, используемому Elasticsearch для HTTPS. Fleet Server и управляемые Fleet Elastic Agents автоматически настраиваются на доверие сертификату CA. Другие клиенты могут установить доверие, используя либо отпечаток сертификата CA, либо сам сертификат CA.

Если процесс автоматической настройки уже завершен, вы все равно можете получить отпечаток сертификата безопасности. Вы также можете скопировать сертификат CA на свой компьютер и настроить своего клиента на его использование.

Использование отпечатка CA

Скопируйте значение отпечатка, выведенное на ваш терминал при запуске Elasticsearch, и настройте своего клиента на использование этого отпечатка для установления доверия при подключении к Elasticsearch.

Если процесс автоматической настройки уже завершен, вы все равно можете получить отпечаток сертификата безопасности, выполнив следующую команду. Путь указан к автоматически сгенерированному сертификату CA для HTTP-слоя.

openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt

Команда возвращает сертификат безопасности, включая отпечаток. issuer должен быть Elasticsearch security auto-configuration HTTP CA.

issuer= /CN=Elasticsearch security auto-configuration HTTP CA
SHA256 Fingerprint=<fingerprint>
Использование сертификата CA

Если ваша библиотека не поддерживает метод проверки отпечатка, автоматически сгенерированный сертификат CA создается в следующей директории на каждом узле Elasticsearch:

/etc/elasticsearch/certs/http_ca.crt

Скопируйте файл http_ca.crt на свой компьютер и настройте своего клиента на использование этого сертификата для установления доверия при подключении к Elasticsearch.

Схема расположения директорий 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

conf

Сгенерированные ключи и сертификаты TLS для транспортного и http-слоев.

/etc/elasticsearch/certs

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, которые используются для подключения экземпляра Kibana к защищенному кластеру Elasticsearch и для шифрования межузлового взаимодействия. Файлы перечислены здесь для справки.

http_ca.crt
Сертификат CA, который используется для подписи сертификатов для HTTP-слоя этого кластера Elasticsearch.
http.p12
Хранилище ключей, содержащее ключ и сертификат для HTTP-слоя для этого узла.
transport.p12
Хранилище ключей, содержащее ключ и сертификат для транспортного уровня для всех узлов в вашем кластере.

http.p12 и transport.p12 — защищенные паролем хранилища ключей PKCS#12. Elasticsearch хранит пароли для этих хранилищ ключей в качестве защищенных параметров. Для получения паролей, чтобы вы могли проверить или изменить содержимое хранилища ключей, используйте инструмент bin/elasticsearch-keystore.

Используйте следующую команду для получения пароля для http.p12:

bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password

Используйте следующую команду для получения пароля для transport.p12:

bin/elasticsearch-keystore show xpack.security.transport.ssl.keystore.secure_password

Дальнейшие шаги

Теперь у вас настроена тестовая среда 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/8.17/rpm.html

END_OF_DOCUMENT_MARKER

Spec-Zone.ru

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