elasticsearch集群安装

一、环境介绍:

准备3台虚拟机:172.22.22.37、172.22.22.38、172.22.22.39。此次安装es6.2.2版本

二、安装前准备:

前提是安装java环境,ES6版本需要jdk为1.8,官方推荐安装OracleJDK 最好不要安装OpenJDK.安装jdk参考:https://www.cnblogs.com/shengying/p/10910144.html

三、官网获取安装包:

 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.rpm

四、安装

rpm -ivh elasticsearch-6.2.2.rpm

安装包会自动创建 elasticsearch 用户及其同名用户组,且自动安装后的一些路径如下:

/usr/share/elasticsearch

/usr/share/elasticsearch/bin/elasticsearch

/var/log/elasticsearch

/var/lib/elasticsearch

/var/run/elasticsearch

/etc/sysconfig/elasticsearch

/etc/rc.d/init.d/elasticsearch

/etc/elasticsearch

五、创建数据,日志等的存储路径(视个人喜好创建) 

mkdir -p /data/elasticsearch/data

mkdir -p /data/elasticsearch/logs

mkdir -p /data/elasticsearch/backup

六、授权(es不能用root运行)

chown -R elasticsearch:elasticsearch /usr/share/elasticsearch

chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/bin/elasticsearch

chown -R elasticsearch:elasticsearch /var/log/elasticsearch

chown -R elasticsearch:elasticsearch /var/lib/elasticsearch

chown -R elasticsearch:elasticsearch /var/run/elasticsearch

chown -R elasticsearch:elasticsearch /etc/sysconfig/elasticsearch

chown -R elasticsearch:elasticsearch /etc/rc.d/init.d/elasticsearch

chown -R elasticsearch:elasticsearch /etc/elasticsearch

chown -R elasticsearch:elasticsearch /data/elasticsearch

七、修改系统参数,限制参数等  (es硬性要求)

1、vim /etc/security/limits.d/90-nproc.conf         (配置文件路径视个人配置情况,可以直接配置在/etc/security/limits.conf)

* soft nproc 65536
* hard nproc 65536
* hard nofile 65536
* soft nofile 65536

#es配置文件中选择锁住swapping,所以需要如下两行,若不加上,会报错提示添加配置

elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited

 

以上参数介绍参考:https://my.oschina.net/987openlab/blog/94634

注意:ulimits的open file参数值可能在/etc/profile里有配置,若配置了/etc/security/limits.d/90-nproc.conf下配置的则无效,此三台有配置,所以还需要修改/etc/profile下面的参数

修改后,使配置文件生效:source /etc/profile

2、vim /etc/sysctl.conf

vm.max_map_count=655360

fs.file-max = 655360

执行命令使配置生效:sysctl -p

八、修改es配置文件

1、vim /etc/elasticsearch/elasticsearch.yml

#集群的名称,一个集群内的每台服务器的集群名称需保持一致

cluster.name: es6.2.2

#节点名称,其他服务器的节点名称不一致
node.name: node-37

#索引数据的存储路径
path.data: /data/elasticsearch/data

#日志文件的存储路径
path.logs: /data/elasticsearch/logs

#设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当jvm开始swapping时es的效率会降低,所以要保证它不swap
bootstrap.memory_lock: true

#Centos6不支持SecComp,而ES6.2.2默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动,设置为false
bootstrap.system_call_filter: false

#IP访问限制,0.0.0.0则是不限制任何IP访问

network.host: 0.0.0.0

#对外服务的http端口
http.port: 9200

#节点间通信的tcp端口
transport.tcp.port: 9300

#分布式整个集群节点个数N要为奇数个
discovery.zen.ping.unicast.hosts: ["172.22.22.37:9300", "172.22.22.38:9300", "172.22.22.39:9300"]

# master选举最少的节点数,这个一定要设置为N/2+1,其中N是:具有master资格的节点的数量,而不是整个集群节点个数
discovery.zen.minimum_master_nodes: 2

#不安装head插件,直接打开head
http.cors.enabled: true
http.cors.allow-origin: "*"

#共享仓库,集群中各个节点都能感知到并将数据写入到该仓库的文件,需对/data/elasticsearch/backup路径做共享,其他两个服务器创建相同的目录,直接挂载
path.repo: ["/data/elasticsearch/backup"]

注:共享仓库的磁盘最好是lvm格式的,方便后期动态扩容

2、调整jvm内存

vim /etc/elasticsearch/jvm.options

#默认是1g,官方建议对jvm进行一些修改,官网参考参数配置最好不要超过内存的50%

-Xms1g
-Xmx1g

九、启动服务,验证服务是否正常

/etc/init.d/elasticsearch start

curl -i http://172.22.22.37:9200

或浏览器访问http://172.22.22.37:9200

posted @ 2019-05-16 09:51  wsy3306  阅读(189)  评论(0编辑  收藏  举报