elasticseach7.x集群安装

系统配置(使用root权限用户)

1、修改最大可创建文件数和线程数

vi /etc/security/limits.conf

添加如下内容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 4096

* hard nproc 4096

用不是root的用户,使用sodu修改时,需要指定给哪个用户设置,否则设置*不生效

如:给tomcat用户设置

tomcat soft nofile 65536

tomcat hard nofile 131072

2、修改最大虚拟内存

方法一:临时修改执行命令:

sysctl -w vm.max_map_count=262144

方法二 永久修改:

vi /etc/sysctl.conf 文件最后一行添加

vm.max_map_count=262144

加载设置好的参数: sysctl -p

3、开放集群间通讯的9300端口

1、开放端口

firewall-cmd --zone=public --add-port=9300/tcp --permanent

2、重启防火墙:

systemctl reload firewalld

3、查看已经开放的端口:

firewall-cmd --list-ports

创建es用户

如果用的root用户,es禁止使用root用户启动,需要创建一个新用户(已有非root用户也可以不用创建)。

1、创建用户:elasticsearch

[root@iZbp1bb2egi7w0ueys548pZ bin]# adduser elasticsearch

2、创建用户密码,需要输入两次

[root@iZbp1bb2egi7w0ueys548pZ bin]# passwd elasticsearch

3、切换至elasticsearch用户

[root@iZbp1bb2egi7w0ueys548pZ etc]# su elasticsearch

上传安装包

上传7.2.0版本的elasticsearch安装包到服务器/home/elasticsearch/目录下,解压。

备注:es不能用root用户启动,所以上传安装包时不能上传到root目录下。

  tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz

Es部署(非root用户)

修改es配置

假设有三台服务器分别是 10.100.88.1,10.100.88.2,10.100.88.3

进入解压的es目录,修改config下的elasticsearch.yml配置文件

  cd  elasticsearch-7.2.0

  vi config/elasticsearch.yml

 

修改每台服务器配置信息如下,三台服务器的配置只有节点名称node.name不同,其余配置一样。

cluster.name: my-cluster-name #自定义名称,尽量特有,同一个集群用同一个名称

node.name: node-1 #节点名称,三台服务器不能重复

path.data: /var/data/elasticsearch

path.logs: /var/logs/elasticsearch

network.host: 0.0.0.0

http.port: 9200

discovery.seed_hosts: ["10.100.88.1","10.100.88.2","10.100.88.3"]

cluster.initial_master_nodes: ["node-1"] #首次启动集群时,推荐主节点名称

 

Jvm参数设置

在config下的jvm.options中,设置堆内存大小默认1g,建议一台主机,启动单个ES实例,最大堆内存不超过主机内存的50%,且最大不要超过32G,根据主机内存自行调整

-Xms4g #初始化堆内存大小

-Xmx4g #堆内存

 

启动es

在es目录下执行命令启动,如果只有root用户,可参考后面先创建一个新用户:

./bin/elasticsearch -d

查看启动日志:

tail -300f logs/my-cluster-name.log

 

查看集群状态

curl -X GET http://127.0.0.1:9200/_cluster/health?pretty

 

返回:

{

  "cluster_name" : "my-cluster",

  "status" : "green",

  "timed_out" : false,

  "number_of_nodes" : 3,

  "number_of_data_nodes" : 3,

  "active_primary_shards" : 0,

  "active_shards" : 0,

  "relocating_shards" : 0,

  "initializing_shards" : 0,

  "unassigned_shards" : 0,

  "delayed_unassigned_shards" : 0,

  "number_of_pending_tasks" : 0,

  "number_of_in_flight_fetch" : 0,

  "task_max_waiting_in_queue_millis" : 0,

  "active_shards_percent_as_number" : 100.0

}

 

 

这里最重要的就是status这行。很多开源的ES监控脚本,其实就是拿这行数据做报警判断。status 有三个可能的值:

green 绿灯,所有分片都正确运行,集群非常健康。

yellow 黄灯,所有主分片都正确运行,但是有副本分片缺失。这种情况意味着 ES 当前还是正常运行的,但是有一定风险。

red 红灯,有主分片缺失。这部分数据完全不可用。而考虑到 ES 在写入端是简单的取余算法,轮到这个分片上的数据也会持续写入报错。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值