Elasticsearch на Ubuntu 22.04: Полная установка и настройка с нуля
Представьте мощный поиск, который работает на таких гигантах, как Википедия и GitHub. Теперь эта технология доступна и вам на Ubuntu 22.04!
Elasticsearch — это не просто поиск, это целая экосистема для работы с данными. Он умеет не только быстро находить информацию, но и интеллектуально её анализировать, понимая морфологию языка.
Вы хотите развернуть собственный поисковый сервер для своего проекта? Мы подготовили для вас пошаговое руководство, которое проведет вас от установки до полноценной работы.
Вы узнаете, как правильно добавить официальный репозиторий в систему, чтобы всегда получать свежие версии. Мы разберемся с запуском и тонкой настройкой для серверов с разным объемом оперативной памяти.
Особое внимание уделим безопасности. Начиная с версии 8.x, Elasticsearch включает авторизацию по умолчанию. Мы покажем, как управлять паролями и защитить ваш сервер от несанкционированного доступа.
Но на этом мы не остановимся. Для удобного управления индексами и данными мы установим Kibana — мощный веб-интерфейс. Вы научитесь генерировать токены доступа и проходить первоначальную настройку.
Готовы превратить ваш сервер в мощный поисковый центр? Всё необходимое ждет вас в полной версии статьи. Переходите и сделайте свой первый шаг в мир Elasticsearch прямо сейчас!
Elasticsearch - это популярное решение для организации полнотекстового поиска с открытым исходным кодом, на основе библиотеки Apache Lucene. Программа поддерживает продвинутую фильтрацию, различные типы поисковых запросов, морфологический анализ текстов и многое другое.
На сайте уже есть статьи о том как пользоваться фильтрами Elastic, а также как работает поиск. В этой статье мы рассмотрим как выполняется установка Elasticsearch в Ubuntu 22.04, а также как настроить авторизацию в Elasticsearch и как установить графический интерфейс Kibana для управления индексами.
Содержание статьи
Установка и настройка Elasticsearch в Ubuntu 22.04
1. Установка Elasticsearch
Способ установки последний версии Elasticsearch в Ubuntu только один. Надо добавить репозиторий разработчиков в систему и установить программу оттуда. Установите необходимые пакеты:
sudo apt install curl
Сначала добавьте GPG ключ репозитория:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch |sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Затем добавьте сам репозиторий. Для установки Elasticsearch 8.x добавьте такой репозиторий:
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
Затем обновите список доступных пакетов в репозиториях:
sudo apt update
И установите программу:
sudo apt install elasticsearch

Если вы устанавливаете Elasticsearch 8 и выше, то авторизация будет включена по умолчанию, тогда в выводе установки будут выведены сгенерированные пароли для пользователя elastic, запишите его где нибудь чтобы использовать в будущем.
2. Запуск Elasticsearch
После завершения установки вы можете запустить Elasticsearch с помощью systemd:
sudo systemctl start elasticsearch
Также можно добавить программу в автозагрузку и сразу же запустить:
sudo systemctl start --now elasticsearch
Для того чтобы убедится что запуск прошёл успешно выполните такую команду:
sudo systemctl status elasticsearch

Для того чтобы убедится что Elasticsearch работает, вы можете выполнить такой запрос с помощью curl:
curl -XGET https://127.0.0.1:9200 --insecure -u "elastic:пароль"

В качестве пароля надо передать пароль от пользователя elastic, который был сгенерирован при установке.
3. Настройка Elasticsearch
В конфигурационном файле /etc/elasticsearch/elasticsearch.yml можно настроить адрес и порт, на котором будет ожидать соединений Elasticsearch. За адрес отвечает http.host, а за порт http.port. По умолчанию используется IP адрес 0.0.0.0, а значит к Elasticsearch смогут подключится все участники сети. Вы можете установить 127.0.0.1 для того чтобы подключится можно было только локально:
sudo vi /etc/elasticsearch/elasticsearch.yml
http.host: 127.0.0.1

Если на вашем сервере мало оперативной памяти, вы можете ограничить количество памяти, потребляемой Elasticsearch. Для этого откройте файл /etc/elasticsearch/jvm.options и добавьте такие строчки:
sudo vi /etc/elasticsearch/jvm.options
-Xms4g
-Xmx4g

Здесь 4g - количество памяти, которую можно использовать в гигабайтах. В данном случае 4 гигабайта. Можно выбрать 512m для того чтобы ограничить размер памяти 512-ю мегабайтами.
4. Защита Elasticsearch
По умолчанию Elasticsearch слушает все подключения к порту 9200. Поэтому к нему могут получить доступ посторонние. В последних версиях Elasticsearch появилась возможность включить авторизацию по логину и паролю. Программа уже имеет предустановленных пользователей. Это суперпользователь elastic и ещё несколько пользователей для работы стека ELK: kibana_system, logstash_system, beats_system, apm_system, apm_system, remote_monitoring_user.
В Elasticsearch 8 пароли генерируются при установке. Если вы хотите сбросить пароль, например, для пользователя elastic, используйте следующую команду:
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

Эта команда устанавливает автоматически сгенерированный пароль и выводит его в консоль. Если вы хотите сами ввести пароль используйте опцию -i:
/usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic

После запуска утилиты, она предложит подтвердить сброс пароля, а затем попросит два раза ввести новый пароль.
5. Установка Kibana
Для взаимодействиями с индексами Elasticsearch удобно использовать Kibana. Вы можете установить её из того же репозитория с помощью команды:
sudo apt install kibana
Дальше можно запустить или перезапустить сервис kibana:
sudo systemctl start kibana
6. Настройка Kibana
Для Kibana надо сгенерировать токен доступа. Для этого выполните команду:
/usr/share/elasticsearch/bin/elasticsearch/create-enrollment-token -s kibana

Затем откройте веб-интерфейс Kibana в браузере по адресу localhost:5601. При первом запуске необходимо указать токен доступа для настройки Elasticsearch, который был сгенерирован ранее:

Далее Kibana попросит код верификации:

Этот код можно сгенерировать в терминале используя команду:
sudo /usr/share/kibana/bin/kibana-verification-code

Далее откроется окно настройки Kibana. Это может занять некоторое время:

Дальше Kibana предложит ввести логин и пароль. Можете использовать логин elastic и пароль, который задали для этого пользователя ранее. При первом входе Kibana предложит выполнить кое-какие настройки и добавить данные, можно нажать кнопку Explore on my own, для того чтобы пропустить.

Для того чтобы начать выполнять запросы к Elasticsearch откройте раздел DevTools в боковом меню:

Вместо всего этого, вы можете установить пароль доступа для Elasticsearch в конфигурационном файле /etc/kibana/kibana.yml:
sudo vi /etc/kibana/kibana.yml
elasticsearch.username: "kibana_system"
elasticsearch.password: "пароль"
Выводы
В этой небольшой статье мы рассмотрели как установить Elasticsearch в Ubuntu 22.04, а также как настроить авторизацию и Kibana для управления индексами. Как видите, всё довольно просто. Вы можете прочитать более подробно о том как использовать Elasticsearch в этой статье. А здесь можно прочитать про функциональность поиска в Elasticsearch.