Установка 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
| Используйте | |
| Используйте | |
| Используйте |
Настроенный репозиторий по умолчанию отключен. Это устраняет возможность случайного обновления 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-пакета и опубликованную контрольную сумму, которая должна вывести |
В дистрибутивах на базе 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 процесс установки по умолчанию настраивает кластер из одного узла. Если вы хотите, чтобы узел присоединился к существующему кластеру, сгенерируйте токен регистрации на существующем узле до запуска нового узла впервые.
-
На любом узле в вашем существующем кластере сгенерируйте токен регистрации узла:
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
- Скопируйте токен регистрации, который выводится в ваш терминал.
-
На вашем новом узле Elasticsearch передайте токен регистрации в качестве параметра инструменту
elasticsearch-reconfigure-node:/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <enrollment-token>
Elasticsearch теперь настроен для присоединения к существующему кластеру.
- Запустите ваш новый узел с помощью
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
| Убедитесь, что вы используете
|
Вызов возвращает ответ примерно такого вида:
{
"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), который позволяет настраивать следующие параметры:
| | Установите пользовательский путь к Java. |
| | Директория файла конфигурации (которая должна содержать файлы |
| | Любые дополнительные системные свойства JVM, которые вы хотите применить. |
| | Настройка перезапуска при обновлении пакета, по умолчанию |
Распределения, использующие 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 или |
| |
bin | Скрипты бинарных файлов, включая |
| |
conf | Файлы конфигурации, включая |
| |
conf | Переменные среды, включая размер кучи, дескрипторы файлов. |
| |
conf | Сгенерированные ключи и сертификаты TLS для транспортного и http-слоев. |
| |
data | Местоположение файлов данных каждого индекса/фрагмента, выделенного на узле. |
|
|
jdk | Встроенный Java Development Kit, используемый для запуска Elasticsearch. Может быть переопределен установкой переменной среды |
| |
logs | Расположение файлов логов. |
|
|
plugins | Расположение файлов плагинов. Каждый плагин будет содержаться в поддиректории. |
| |
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