環境整備
サーバーの説明
このデモでは 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
ユーザーを作成
useradd cncfclub
passwd cncfclub
chown -R cncfclub:cncfclub elasticsearch-7.6.2
パッケージをダウンロードする
ソフトウェアをダウンロードする
ES 中国語コミュニティのダウンロード リンク:
安定していると思われるバージョンを選択してください。ここでは 7.6.2 を選択しました。
フォルダーを作成し、そのフォルダーに転送して解凍します。
mkdir -p /server/tools && cd /server/tools
ダウンロードしたesインストールパッケージを3台のサーバーに転送し、
圧縮ファイルを解凍して削除します
## 解压
tar xf elasticsearch-7.6.2-linux-x86_64.tar.gz
## 删除
rm -f elasticsearch-7.6.2-linux-x86_64.tar.gz
クラスターの展開
ディレクトリ構造の説明
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
確認
ヘッドプラグイン
elasticsearch-head は、Elasticsearch クラスターの参照と対話のための Web フロントエンド表示プラグインです。elasticsearch-head は Elasticsearch のステータスを監視するためのクライアント プラグインです。
シンプルで失礼なブラウザに Multi elasticsearch head プラグインを直接インストールします
または docker run Web サービス
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head
ピット
坑一:最大仮想メモリ領域 vm.max_map_count [65530] は低すぎます。少なくとも [262144] まで増やしてください
解決
### 修改文件
vim /etc/sysctl.conf
### 添加参数 最后一行添加
vm.max_map_count = 262144
### 重启配置
sysctl -p
坑二:OpenJDK 64 ビット サーバー VM 警告: オプション UseConcMarkSoupGC はバージョン 9.0 で非推奨となり、将来のリリースでは削除される可能性があります。
### 修改
vim jvm.options
### 修改参数
-XX:+UseConcMarkSweepGC 改为 -XX:+UseG1GC
ピット 3: java.nio.file.AccessDeniedException: /server/tools/elasticsearch-7.6.2/config/elasticsearch.keystore
## 权限问题
chown -R cncfclub:cncfclub /server/tools/elasticsearch-7.6.2/config