Установка и настройка Elasticsearch без сертификатов подлинности


Содержание

Введение

Для работы ПО Comindware Platform требуется сервер Elasticsearch версии не ниже 8.10.2.

В этой статье представлены требования к конфигурации компьютеров, инструкции по установке и настройке узлов Elasticsearch без проверки сертификатов подлинности на виртуальных машинах с ОС Ubuntu 22.04.4 LTS.

Только после запуска службы Elasticsearch можно приступать к развертыванию Comindware Platform, указав путь к серверу Elasticsearch.

1. Подготовка физических и виртуальных машин, пакетов программ

Установка в минимальной конфигурации выполняется на 3 разделённых виртуальных машинах.

Для полнофункциональной отказоустойчивой системы требуется установка на 4 виртуальных машинах с Ubuntu 22.04.LTS, расположенных на как минимум 3 физических машинах (IP-адреса приведены ниже исключительно для примера).

Пример конфигурации серверов

Серверы masterdatanode1 и datanode2 необходимо разместить на разных физических машинах.

На все машины в папку /home/username необходимо загрузить:

2. Установка Elasticsearch из deb-пакета

Повторите шаги, описанные в этом разделе, для каждого из узлов Elasticsearch.

2.1. Обновите ПО на сервере:

sudo apt update && sudo apt upgrade -y && sudo reboot

В процессе обновления сервер перезагрузится.

2.2. Перейдите в папку пользователя:

cd /home/username/

2.3. Запустите процесс установки Elasticsearch:

sudo dpkg --install elasticsearch-8.5.1-amd64.deb

По окончании установки машина выдаст отчёт:

Setting up elasticsearch (8.10.2) ...
--------------------------- 
Security autoconfiguration information Authentication and authorization are enabled. TLS for the transport and HTTP layers is enabled and configured. The generated password for the elastic built-in superuser is : wfcEcSTqfyttNCNdpQgv If this node should join an existing cluster, you can reconfigure this with '/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>' after creating an enrollment token on your existing cluster. You can complete the following actions at any time: Reset the password of the elastic built-in superuser with '/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'. Generate an enrollment token for Kibana instances with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'. Generate an enrollment token for Elasticsearch nodes with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'. ---------------------------------------------------------------------

2.4. Обратите внимание на строку The generated password for the elastic built-in superuser is — напротив неё будет выведен автоматически сформированный пароль для встроенного суперпользователя elastic. Сохраните этот пароль.

3. Конфигурация Elasticsearch

Повторите шаги, описанные в этом разделе, для каждого из узлов Elasticsearch.

Помните, что имя кластера cluster.name для каждого из узлов должно совпадать, а имя узла node.name должно быть уникальным.

3.1. Создайте папки, в которые Elasticsearch будет сохранять данные журналов, индексов и резервных копий:

sudo mkdir /var/elasticsearch
sudo mkdir /var/elasticsearch/data
sudo mkdir /var/elasticsearch/logs
sudo mkdir /var/elasticsearch/backups

3.2. Измените владельца папки и права доступа к ней:

sudo chown elasticsearch:elasticsearch --recursive /var/elasticsearch/
sudo chmod  764 --recursive /var/elasticsearch/      

3.3. Создайте папку для хранения резервной копии yml-файла конфигурации Elasticsearch:

sudo mkdir /etc/elasticsearch/backupConfig        

3.4. Переместите yml-файл конфигурации Elasticsearch в папку /etc/elasticsearch/backupConfig:

sudo mv /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/backupConfig

3.5. Создайте новый  yml-файл конфигурации Elasticsearch elasticsearch.yml:

sudo nano /etc/elasticsearch/elasticsearch.yml

3.6. Скопируйте в созданный файл конфигурации следующее содержимое:

