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
Если на вашем сервере мало оперативной памяти, вы можете ограничить количество памяти, потребляемой Elasticsearch. Для этого откройте файл /etc/elasticsearch/jvm.options и добавьте такие строчки:
sudo vi /etc/elasticsearch/jvm.options
Здесь 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 в Ubuntu 22.04, а также как настроить авторизацию и Kibana для управления индексами. Как видите, всё довольно просто. Вы можете прочитать более подробно о том как использовать Elasticsearch в этой статье. А здесь можно прочитать про функциональность поиска в Elasticsearch.
Заблокировали черти доступ к репозиториям с российских ip, что делать?
Протестовать против путинского режима.
Есть зеркало от яндекса
https://mirror.yandex.ru/mirrors/elastic/7/
https://mirror.yandex.ru/mirrors/elastic/8/