CentOS7安装ES(Elasticsearch)集群记录

1.下载(6.5.4)

前提:需要java环境(这里三台机子已经安装)
三台服务器:
192.168.3.111
192.168.4.222
192.168.5.333(主节点)
https://www.elastic.co/cn/downloads/elasticsearch.,是ELasticsearch的官方站点,如果需要下载最新的版本,进入官网下载即可。可以下载到本地电脑然后再导入CentOS中,也可以直接在CentOS中下载。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.rpm

2.安装

命令:rpm -ivh elasticsearch-6.5.4.rpm

rpm -ivh elasticsearch-6.5.4.rpm
警告:elasticsearch-6.5.4.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
正在升级/安装...
   1:elasticsearch-0:6.5.4-1          ################################# [100%]
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service
Created elasticsearch keystore in /etc/elasticsearch

3.配置目录

安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径:

/elasticsearch-6.5.4/config/elasticsearch.yml                         # els的配置文件

/elasticsearch-6.5.4/config/jvm.options                                  # JVM相关的配置,内存大小等等

/elasticsearch-6.5.4/config/log4j2.properties                         # 日志系统定义

/usr/share/elasticsearch                                      				  # elasticsearch 默认安装目录

/var/lib/elasticsearch                                         					  # 数据的默认存放位置

4.创建用于存放数据与日志的目录

数据文件会随着系统的运行飞速增长,所以默认的日志文件与数据文件的路径不能满足我们的需求,那么手动创建日志与数据文件路径,可以使用NFS、可以使用Raid等等方便以后的管理与扩展

