ElasticSearch 7.6.2 バージョンのクラスター構築とピットを踏む

環境整備

サーバーの説明

このデモでは 3 台の RockyLinux 8.5 サーバーを使用します

サーバ IP 述べる
マスターです 172.16.7.11 マスターノード
es-node01 172.16.7.5 01ノード
es-node02 172.16.7.13 02ノード

カーネルのバージョン

[root@es-master ~]# uname -a
Linux es-master 4.18.0-348.20.1.el8_5.x86_64 #1 SMP Thu Mar 10 20:59:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

システム名を変更する

## 主节点
hostnamectl set-hostname es-master
## node1节点
hostnamectl set-hostname es-node01
## node2节点
hostnamectl set-hostname es-node02

ホストを構成する

すべてのサーバーがいくつかの /etc/hosts を構成します

172.16.7.11 es-master
172.16.7.5 es-node01
172.16.7.13 es-node02

JDKのインストール

##### 7.x开始内置了JDK不需要安装了,官网连接:
https://www.elastic.co/cn/support/matrix#logstash_plugins

画像.png

ユーザーを作成

useradd cncfclub
passwd cncfclub
chown -R cncfclub:cncfclub  elasticsearch-7.6.2

パッケージをダウンロードする

ソフトウェアをダウンロードする

ES 中国語コミュニティのダウンロード リンク:

安定していると思われるバージョンを選択してください。ここでは 7.6.2 を選択しました。画像.png

フォルダーを作成し、そのフォルダーに転送して解凍します。

mkdir -p /server/tools && cd /server/tools

ダウンロードしたesインストールパッケージを3台のサーバーに転送し、
画像.png
圧縮ファイルを解凍して削除します

## 解压
tar xf elasticsearch-7.6.2-linux-x86_64.tar.gz
## 删除
rm -f elasticsearch-7.6.2-linux-x86_64.tar.gz

クラスターの展開

ディレクトリ構造の説明

画像.png

bin : ES の起動およびインストール プラグインなどを含むスクリプト ファイル。

config : elasticsearch.yml (ES 設定ファイル)、jvm.options (JVM 設定ファイル)、ログ設定ファイルなど。

JDK: 組み込み JDK、JAVA_VERSION="12.0.1"

lib: クラスライブラリ

ログ : ログファイル

modules : X-pack などを含むすべての ES モジュール。

plugins : ES にインストールされているプラ​​グイン。デフォルトではプラグインはありません

data : ES が起動すると、ドキュメント データを保存するためのこのディレクトリが存在します。ディレクトリを設定できる

JVMの最適化

公式「ヒープ メモリ: サイズと交換の編集」によると: https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html

ESインストール後のヒープメモリはデフォルトで1GBに設定されていますが、実際に使用する場合はこれよりも少ないはずです。現在使用しているデモサーバーのメモリサイズは4GBなので変更しません。十分なメモリがあればと公式は言っていました。メモリも 32 GB を超えないようにしてください。つまり、各ノードのメモリ割り当ては 32 GB を超えません。これはメモリを無駄に消費し、CPU パフォーマンスを低下させ、GC に大量のメモリを処理させるためです。安全性と信頼性を維持したい場合は、ヒープ メモリを 31 GB に設定するのが安全な選択です。

Elasticsearch.yml 設定ファイルの説明

[root@es-master config]# cat elasticsearch.yml 
# 集群名称,设置一个统一的名字
cluster.name: cncfclub-es-cluster
# 节点名字,每个节点不同
node.name: es-master
# 是否有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#设置最大集群节点数
node.max_local_storage_nodes: 3
#数据存储路径
path.data: /server/data
#日志存储路径
path.logs: /server/logs
# CentOS6 版本需要加入这两行
#bootstrap.memory_lock: true
#bootstrap.system_call_filter: false
#设置IP地址0.0.0.0 外网访问谁IP都能不然默认就是内网IP
network.host: 0.0.0.0
#设置端口
http.port: 9200
#集群通信接口
transport.tcp.port: 9300
#设置节点发现
discovery.seed_hosts: ["host1", "host2"]
#设置初始化集群选举
cluster.initial_master_nodes: ["node-1", "node-2"]

マスターノードの elasticsearch.yml 設定

cluster.name: cncfclub-es-cluster
node.name: es-master
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /server/data
path.logs: /server/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es-master:9300", "es-node01:9300","es-node02:9300"]
cluster.initial_master_nodes: ["es-master", "es-node01","es-node02"]

node01 ノード elasticsearch.yml 設定

cluster.name: cncfclub-es-cluster
node.name: es-node01
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /server/data
path.logs: /server/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es-master:9300", "es-node01:9300","es-node02:9300"]
cluster.initial_master_nodes: ["es-master", "es-node01","es-node02"]

node02 ノード elasticsearch.yml 設定

cluster.name: cncfclub-es-cluster
node.name: es-node02
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /server/data
path.logs: /server/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es-master:9300", "es-node01:9300","es-node02:9300"]
cluster.initial_master_nodes: ["es-master", "es-node01","es-node02"]

データとログのディレクトリを作成する

mkdir -p /server/data && mkdir -p /server/logs全部赋权
#给有关es的
chown -R cncfclub:cncfclub /server

サービスを開始する

## 进入cncfclub用户
su cncfclub
## 进入bin启动目录
cd /server/tools/elasticsearch-7.6.2/bin 
# 运行
./elasticsearch
# 后台运行
./elasticsearch -d

確認

画像.png
画像.png
画像.png

ヘッドプラグイン

elasticsearch-head は、Elasticsearch クラスターの参照と対話のための Web フロントエンド表示プラグインです。elasticsearch-head は Elasticsearch のステータスを監視するためのクライアント プラグインです。

シンプルで失礼なブラウザに Multi elasticsearch head プラグインを直接インストールします

または docker run Web サービス

docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head

画像.png

ピット

坑一:最大仮想メモリ領域 vm.max_map_count [65530] は低すぎます。少なくとも [262144] まで増やしてください

画像.png

解決

### 修改文件
vim /etc/sysctl.conf
 
### 添加参数 最后一行添加
vm.max_map_count = 262144

### 重启配置
sysctl -p

坑二:OpenJDK 64 ビット サーバー VM 警告: オプション UseConcMarkSoupGC はバージョン 9.0 で非推奨となり、将来のリリースでは削除される可能性があります。

画像.png

### 修改
vim jvm.options
### 修改参数
-XX:+UseConcMarkSweepGC 改为 -XX:+UseG1GC

ピット 3: java.nio.file.AccessDeniedException: /server/tools/elasticsearch-7.6.2/config/elasticsearch.keystore

画像.png

## 权限问题
chown -R cncfclub:cncfclub /server/tools/elasticsearch-7.6.2/config

おすすめ

転載: blog.csdn.net/m0_46213587/article/details/130344395