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

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

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

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

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

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

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

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

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

Некоторые коммерческие функции автоматически создают индексы в 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

Используйте команду update-rc.d для настройки Elasticsearch на автоматический запуск при загрузке системы:

sudo update-rc.d elasticsearch defaults 95 10

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

Пакет Debian также содержит системный конфигурационный файл (/etc/default/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 для получения дополнительной информации.

Структура каталогов пакета 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

data

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

/var/lib/elasticsearch

path.data

jdk

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

  • Изучите, как настроить 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/deb.html

Spec-Zone.ru

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