Как установить Elasticsearch на CentOS 8 Linux

12 set 2022 3 min di lettura
Как установить Elasticsearch на CentOS 8 Linux
Indice dei contenuti

Введение

Elasticsearch — это распределенная система полнотекстового поиска и анализа с открытым исходным кодом. Он поддерживает операции RESTful и позволяет хранить, искать и анализировать большие объемы данных в режиме реального времени. Elasticsearch — одна из самых популярных поисковых систем, которая поддерживает приложения со сложными требованиями к поиску, такие как крупные интернет-магазины и аналитические приложения.

В этом руководстве рассматривается установка Elasticsearch на CentOS 8.

Если вы хотите установить Elasticsearch на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh [email protected]_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh [email protected]_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh [email protected]_DEL_SERVER -p PORTA

Установить Java

Elasticsearch — это Java-приложение, поэтому первым шагом будет установка Java.

Запустите команду от имени пользователя root или пользователя с помощью команды sudo, чтобы установить пакет OpenJDK:

sudo dnf install java-11-openjdk-devel

Проверьте установку Java, распечатав версию Java:

java -version

Вывод должен выглядеть так:

openjdk version "11.0.5" 2019-10-15 LTS
 OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
 OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)

Установить эластичный поиск

Elasticsearch недоступен в стандартных репозиториях CentOS 8. Мы установим его из RPM-репозитория Elasticsearch.

Импортируйте GPG репозитория с помощью команды rpm:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Откройте текстовый редактор и создайте файл репозитория в каталоге /etc/yum.repos.d/:

sudo vi /etc/yum.repos.d/elasticsearch.repo

Вставьте в файл следующее содержимое:

[elasticsearch-7.x]
 name=Elasticsearch repository for 7.x packages
 baseurl=https://artifacts.elastic.co/packages/7.x/yum
 gpgcheck=1
 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
 enabled=1
 autorefresh=1
 type=rpm-md

Сохраните файл и закройте текстовый редактор.

На момент написания этой статьи последняя версия Elasticsearch — 7.6. Если вы хотите установить более старую версию Elasticsearch, измените 7.x на нужную вам версию.

Теперь, когда репозиторий включен, установите пакет Elasticsearch, набрав:

sudo dnf install elasticsearch

После завершения процесса установки запустите и включите службу:

sudo systemctl enable elasticsearch.service --now

Чтобы убедиться, что Elasticsearch запущен, используйте curl для отправки HTTP-запроса на порт 9200 на локальном хосте:

curl -X GET "localhost:9200/"

Вывод будет выглядеть следующим образом:

{
 "name": "TEST-SERVER-1",
 "cluster_name": "elasticsearch",
 "cluster_uuid": "PT16lhJVQiaMPxKMYoXrDg",
 "version": {
 "number": "7.6.0",
 "build_flavor": "default",
 "build_type": "rpm",
 "build_hash": "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
 "build_date": "2020-02-06T00:09:00.449973Z",
 "build_snapshot": false,
 "lucene_version": "8.4.0",
 "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 на свой сервер CentOS.

Настройка эластичного поиска

Данные Elasticsearch хранятся в каталоге /var/lib/elasticsearch, файлы конфигурации находятся в /etc/elasticsearch.

По умолчанию Elasticsearch настроен на прослушивание только на локальном хосте. Если клиент, подключающийся к базе данных, работает на том же хосте, и вы настраиваете кластер с одним узлом, вам не нужно изменять файл конфигурации по умолчанию.

Удаленный доступ

Elasticsearch не реализует аутентификацию по умолчанию, поэтому любой, у кого есть доступ к HTTP API, может получить к нему доступ. Если вы хотите разрешить удаленный доступ к серверу Elasticsearch, вам необходимо настроить брандмауэр и разрешить доступ к порту 9200 Elasticsearch только доверенным клиентам.

Например, чтобы разрешить подключения только с 192.168.222.222, введите следующие команды.

Выполните следующую команду, чтобы разрешить оценку с удаленного доверенного IP-адреса через порт 9200:

sudo firewall-cmd --new-zone=elasticsearch --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=elasticsearch --add-source=192.168.222.222/32 --permanent
sudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanent
sudo firewall-cmd --reload

Не забудьте изменить 192.168.222.222 на ваш удаленный IP-адрес.

Далее, если вы хотите разрешить доступ с другого IP-адреса, используйте:

sudo firewall-cmd --zone=elasticsearch --add-source=<IP_ADDRESS> --permanent

После настройки брандмауэра следующим шагом будет изменение конфигурации Elasticsearch и разрешение Elasticsearch прослушивать внешние подключения.

Для этого откройте файл конфигурации elasticsearch.yml:

sudo nano /etc/elasticsearch/elasticsearch.yml

Найдите строку, содержащую network.host, раскомментируйте ее и измените значение на 0.0.0.0:

network.host: 0.0.0.0

Затем найдите строку, содержащую discovery.seed_hosts: ['host1',..], раскомментируйте ее и измените значение следующим образом:

discovery.seed_hosts: []

Сохраните и закройте файл.

Если на вашем компьютере есть несколько сетевых интерфейсов, укажите IP-адрес интерфейса, чтобы заставить Elasticsearch прослушивать только предоставленный интерфейс.

Перезапустите службу Elasticsearch, чтобы изменения вступили в силу:

sudo systemctl restart elasticsearch

Это все. Теперь вы можете подключиться к серверу Elasticsearch удаленно.

Вывод

Мы показали вам, как установить Elasticsearch на CentOS 8.

Для получения дополнительной информации об Elasticsearch посетите страницу официальной документации.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.