curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.0-linux-x86_64.tar.gz
curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.0-linux-x86_64.tar.gz.sha512 | shasum -a 512 -c -
tar -xzf elasticsearch-8.13.0-linux-x86_64.tar.gz
cd elasticsearch-8.13.0/
vi /etc/profile
#Добавляем следующие строки в профиль
export JAVA_HOME=/data/elasticsearch-8.13.0/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#Сохранить и выйти
:wq
#Компилируем файлы и обновляем конфигурации
source /etc/profile
cd /data/elasticsearch-8.13.0
vi config/jvm.options
#Измените следующие две строки, уменьшив вдвое объем памяти узла, и установите максимум на 32 ГБ.
-Xms32g
-Xmx32g
#Сохранить и выйти
:wq
#Редактировать elasticsearch.yml
vi elasticsearch.yml
#Обновите следующее содержимое конфигурации
# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: es-cluster
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: DATA-01
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /esdata
#
# Path to log files:
#
path.logs: /var/log/elasticsearch
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
network.host: 20.20.1.1
#
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
#
http.port: 9200
transport.port: 9300
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.seed_hosts: ["20.20.1.1", "20.20.1.2", "20.20.1.2"]
discovery.find_peers_interval: 120s
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
node.roles: [master,data_content,data_hot,data_cold,data_warm,remote_cluster_client,ingest,transform,ml]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
cluster.initial_master_nodes: ["DATA-01", "DATA-02", "DATA-03"]
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Allow wildcard deletion of indices:
#
#action.destructive_requires_name: false
#Сохранить и выйти
:wq
#использовать Elasticsearch Поставляется с инструментом генерации сертификатов для создания CA и сертификат
./bin/elasticsearch-certutil ca
#Используем сгенерированный CA Сертификат Создать сертификат для кластера
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
#Сгенерированный сертификат можно поместить в соответствующее место и обновить elasticsearch.yml в xpack.security.transport.ssl настройки, указывая на новый файл сертификата
#существовать elasticsearch.yml обновляет следующую конфигурацию безопасности:
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: /data/elasticsearch-8.13.0/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /data/elasticsearch-8.13.0/elastic-certificates.p12
xpack.security.enabled: true
Вы можете проверить правильность сертификата, используя следующую команду.
openssl pkcs12 -info -in /data/elasticsearch-8.13.0/elastic-stack-ca.p12
#Максимальное количество отображений в области виртуальной памяти системы (vm.max_map_count) Недостаточная конфигурация приводит к Elasticsearch Невозможно выделить достаточно памяти. Эластичный поиск Для правильной работы требуется большая область виртуальной памяти.
#Редактируем файл sysctl.conf
vi /etc/sysctl.conf
#существоватьдобавлено в конце файла
vm.max_map_count=262144
#Сохранить и выйти
:wq
#Обновление конфигурации, вступает в силу немедленно
sudo sysctl -p
#Выполните следующую команду, чтобы убедиться vm.max_map_count Уже установлено на 262144
sysctl vm.max_map_count
#существоватьза единицуElasticsearchВыполните следующие две команды на узле,и введите пароль, установленный при создании сертификата
./bin/elasticsearch-keystore добавить xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore добавить xpack.security.transport.ssl.truststore.secure_password
useradd elasticsearch
groupadd elasticsearch
usermod -a -G elasticsearch elasticsearch
#Измените пользователя и группу пользователей в каталоге и файлах установки Elasticsearch.
chown -R elasticsearch:elasticsearch elasticsearch-8.13.0
#Учетную запись root нельзя использовать при запуске службы Elasticsearch, поэтому вам необходимо переключиться на учетную запись Elasticsearch.
su elasticsearch
#Запустите Elasticsearch и проверьте, нормально ли он запускается и нет ли ошибок.
./bin/elasticsearch
#Если запуск проходит нормально, для запуска можно использовать процесс демона.
./bin/elasticsearch -d -p pid
ps -aux|grep elasticsearch
curl -u elastic:passwd 20.20.1.1:9200