bootstrap.memory_lock: false
cluster.name: elasticsearch.example.cbap
cluster.max_shards_per_node: 10000
http.port: 9200
node.roles: [ master, data, ingest, remote_cluster_client ]
node.name: elasticsearch1
path.data: /var/elasticsearch/data
path.logs: /var/elasticsearch/logs
path.repo: /var/elasticsearch/backups
xpack.security.enabled: false
xpack.security.http.ssl:
  enabled: false
#  keystore.path: certs/es1.p12    # [<-] specify path to signedNodeCert.p12 here
xpack.security.transport.ssl:
  enabled: false
#  key: certs/es1.key    # [<-] specify path to nodecert.key here
#  certificate: certs/es1.crt    # [<-] specify path to nodeCert.crt here
#  certificate_authorities: [ "certs/CMW-RootCA.crt" ]    # [<-] specify path to CACert.crt here
network.host: 192.168.1.43
discovery.seed_hosts : ["192.168.1.43", "192.168.1.42","1.1.1.3"]
cluster.initial_master_nodes:
  - elasticsearch1
  - elasticsearch2
  - elasticsearch3

#Этот флаг требуется для записи данных в индексы
indices.id_field_data.enabled: true

3.6. Сохраните изменения yml-файла конфигурации закройте текстовый редактор Nano, нажав клавиши: Ctrl+O, Ввод, Ctrl+X.

3.7. Измените для yml-файла конфигурации Elasticsearch владельца и права доступа:

sudo chown elasticsearch:elasticsearch --recursive /etc/elasticsearch/elasticsearch.yml
sudo chmod 764 --recursive /etc/elasticsearch/elasticsearch.yml

3.8. Откройте в текстовом редакторе Nano yml-файл конфигурации Elasticsearch:

sudo nano /etc/elasticsearch/elasticsearch.yml        

3.9. Задайте имя кластера с помощью директивы cluster.name в строке 2 yml-файла конфигурации: 

cluster.name: elasticsearch.example.cbap 

Примечание 
Имя кластера должно быть одинаковым для всех узлов кластера Elasticsearch.

3.10. Задайте имя узла с помощью директивы node.name в строке 11 yml-файла конфигурации. 

Примечание
Имя узла должно быть уникальным для каждого из узлов кластера Elasticsearch:

node.name: elasticsearch1

3.1. Укажите путь до директории, в которую настраиваемый узел Elasticsearch будет сохранять файлы данных шардов, отредактировав строку 13:

path.data: /var/elasticsearch/data

3.12. Укажите путь до директории, в которую настраиваемый узел Elasticsearch будет сохранять файлы логов, отредактировав строку 14:

path.logs: /var/elasticsearch/logs

3.13. Укажите путь до директории, в которую настраиваемый узел Elasticsearch будет сохранять файлы резервного копирования, отредактировав строку 15:

path.repo: /var/elasticsearch/backups

3.14. Укажите уникальный IP-адрес (как пример - 192.168.ХХХ.1) машины настраиваемого узла Elasticsearch, отредактировав строку 29:

network.host: 192.168.XXX.1

3.15. Задайте список IP-адресов машин (как пример - 192.168.XXX.1, 192.168.XXX.2, 192.168.XXX.3), на которых будут расположены узлы кластера Elasticsearch, отредактировав строку 31. Например, для кластера из трех узлов, директива будет вот такой:

discovery.seed_hosts : ["192.168.XXX.1", "192.168.XXX.2","192.168.XXX.3"]

3.16. Сохраните изменения yml-файла конфигурации и закройте текстовый редактор Nano, нажав клавиши: Ctrl+O, Ввод, Ctrl+X.

4. Запуск Elasticsearch

Повторите шаги, описанные в этом разделе, для каждого из узлов Elasticsearch.

4.1. Перезагрузите конфигурацию systemd:

sudo systemctl daemon-reload

4.2. Добавьте процесс elasticsearch.service в список автозагрузки при запуске ОС и запустите его:

sudo systemctl enable --now elasticsearch.service