mkdir -p /data1/es
mkdir -p /data1/log
chown -R elasticsearch.elasticsearch /data1/* 						#为es用户添加操作权限

5.集群配置

集群配置中最重要的两项是node.namenetwork.host,每个节点都必须不同。其中node.name是节点名称主要是在Elasticsearch自己的日志加以区分每一个节点信息。 discovery.zen.ping.unicast.hosts是集群中的节点信息,可以使用IP地址、可以使用主机名(必须可以解析)。

111:

vim /etc/elasticsearch/elasticsearch.yml
​
cluster.name: my-els                               					# 集群名称
node.name: els-node1
node.master: true
node.data: true
# 节点名称,仅仅是描述名称,用于在日志中区分
​
path.data: /data1/es                						   			# 数据的默认存放路径
path.logs: /data1/log                 						   			# 日志的默认存放路径
​
network.host: 192.168.3.111                       	   			# 当前节点的IP地址
http.port: 9200                                   				   			# 对外提供服务的端口,9300为集群服务的端口
#添加如下内容
#culster transport port
transport.tcp.port: 9300
transport.tcp.compress: true
​
discovery.zen.ping.unicast.hosts: ["192.168.3.151", "192.168.3.150","192.168.3.149"]       
# 集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析
​
discovery.zen.minimum_master_nodes: 2              	# 为了避免脑裂,集群节点数最少为 半数+1
http.cors.enabled: true
http.cors.allow-origin: "*"

222:

vim /etc/elasticsearch/elasticsearch.yml
​
cluster.name: my-els                               					# 集群名称
node.name: els-node2
node.master: true
node.data: true
# 节点名称,仅仅是描述名称,用于在日志中区分
​
path.data: /data1/es                									 # 数据的默认存放路径
path.logs: /data1/log                 									 # 日志的默认存放路径
​
network.host: 192.168.4.222                        				 # 当前节点的IP地址
http.port: 9200                                    							 # 对外提供服务的端口,9300为集群服务的端口
#添加如下内容
#culster transport port
transport.tcp.port: 9300
transport.tcp.compress: true
​
discovery.zen.ping.unicast.hosts: ["192.168.3.151", "192.168.3.150","192.168.3.149"]       
# 集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析
​
discovery.zen.minimum_master_nodes: 2              	# 为了避免脑裂,集群节点数最少为 半数+1

333:

vim /etc/elasticsearch/elasticsearch.yml
​
cluster.name: my-els                               					# 集群名称
node.name: els-node3
node.master: true
node.data: true
# 节点名称,仅仅是描述名称,用于在日志中区分
​
path.data: /data1/es                 									# 数据的默认存放路径
path.logs: /data1/log                  									# 日志的默认存放路径
​
network.host: 192.168.5.333                        				# 当前节点的IP地址
http.port: 9200                                    							# 对外提供服务的端口,9300为集群服务的端口
#添加如下内容
#culster transport port
transport.tcp.port: 9300
transport.tcp.compress: true
​
discovery.zen.ping.unicast.hosts: ["192.168.3.111", "192.168.4.222","192.168.5.333"]       
# 集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析
​
discovery.zen.minimum_master_nodes: 2              	# 为了避免脑裂,集群节点数最少为 半数+1

注意:不要在elasticsearch.yml中添加index开头的配置项。如:

#index.number_of_shards: 5
#index.number_of_replicas: 1

6.JVM配置

由于ElasticsearchJava开发的,所以可以通过/etc/elasticsearch/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。 不过其中还是有两项最重要的-Xmx1g-Xms1gJVM的最大最小内存。如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢系统本身。

vim /etc/elasticsearch/jvm.options
​
-Xms32g                                                  					# JVM最大、最小使用内存
-Xmx32g
最好设置为系统内存的一半

7.配置es用户

elasticsearch的相关配置已经完成,下面需要启动elasticsearch集群。但是由于安全的考虑,elasticsearch不允许使用root用户来启动,所以需要创建一个新的用户,并为这个账户赋予相应的权限来启动elasticsearch集群。

7.1.创建es运行用户

# 创建用户组
groupadd es
# 创建用户并添加至用户组
useradd es -g es 
# 更改用户密码(输入 es)
passwd es

7.2.修改es目录权限

sudo chown -R es:es  /usr/share/elasticsearch/
sudo chown -R es:es  /var/log/elasticsearch/      
sudo chown -R es:es /etc/sysconfig/elasticsearch/				# 以上操作都是为了赋予es用户操作权限

7.3.切换es用户

命令:su es

8.把es复制到其他两台机子

cd /usr/share/
scp -r /elasticsearch root@222:/usr/share/
scp -r /elasticsearch root@333:/usr/share/

9.启动服务关闭服务

以下操作在es用户操作
三台机子同时运行:

#当前的路径为:/usr/share/elasticsearch/
./bin/elasticsearch             		#后台运行加-d

关闭服务

[es@glbk151 elasticsearch]$ jps
9505 Elasticsearch
13806 Jps
[es@glbk151 elasticsearch]$ kill -9 9505

10.安装可视化head插件

Elasticsearch Head Plugin:head插件是一个ES集群的web前端工具,它提供可视化的页面方便用户查看节点信息,对ES进行各种操作,如查询、删除、浏览索引等。

10.1.安装相关依赖包

10.1.1.安装head

由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。(npm可以理解为maven)

wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz  		# 下载nodejs最新的bin包
xz -d node-v9.3.0-linux-x64.tar.xz 					 								# 解压包
tar -xf node-v9.3.0-linux-x64.tar  														# 解压包
ln -s ~/node-v9.3.0-linux-x64/bin/node /usr/bin/node  							# 部署bin文件,先确定nodejs的bin路径
ln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npm

查看版本:

node -v
npm

npm加速 全局安装cnpm 指定来源淘宝镜像:
npm install -g cnpm --registry=https://registry.npm.taobao.org

10.1.2.安装grunt(安装完elasticsearch-head后安装)

grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.0里的head插件就是通过grunt启动的。因此需要安装一下grunt

cd  /usr/local/elasticsearch-head
npm install -g grunt-cli  //执行后会生成node_modules文件夹
npm install

注:
(1)5.0以上,elasticsearch-head 不能放在elasticsearch的 plugins、modules 目录下,否则elasticsearch启动会报错。
(2)这里如果grunt没有安装成功也无所谓,可以通过其他方式启动elasticsearch-head插件(npm run start)。

10.2.安装elasticsearch-head

另外:5.0以前的版本可以通过elasticseach自带的plugin命令 安装elasticsearch-head5.0以后不支持了。只可以去下载elasticsearch-head对应的源码包去安装。

cd /usr/local/
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install

修改配置:

vi _site/app.js

# 修改 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";  在文件的4388行附近
# 这里的 localhost 是指进入elasticsearch-head页面时默认访问的ES集群地址,把她修改为其中一台ES节点的地址即可
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.3.111:9200";

还要修改Head主目录下的Gruntfile.js,由于默认文件中是没有hostname属性的,需要手动添加:
在这里插入图片描述
elasticsearchelasticsearch-head是两个独立进程为防止跨域,在elasticsearch.yml文件最后添加以下内容:

http.cors.enabled: true
http.cors.allow-origin: "*"

10.3启动elasticsearch-head

cd /usr/local/elasticsearch-head //先跳转到head目录下
grunt server //若想在后台运行,结尾追加“&”,也可以使用 npm run start启动
#这里grunt安装失败,使用npm run start启动
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有许多梦想的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值