环境准备
服务器说明
本次演示采用三台RockyLinux 8.5版本服务器
服务器 | IP | 备注 |
---|---|---|
es-master | 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
配置hosts
所有服务器配置一些/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
创建文件夹并将es传输到文件夹内并解压
mkdir -p /server/tools && cd /server/tools
将下载 的es安装包分别传输到三台服务器上
解压并删除压缩文件## 解压 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 :类库
logs :日志文件
modules :ES 所有模块,包括 X-pack 等
plugins :ES 已经安装的插件。默认没有插件
data :ES 启动的时候,会有该目录,用来存储文档数据。该目录可以设置
JVM优化
根据官方提供的《堆内存:大小和交换编辑》:https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html
ES 默认安装后设置的堆内存是 1 GB,在实际用的肯定是少了,我目前用的演示的服务器的内存大小是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"]
Master节点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
验证
head插件
elasticsearch-head是一个用来浏览、与Elasticsearch簇进行交互的web前端展示插件。 因此elasticsearch-head是一个用来监控Elasticsearch状态的客户端插件
简单粗暴浏览器直接安装Multi elasticsearch head插件
或者docker run一个web服务
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head
坑
坑一:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法文章来源:https://www.toymoban.com/news/detail-426957.html
### 修改文件 vim /etc/sysctl.conf ### 添加参数 最后一行添加 vm.max_map_count = 262144 ### 重启配置 sysctl -p
坑二:OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
![]()
### 修改 vim jvm.options ### 修改参数 -XX:+UseConcMarkSweepGC 改为 -XX:+UseG1GC
坑三:java.nio.file.AccessDeniedException: /server/tools/elasticsearch-7.6.2/config/elasticsearch.keystore
文章来源地址https://www.toymoban.com/news/detail-426957.html
## 权限问题
chown -R cncfclub:cncfclub /server/tools/elasticsearch-7.6.2/config
到了这里,关于ElasticSearch 7.6.2版本集群搭建及踩坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!