Elasticsearch — распределённая поисковая и аналитическая система, которая предназначена для индексирования, хранения и поиска в режиме реального времени. Она основана на библиотеке Apache Lucene и предоставляет мощные возможности полнотекстового поиска и аналитики.
Elasticsearch позволяет выполнять быстрые запросы на поиск и аналитику, что делает её идеальной для приложений, где необходимо обрабатывать большое количество данных в реальном времени, например, для логов и мониторинга.
Elasticsearch взаимодействует через RESTful API. Это позволило сделать её простой в интеграции с другими системами. Запросы выполняются через HTTP с помощью JSON-формата.
В данной статье разберём, как установить Elasticsearch на виртуальную машину, которая работает на Ubuntu 24.04.
Как установить Elasticsearch на Ubuntu 24.04
Компоненты Elasticsearch недоступны в дефолтных репозиториях Ubuntu. Несмотря на это, данные компоненты можно установить с использованием пакетного менеджера apt, для чего предварительно необходимо добавить в систему источники пакетов Elastic.
Искомые пакеты подписаны при помощи ключа подписи Elasticsearch. Это сделано для защиты вашей системы от подмены пакетов. Пакеты, прошедшие аутентификацию с использованием этого ключа, менеджером apt будут считаться доверенными. Исходя из этого, сначала следует произвести импорт открытого ключа Elasticsearch GPG, после чего добавить список источников пакетов Elastic.
Сделать это можно с использованием curl, инструмента командной строки, предназначенного для передачи данных с помощью URL-адресов. В данном случае дополнительно необходимо использовать аргументы -fsSL, чтобы заглушить весь ход выполнения и возможные ошибки, за исключением сбоя сервера, и позволить curl выполнить запрос в новом местоположении. Таким образом, выходные данные передаются в команду gpg –dearmor, преобразующую ключ в формат, который может быть использован менеджером apt для проверки загруженных пакетов.
$ curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpgДалее добавьте список источников Elastic в директорию sources.list.d, где пакетный менеджер в итоге их и обнаружит.
$ echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.listПосле чего обновите списки пакетов, чтобы менеджер apt смог считать новые источники:
$ sudo apt updateИ, наконец, при помощи следующей команды установите Elasticsearch.
$ sudo apt install elasticsearchПо окончании инсталляции запустите службу Elasticsearch:
$ sudo systemctl start elasticsearchИ установите службу в автозагрузку для того, чтобы Elasticsearch запускалась при старте операционной системы:
$ sudo systemctl enable elasticsearchПо умолчанию Elasticsearch работает на порту 9200. Чтобы протестировать его доступность, используйте команду curl и запрос GET.
$ curl -X GET 'http://localhost:9200'Вывод команды должен выглядеть примерно следующим образом:

Настройка удалённого доступа
Изначально Elasticsearch прослушивает только локальный интерфейс. Чтобы открыть доступ извне, необходимо сначала получить привилегии суперпользователя, которые понадобятся для дальнейшей настройки:
$ sudo suПосле чего перейдите в каталог /etc/elasticsearch/:
# cd /etc/elasticsearchНаходясь в данной директории, откройте для редактирования основной конфигурационный файл Elasticsearch, в котором настраиваются все ключевые параметры — elasticsearch.yml.
# nano elasticsearch.ymlВ файле найдите параметр network.host, удалите символ # перед ним, если он присутствует, и установите его значение в 0.0.0.0:
network.host: 0.0.0.0Это позволит Elasticsearch слушать запросы с любого IP-адреса.
Также если ваш сервер это одиночный узел, и вы не планируете использовать кластер из нескольких узлов, в файл добавьте следующую строку:
discovery.type: single-nodeЗатем закройте файл, сохранив внесённые в него изменения, и перезапустите службу elasticsearch:
# systemctl restart elasticsearchПосле чего выйдите из сессии суперпользователя при помощи команды exit, либо используя комбинацию клавиш Ctrl D.
Далее следует создать в брандмауэре разрешающее правило для порта, на котором работает Elasticsearch. По умолчанию система использует порт 9200. Исходя из этого, при помощи следующей команды добавьте 9200 в список разрешённых портов брандмауэра UFW:
$ sudo ufw allow 9200Чтобы убедиться в том, что порт 9200 успешно добавлен, выведите на экран состояние брандмауэра:
$ sudo ufw statusПри выводе данной команды порт 9200 должен находиться в списке разрешённых.

Теперь на своём локальном компьютере откройте браузер и в строке навигации введите следующий адрес, где замените X.X.X.X на IP-адрес вашего виртуального сервера, чтобы проверить доступность Elasticsearch.
http://X.X.X.X:9200Ответ будет возвращён в формате JSON и должен содержать информацию о статусе и версии системы.