4.3. Убедитесь, что процесс elasticsearch.service запустился:

sudo systemctl status elasticsearch.service

Пример результата проверки статуса процесса elasticsearch.service:

elasticsearch.service - Elasticsearch
  Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
  Active: active (running) since Thu 2022-12-01 10:12:27 UTC; 6s ago
    Docs: <https://www.elastic.co>
Main PID: 3597 (java)
   Tasks: 63 (limit: 4575)
  Memory: 629.9M
     CPU: 44.422s
  CGroup: /system.slice/elasticsearch.service
          ├─3597 /usr/share/elasticsearch/jdk/bin/java -Xms4m -Xmx64m -XX:+UseSerialGC -Dcli.name=server -Dcli.scri>
          ├─3656 /usr/share/elasticsearch/jdk/bin/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.n>
          └─3676 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
Dec 01 10:11:12 penguin-02 systemd[1]: Starting Elasticsearch...
Dec 01 10:12:27 penguin-02 systemd[1]: Started Elasticsearch.        

Примечание
В случае возникновения ошибок при запуске процесса elasticsearch.service рекомендуется изучить файл журнала:

sudo less /var/elasticsearch/logs/yourClusterName.log        

4.4. С помощью curl убедитесь, что REST API узла Elasticsearch доступен:

sudo curl http://192.168.XXX.XXХ:9200

Пример ответа на запрос:

{
"name" : "elasticsearch1",
"cluster_name" : "yourClusterName",
"cluster_uuid" : "Xfj14lWBRf2c6GAuwtV5lg",
"version" : {
    "number" : "8.5.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "c1310c45fc534583afe2c1c03046491efba2bba2",
    "build_date" : "2022-11-09T21:02:20.169855900Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.1",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
    },
"tagline" : "You Know, for Search"
}        

Повторите шаги, описанные в этом разделе, для каждого из узлов Elasticsearch.

5. Проверка состояния кластера

5.1. Выполнив для каждого из узлов кластера Elasticsearch шаги, описанные в предыдущих разделах, от любого из узлов выполните GET-запрос проверки состояния кластера:

sudo curl http://192.168.XXX.XX1:9200/_cluster/health?pretty>

5.2. Убедитесь, что в ответе на запрос значение параметра number_of_nodes равно количеству узлов кластера:

{
"cluster_name" : "yourClusterName",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 1,
"active_shards" : 2,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}        

Пример yml-файла конфигурации узла Elasticsearch

bootstrap.memory_lock: false
cluster.name: elasticsearch.example.cbap
cluster.max_shards_per_node: 10000
http.port: 9200
node.roles: [ master, data, ingest, remote_cluster_client ]
node.name: elasticsearch1
path.data: /var/elasticsearch/data
path.logs: /var/elasticsearch/logs
path.repo: /var/elasticsearch/backups
xpack.security.enabled: false
xpack.security.http.ssl:
  enabled: false
#  keystore.path: certs/es1.p12    # [<-] specify path to signedNodeCert.p12 here
xpack.security.transport.ssl:
  enabled: false
#  key: certs/es1.key    # [<-] specify path to nodecert.key here
#  certificate: certs/es1.crt    # [<-] specify path to nodeCert.crt here
#  certificate_authorities: [ "certs/CMW-RootCA.crt" ]    # [<-] specify path to CACert.crt here
network.host: 192.168.1.43
discovery.seed_hosts : ["192.168.1.43", "192.168.1.42","1.1.1.3"]
cluster.initial_master_nodes:
  - elasticsearch1
  - elasticsearch2
  - elasticsearch3      

К началу



Номер Статьи: 4612
Размещено: Wed, Jul 6, 2022
Последнее обновление: Wed, Apr 16, 2025

Online URL: https://kb.comindware.ru/article/ustanovka-i-nastrojka-elasticsearch-bez-sertifikatov-podlinnosti-4612.html