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"]
#不安装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