
Elasticsearch — это распределённая система полнотекстового поиска и аналитики с открытым исходным кодом. Она поддерживает RESTful-операции и позволяет хранить, искать и анализировать большие объёмы данных в режиме реального времени. Elasticsearch — одна из самых популярных поисковых систем, используемых в приложениях со сложными требованиями к поиску, таких как крупные интернет-магазины и аналитические приложения.
В этом руководстве объясняется, как установить Elasticsearch на CentOS 7.
Предпосылки
Пользователь, под именем которого вы вошли в систему, должен иметь привилегии sudo , чтобы иметь возможность устанавливать пакеты.
Установка Elasticsearch
Рекомендуемый способ установки Elasticsearch в CentOS 7 — установка пакета rpm из официального репозитория Elasticsearch.
На момент написания статьи последней версией Elasticsearch была 6.7 , для которой требуется Java 8 или более поздняя версия.
Чтобы установить OpenJDK 8 в системе CentOS, введите:
sudo yum install java-1.8.0-openjdk-devel
Проверьте установку Java, распечатав версию Java :
java -version
Вывод должен выглядеть примерно так:
openjdk version "1.8.0_201" OpenJDK Runtime Environment (build 1.8.0_201-b09) OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
Теперь, когда Java установлена, следующим шагом будет добавление репозитория Elasticsearch.
Импортируйте ключ GPG репозитория с помощью следующей команды:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Откройте текстовый редактор и создайте следующий файл репозитория:
sudo nano /etc/yum.repos.d/elasticsearch.repo
Вставьте в файл следующее содержимое:
/etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x] name = Elasticsearch repository for 6.x packages baseurl = https://artifacts.elastic.co/packages/6.x/yum gpgcheck = 1 gpgkey = https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled = 1 autorefresh = 1 type = rpm-md
Сохраните файл и закройте текстовый редактор.
Если вы хотите установить предыдущую версию Elasticsearch, измените 6.x в приведенной выше команде на нужную вам версию.
Теперь вы можете установить пакет Elasticsearch, введя:
sudo yum install elasticsearch
После завершения процесса установки запустите и включите службу, выполнив команду:
sudo systemctl enable elasticsearch.servicesudo systemctl start elasticsearch.service
Проверить, работает ли Elasticsearch, можно, отправив HTTP-запрос на порт 9200 на локальном хосте с помощью следующей команды curl :
curl -X GET "localhost:9200/"
Вывод будет выглядеть примерно так:
{ "name" : "fLVNqN_", "cluster_name" : "elasticsearch", "cluster_uuid" : "6zKcQppYREaRH0tyfJ9j7Q", "version" : { "number" : "6.7.0", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "8453f77", "build_date" : "2019-03-21T15:32:29.844721Z", "build_snapshot" : false, "lucene_version" : "7.7.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
Запуск службы может занять 5–10 секунд. Если вы видите curl: (7) Failed to connect to localhost port 9200: Connection refused , подождите несколько секунд и повторите попытку.
Для просмотра сообщений, зарегистрированных службой Elasticsearch, вы можете использовать следующую команду:
sudo journalctl -u elasticsearch
На этом этапе на вашем сервере CentOS установлен Elasticsearch.
Настройка Elasticsearch
Данные Elasticsearch хранятся в каталоге /var/lib/elasticsearch , файлы конфигурации находятся в /etc/elasticsearch .
По умолчанию Elasticsearch настроен на прослушивание только локального хоста. Если клиент, подключающийся к базе данных, также работает на том же хосте, и вы настраиваете кластер из одного узла, вам не нужно изменять файл конфигурации по умолчанию.
Удаленный доступ
Elasticsearch изначально не поддерживает аутентификацию, поэтому к нему может получить доступ любой, у кого есть доступ к HTTP API. Чтобы разрешить удалённый доступ к серверу Elasticsearch, необходимо настроить брандмауэр и разрешить доступ к порту 9200 только доверенным клиентам.
Начиная с CentOS 7, FirewallD заменяет iptables в качестве инструмента управления брандмауэром по умолчанию.
Выполните следующую команду, чтобы разрешить оценку с удаленного доверенного IP-адреса на порту 9200 :
sudo firewall-cmd --new-zone=elasticsearch --permanentsudo firewall-cmd --reloadsudo firewall-cmd --zone=elasticsearch --add-source=192.168.121.80/32 --permanentsudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanentsudo firewall-cmd --reload
Не забудьте изменить 192.168.121.80 на ваш удаленный IP-адрес.
Позже, если вы захотите разрешить доступ с другого IP-адреса, используйте:
sudo firewall-cmd --zone=elasticsearch --add-source=--permanent sudo firewall-cmd --reload
После настройки брандмауэра следующим шагом будет редактирование конфигурации Elasticsearch и разрешение Elasticsearch прослушивать внешние соединения.
Для этого откройте файл конфигурации elasticsearch.yml :
sudo nano /etc/elasticsearch/elasticsearch.yml
Найдите строку, содержащую network.host , раскомментируйте ее и измените значение на 0.0.0.0 :
/etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0
Если на вашем компьютере имеется несколько сетевых интерфейсов, вы можете указать IP-адрес интерфейса, после чего Elasticsearch будет прослушивать только указанный интерфейс.
Перезапустите службу Elasticsearch, чтобы изменения вступили в силу:
sudo systemctl restart elasticsearch
Вот и всё. Теперь вы можете подключиться к серверу Elasticsearch из удалённого места.
Заключение
Вы успешно установили Elasticsearch на CentOS 7. Теперь вы можете посетить официальную страницу документации Elasticsearch и узнать, как начать работу с Elasticsearch.
Если у вас возникла проблема или вы хотите оставить отзыв, оставьте комментарий ниже.
java elasticsearch database centos Не используете CentOS 7?
Выберите другую ОС: центос 8 дебиан 10 дебиан 9 убунту 18.04 убунту 20.04
Связанные руководства