Elasticsearch – это распределенный полнотекстовый поисковый и аналитический движок с открытым исходным кодом. Он поддерживает операции RESTful и позволяет вам хранить, искать и анализировать большие объемы данных в режиме реального времени. Elasticsearch – одна из самых популярных поисковых систем для приложений, которые предъявляют сложные поисковые требования, такие как крупные магазины электронной коммерции и аналитические приложения.
В этой статье объясняется, как установить Elasticsearch в Ubuntu 20.04.
Установка Elasticsearch
Установка Elasticsearch в Ubuntu довольно проста. Мы включим хранилище Docker, импортируем ключ GPG хранилища и установим Elasticsearch.
Пакет Elasticsearch поставляется в комплекте с версией OpenJDK, поэтому вам не нужно устанавливать Java.
Сначала обновите индекс пакетов и установите зависимости, необходимые для добавления нового HTTPS-репозитория:
sudo apt update sudo apt install apt-transport-https ca-certificates wget
Импортируйте ключ GPG хранилища:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Команда выше должна вывести OK, что означает, что ключ был успешно импортирован, и пакеты из этого хранилища будут считаться доверенными.
Затем добавьте репозиторий Elasticsearch в систему, выполнив:
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Как только хранилище будет включено, установите Elasticsearch, набрав:
sudo apt update sudo apt install elasticsearch
Служба Elasticsearch не запустится автоматически после завершения процесса установки. Чтобы запустить службу и включить ее, выполните следующие действия.
sudo systemctl enable --now elasticsearch.service
Чтобы убедиться, что Elasticsearch запущен, используйте curlдля отправки HTTP-запроса на порт 9200 на localhost:
curl -X GET "localhost:9200/"
Вы должны увидеть что-то похожее на это:
{ "name" : "vagrant", "cluster_name" : "elasticsearch", "cluster_uuid" : "IJqDxPfXSrmFQ27KbXbRIg", "version" : { "number" : "7.8.0", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65", "build_date" : "2020-06-14T19:35:50.234439Z", "build_snapshot" : false, "lucene_version" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Запуск службы может занять 5-10 секунд. Если вы видите curl: (7) Failed to connect to localhost port 9200: Connection refused, подождите несколько секунд и попробуйте снова.
Чтобы просмотреть сообщения, зарегистрированные службой Elasticsearch, используйте следующую команду:
sudo journalctl -u elasticsearch
Вот и все. Elasticsearch был установлен на вашем сервере Ubuntu.
Настройка Elasticsearch
Данные Elasticsearch хранятся в каталоге /var/lib/elasticsearch. Файлы конфигурации находятся в файлах /etc/elasticsearch, /etc/default/elasticsearch, и в файле можно настроить параметры запуска Java.
По умолчанию Elasticsearch настроен на прослушивание только на локальном хосте. Если клиент, подключающийся к базе данных, также работает на том же хосте, и вы настраиваете кластер с одним узлом, вам не нужно изменять файл конфигурации по умолчанию.
Удаленный доступ
Из коробки Elasticsearch не реализует аутентификацию, поэтому доступ к ней может получить любой, кто имеет доступ к HTTP API.
Чтобы разрешить удаленный доступ к серверу Elasticsearch, вам необходимо настроить брандмауэр и открыть TCP-порт 6379.
Как правило, вы хотите разрешить доступ к серверу Redis только с определенного IP-адреса или диапазона IP-адресов. Например, чтобы разрешить подключения только из подсети 192.168.121.0/24, вы должны выполнить следующую команду:
sudo ufw allow proto tcp from 192.168.121.0/24 to any port 6379
После настройки брандмауэра следующим шагом является редактирование конфигурации Elasticsearch и разрешение Elasticsearch прослушивать внешние соединения.
Для этого откройте файл конфигурации elasticsearch.yml:
sudo nano /etc/elasticsearch/elasticsearch.yml
Найдите строку, которая в ней содержится network.host, раскомментируйте ее и измените значение на 0.0.0.0:
network.host: 0.0.0.0
Если на вашем компьютере есть несколько сетевых интерфейсов, укажите IP-адрес интерфейса, чтобы Elasticsearch прослушивал только данный интерфейс.
Перезапустите сервис Elasticsearch, чтобы изменения вступили в силу:
sudo systemctl restart elasticsearch
Вот и все. Теперь вы можете подключиться к серверу Elasticsearch из своего удаленного местоположения.
Вывод
Мы показали вам, как установить Elasticsearch на Ubuntu 20.04.
Если вы столкнулись с проблемой или у вас есть отзыв, оставьте комментарий ниже.