Установка 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 по нескольким причинам:
-
add-apt-repositoryдобавляет записи в системный файл/etc/apt/sources.listвместо чистого файла репозитория в/etc/apt/sources.list.d -
add-apt-repositoryне входит в состав стандартной установки во многих дистрибутивах и требует ряда дополнительных зависимостей. -
Более старые версии
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. По умолчанию 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), который позволяет настроить следующие параметры:
| | Указать пользовательский путь к Java. |
| | Максимальное число открытых файлов, по умолчанию |
| | Максимальный размер заблокированной памяти. Устанавливается в |
| | Максимальное количество областей отображения памяти для процесса. Если вы используете |
| | Каталог конфигурационных файлов (который должен содержать файлы |
| | Любые дополнительные системные свойства JVM, которые вы хотите применить. |
| | Настроить перезапуск при обновлении пакета, по умолчанию |
Распределения, которые используют systemd, требуют, чтобы ограничения системных ресурсов настраивались через systemd, а не через файл /etc/sysconfig/elasticsearch. См. Настройка Systemd для получения дополнительной информации.
Структура каталогов пакета Debian
Пакет Debian размещает конфигурационные файлы, журналы и каталог данных в соответствующих расположениях для системы на основе Debian:
| Тип | Описание | Расположение по умолчанию | Настройка |
|---|---|---|---|
home | Домашний каталог Elasticsearch или |
| |
bin | Сценарии бинарных файлов, включая |
| |
conf | Конфигурационные файлы, включая |
| |
conf | Переменные среды, включая размер кучи, дескрипторы файлов. |
| |
data | Расположение файлов данных каждого индекса/фрагмента, выделенного на узле. |
|
|
jdk | Включенная среда разработки Java (JDK), используемая для запуска Elasticsearch. Может быть перезаписана путем установки переменной среды |
| |
logs | Расположение файлов журналов. |
|
|
plugins | Расположение файлов плагинов. Каждый плагин будет находиться в подкаталоге. |
| |
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