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

Установка Elasticsearch с пакетом Debian

Пакет Debian для Elasticsearch можно скачать с нашего веб-сайта или из нашего репозитория APT. Его можно использовать для установки Elasticsearch на любой системе на базе Debian, например, Debian и Ubuntu.

Этот пакет содержит как бесплатные, так и подписные функции. Начните 30-дневную пробную версию, чтобы опробовать все функции.

Самую последнюю стабильную версию Elasticsearch можно найти на странице Загрузка Elasticsearch. Другие версии можно найти на странице Предыдущие версии.

Elasticsearch включает в себя интегрированную версию OpenJDK от разработчиков JDK (GPLv2+CE). Чтобы использовать свою собственную версию Java, см. требования к версии JVM

Импорт ключа PGP Elasticsearch

Мы подписываем все наши пакеты с помощью ключа подписи Elasticsearch (ключ PGP D88E42B4, доступный на https://pgp.mit.edu) с отпечатком:

4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4

Загрузите и установите открытый ключ подписи:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Установка из репозитория APT

Возможно, вам потребуется установить пакет apt-transport-https в Debian, прежде чем продолжить:

sudo apt-get install apt-transport-https

Сохраните определение репозитория в /etc/apt/sources.list.d/elastic-8.x.list:

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

Эти инструкции не используют add-apt-repository по нескольким причинам:

  1. add-apt-repository добавляет записи в системный файл /etc/apt/sources.list, а не чистый файл на репозиторий в /etc/apt/sources.list.d
  2. add-apt-repository не входит в стандартную установку многих дистрибутивов и требует ряда дополнительных зависимостей.
  3. Старые версии add-apt-repository всегда добавляют запись deb-src, которая приведет к ошибкам, поскольку мы не предоставляем пакет исходного кода. Если вы добавили запись deb-src, вы увидите ошибку, подобную следующей, пока не удалите строку deb-src:

    Unable to find expected entry 'main/source/Sources' in Release file
    (Wrong sources.list entry or malformed file)

Вы можете установить пакет Elasticsearch Debian с помощью:

sudo apt-get update && sudo apt-get install elasticsearch

Если существуют две записи для одного и того же репозитория Elasticsearch, во время apt-get update вы увидите ошибку, подобную этой:

Duplicate sources.list entry https://artifacts.elastic.co/packages/8.x/apt/ ...`

Проверьте /etc/apt/sources.list.d/elasticsearch-8.x.list на наличие дублирующей записи или найдите ее среди файлов в /etc/apt/sources.list.d/ и файле /etc/apt/sources.list.

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

Загрузка и установка пакета Debian вручную

Пакет Debian для Elasticsearch v8.17.3 можно загрузить с веб-сайта и установить следующим образом:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.3-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.3-amd64.deb.sha512
shasum -a 512 -c elasticsearch-8.17.3-amd64.deb.sha512 
sudo dpkg -i elasticsearch-8.17.3-amd64.deb

Сравнивает SHA загруженного пакета Debian с опубликованной контрольной суммой, что должно вывести elasticsearch-{version}-amd64.deb: OK.

Запуск 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 в файле 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.

Проверка работы 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 содержит конфигурацию по умолчанию для Elasticsearch. Владение этой директорией и всеми содержащимися в ней файлами устанавливается на root:elasticsearch при установке пакета.

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

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

Пакет Debian также имеет системный файл конфигурации (/etc/default/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, Beats, автономные агенты Elastic и Logstash, должны проверить, что они доверяют сертификату, используемому Elasticsearch для HTTPS. Сервер Fleet и управляемые Fleet-агенты Elastic автоматически настраиваются на доверие сертификату 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.

Схема расположения файлов пакета Debian

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

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

home

Каталог Elasticsearch или $ES_HOME

/usr/share/elasticsearch

bin

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

/usr/share/elasticsearch/bin

conf

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

/etc/elasticsearch

ES_PATH_CONF

conf

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

/etc/default/elasticsearch

conf

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

/etc/elasticsearch/certs

data

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

/var/lib/elasticsearch

path.data

jdk

Встроенный Java Development Kit, используемый для запуска Elasticsearch. Может быть переопределён путём установки переменной среды ES_JAVA_HOME в /etc/default/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
Сертификат центра сертификации, используемый для подписания сертификатов для уровня 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/deb.html

Spec-Zone.ru

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