Elasticsearch集群配置**

1.解压

tar -zxvf elasticsearch-7.4.0-linux-x86\_64.tar.gz -C /usr/local

添加日志存放位置

cd /usr/local/elasticsearch-7.14.0

mkdir data

2.创建es用户并授权

创建普通用户

因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:

useradd es  #新增es用户

passwd  es  #为icoding用户设置密码

userde1 -r es   #如果错了可以删除再加

3.修改es用户权限(可跳过)

新创建的es用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件,添加类似如下内容

su root
#1.===最大可创建文件数太小======
vi /etc/security/limits.conf
#在文件末尾中增加下面内容
*               soft    nofile          65536
*               hard    nofile          65536

#注:*代表Linux所有用户名称

#2.=最大虚拟内存太小==

vi /etc/sysctl.conf

#在文件中增加下面内容

vm.max_map_count=655360

#重新加载,输入下面命令:

sysctl -p

4.集群配置 修改elasticsearch.yml

#三台服务器

cd /usr/local/elasticsearch-7.14.0/config/

vim elasticsearch.yml
配置一

## 集群名称,保证唯一

cluster.name:  c01

#### 节点名称,必须不一样

node.name: node-1

#是不是有资格成为主节点

node.master: true

#是否存储数据

node.data: true

#最大集群节点数

node.max_local_storage_nodes: 3

#ip地址.

network.host: 0.0.0.0

#端口

http.port: 9200

#内部节点之间沟通端口

transport.tcp.port: 9700

#es7.x  之后新增的配置,节点发现

discovery.seed_hosts: ["192.168.1.123:9200", "192.168.1.124:9200","192.168.1.88:9200"]

#es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master

cluster.initial_master_nodes: ["node-1","node-2","node-3"]

#数据和存储路径

path.data: /usr/local/elasticsearch-7.14.0/data

path.logs: /usr/local/elasticsearch-7.14.0/logs

配置二

## 集群名称,保证唯一

cluster.name:  c02

#### 节点名称,必须不一样

node.name: node-2

#是不是有资格成为主节点

node.master: true

#是否存储数据

node.data: true

#最大集群节点数

node.max_local_storage_nodes: 3

#ip地址.

network.host: 0.0.0.0

#端口

http.port: 9200

#内部节点之间沟通端口

transport.tcp.port: 9700

#es7.x  之后新增的配置,节点发现

discovery.seed_hosts: ["192.168.1.123:9200", "192.168.1.124:9200","192.168.1.88:9200"]

#es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master

cluster.initial_master_nodes: ["node-1","node-2","node-3"]

#数据和存储路径

path.data: /usr/local/elasticsearch-7.14.0/data

path.logs: /usr/local/elasticsearch-7.14.0/logs

配置三

## 集群名称,保证唯一

cluster.name:  c03

#### 节点名称,必须不一样

node.name: node-3

#是不是有资格成为主节点

node.master: true

#是否存储数据

node.data: true

#最大集群节点数

node.max_local_storage_nodes: 3

#ip地址.

network.host: 0.0.0.0

#端口

http.port: 9200

#内部节点之间沟通端口

transport.tcp.port: 9700

#es7.x  之后新增的配置,节点发现

discovery.seed\_hosts: ["192.168.1.123:9200", "192.168.1.124:9200","192.168.1.88:9200"]

#es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master

cluster.initial\_master\_nodes: ["node-1","node-2","node-3"]

#数据和存储路径

path.data: /usr/local/elasticsearch-7.14.0/data

path.logs: /usr/local/elasticsearch-7.14.0/logs

5.运行elasticsearch

启动之前,设置ES的JVM占用内存参数,防止内存不足错误

vi /usr/local/elasticsearch-7.14.0/config/jvm.options

#为普通用户授权 否则无法运行es

cd /usr/local/

chown -R es:es elasticsearch-7.4.0

启动es:

su es #切换es用户

cd /usr/local/elasticsearch-7.14.0/bin/

./elasticsearch

报错处理

最大文件描述符

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量

ulimit -Hn

ulimit -Sn

修改 /etc/security/limits.conf 文件,增加配置,用户退出后重新登录生效

*               soft    nofile          65536

*               hard    nofile          65536

内存权限太小

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

elasticsearch用户拥有的内存权限太小,至少需要262144;修改 /etc/sysctl.conf 文件,增加配置

vim /etc/sysctl.conf

vm.max_map_count=262144

执行命令 sysctl -p 生效

无法通过外部ip访问elasticsearch

#修改config/elasticsearch.yml下约第55行,修改为当前es地址或0.0.0.0

network.host: 0.0.0.0

配置初始化节点

the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

#修改config/elasticsearch.yml下约第23行,放开node.name注释,可更改名称
node.name: node-1

#打开第68行注释,ip替换host1等,多节点请添加多个ip地址,单节点可写按默认来
#配置以下三者,最少其一
#[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]
cluster.initial_master_nodes: ["node-1"] #这里的node-1为node-name配置的值

最大线程数

max number of threads [3818] for user [es] is too low, increase to at least [4096]

问题同上,最大线程个数太低。修改配置文件 /etc/security/limits.conf(和问题1是一个文件),增加配置

*               soft    nproc           4096
*               hard    nproc           4096

可通过命令查看

ulimit -Hu

ulimit -Su

修改后的文件:

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
*               soft    nofile          65536
*               hard    nofile          65536
*               soft    nproc           4096
*               hard    nproc           4096
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