ElasticSearch 集群安装node
1、ElasticSearchbootstrap
关于ElasticSearch(后续简称es)的介绍这里就多说了,单机版的安装于配置能够参考《elasticsearch安装及配置》,其实集群版和单机安装区别不大,只是多一些配置以及须要注意的地方,集群版也能够单个节点启动运行。vim
ElasticSearch 官网:https://www.elastic.co/products/elasticsearchcentos
2、ElasticSearch安装安全
1.环境介绍:cors
Elasticsearch:5.5.2版本curl
操做系统:Centos 6.5elasticsearch
JDK: 1.8tcp
集群节点3台:192.168.252.129;192.168.252.130;192.168.252.131工具
这里es是依赖jdk的须要安装jdk,这里咱们使用的es 5.5.2版本,依赖的jdk必须是1.8及以上。因为公司环境是CentOS 6.5 环境,咱们采用CentOS 6.5的环境安装es集群,这里须要注意CentOS6.5 6.5版本安装es 5.x,须要修改es 的核心配置文件,具体配置见后文。
各安装包建议从官网上下,后续有时间会补上笔者的安装包百度云盘路径。
2.ES集群安装
Es的集群安装,能够先配置一台节点,而后复制es文件到其余节点,再分别修改各节点配置,或者能够选择一些批量处理工具等。下面就选择一台节点进行安装配置。
1.官网下载安装包
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.0.tar.gz
2.解压安装
tar -xvf elasticsearch-5.5.2.tar.gz -C /usr/local
3. 修改系统相关配置
1. 设置内核参数
vim /etc/sysctl.conf
添加以下内容:
fs.file-max=65536
vm.max_map_count=262144
以后可使用sysctl –a查看 –p刷新
2. 设置资源参数
vim /etc/security/limits.conf
添加以下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
3. 修改进程数 (7.x是修改20-nproc.conf文件)
vim /etc/security/limits.d/90-nproc.conf
修改( * soft nproc )的值为2048
4.修改ES集群配置文件:%ES%/config/elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
# 配置项value 前须要加空格 如:cluster.name: amala_es
# ---------------------------------- Cluster -----------------------------------
# 配置es的集群名称, es会自动发如今同一网段下的es,若是在同一网段下有多个集群,就能够用这个属性来区分不一样的集群
cluster.name: amala_es
# ------------------------------------ Node ------------------------------------
# 节点名称
node.name: node_1
#指定该节点是否有资格被选举成为master
node.master: true
#指定该节点是否存储索引数据,默认为true
node.data: true
#设置集群中master节点的初始列表,能够经过这些节点来自动发现新加入集群的节点。
discovery.zen.ping.unicast.hosts: ["192.168.252.129","192.168.252.130","192.168.252.131"]
# ---------------------------------- Network -----------------------------------
# 设置绑定的ip地址还有其它节点和该节点交互的ip地址
network.host: 192.168.252.130
# 指定http端口,你使用head kopf等相关插件使用的端口
http.port: 9200
#设置节点间交互的tcp端口,默认是9300。
transport.tcp.port: 9300
#若是要使用head,那么须要增长新的参数,使head插件能够访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
# centos 6.5 版本中,启动时报错:system call filters failed to install;
# check the logs and fix your configuration or disable system call filters at your own risk
# 添加该配置项
bootstrap.system_call_filter: false
其余节点安上述配置,不一样节点,保证node.name、network.host配置项不能相同。
5.启动服务
建议集群首次启动前先清空es 中data文件夹下的文件,启动前关闭防火墙。
Es的高版本中,已经不容许使用root用户来启动了(由于es会接收执行语句,出于安全),这里须要为es建立普通用户,并设置es文件夹归属为es普通用户,再经过es普通用户启动es。具体步骤以下:
#使用root用户建立es普通用户
useradd es
#设置elasticsearch文件夹的归属
chown -R es /usr/local/elasticsearch
#切换为es用户
su es
#切换目录到es的bin目录下
cd /usr/local/elasticsearch/bin
#当前窗口启动es服务 或者加 -d 参数后台启动
./elasticsearch
6.检查启动
执行:curl 'http://localhost:9200/?pretty' 出现相似以下内容,则说明启动成功。
注意事项:
1.出现以下报错,说明Centos版本低,而出现的报警。解决办法:能够选用高版本的CentOS(7.x),或者在es核心配置文件中添加bootstrap.system_call_filter: false,关闭检测。
2.出现以下报错,说明es核心配置文件中,配置项值得格式不符合yml格式,具体要求,配置项值前须要空格,配置项后不要留空格,符号使用英文输入法格式。解决办法:详细检查该配置文件,修改不符合的格式。
3.出现以下报错,说明启动的时候使用root用户启动。解决办法:使用普通用户启动es。
4.出现以下报错,说明启动时es的data目录下留有其余配置是启动留下的文件,与当前配置冲突。该错误通常出如今复制虚拟机或者复制es目录时产生。解决办法:删除data下的所有文件(将会删除数据,自行选择);核对各节点配置文件中的node.name、network.host配置项是否有重名冲突。
[2017-08-30T15:17:40,016][INFO ][o.e.d.z.ZenDiscovery ] [pros-node-2] failed to send join request to master [{pros-node-1}{Dhq0h4IHS6GF4MgFwc1Vhw}{w8mXRXG6S6qvSnjHGqrYwQ}{10.45.32.90}{10.45.32.90:10800}], reason [RemoteTransportException[[pros-node-1][10.45.32.90:10800][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {pros-node-2} {Dhq0h4IHS6GF4MgFwc1Vhw}{EttroN0-StienfP37gyLag} {10.45.32.30}{10.45.32.30:10800}, found existing node {pros-node-1}{Dhq0h4IHS6GF4MgFwc1Vhw}{w8mXRXG6S6qvSnjHGqrYwQ}{10.45.32.90}{10.45.32.90:10800} with the same id but is a different node instance]; ]