系统环境
操作系统:CentOS7.2
elasticsearch:6.2.2
JDK:1.8
elasticsearch的不同版本对jdk版本也有不同要求 所以我们在安装前可以选择对的版本号
一,单机配置
1,下载es
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
这里我们是把es目录放在/usr/local/elasticsearch
下

在/usr/local/下面创建elasticsearch目录
mkdir elasticsearch
2,解压elasticsearch-6.2.2.tar.gz
tar -xvf elasticsearch-6.2.2.tar.gz
将解压后的文件放在elasticsearch目录下
mv elasticsearch-6.2.2/* elasticsearch/
进入解压后的elasticsearch目录

3,新建data目录:
mkdir data
4,修改config/elasticsearch.yml:
vim config/elasticsearch.yml
取消下列项注释并修改:
//集群名称
cluster.name: my-application
node.name: node-1 #节点名称
//数据和日志的存储目录
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
//设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了
network.host: 0.0.0.0
//端口
http.port: 9200
修改完毕后,:wq 保存退出vim
设置elasticsearch使用java的JVM内存 可以根据自己的的实际需求设置合适的JVM内存 这里我只是做演示所以设置内存并不大,在生产中涉及到JVM调优我们一般都是设置内存的一半,但是不考虑内存调优数据量不大的情况就可以根据自己的需要设置内存
5,在elasticsearch目录下编辑jvm.options文件
vim config/jvm.options

编辑完成后保存退出
这个时候我们不能直接启动es 因为不能使用root用户操作
不然后报错的

6,我们现在添加一个非root用户es进行操作

改一下es目录所属用户(不然没有权限操作elasticsearch目录):
chown es /usr/local/elasticsearch -R
vim 编辑 /etc/security/limits.conf
vim /etc/security/limits.conf
在末尾加上:
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
保存并退出


7,vim 编辑vim /etc/security/limits.d/20-nproc.conf
,将* 改为用户名

8,vim 编辑 vim /etc/sysctl.conf
,在末尾加上:
vm.max_map_count = 655360
执行:sysctl -p

9,切换到es用户,
su es
启动elasticsearch查看日志
10,./bin/elasticsearch
或在后台启动./bin/elasticsearch -d
11,浏览器输入IP:9200
会出现下面响应结果表示安装成功

如果访问失败说明防火墙可能开启将9200端口对外开放(如果集群需要端口9300也要对外开放!!!)
firewall-cmd --permanent --zone=public --add-port=9200/tcp
firewall-cmd --reload
firewall-cmd --zone=public --query-port=8080/tcp
二, 集群配置
集群的配置其实就是在单机配置的基础上进行微改在开启集群之前需要对单机测试时的 /usr/local/elasticsearch/data 目录下的文件清空
node.max_local_storage_nodes: 256
discovery.zen.ping.unicast.hosts: ["你的ip1", "你的ip2", "你的ip3"]
discovery.zen.minimum_master_nodes: 2
图片.png
图片.png
图片.png

参数说明
cluster.name: my-application
配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
node.name: node-1(集群中需要唯一不可重复)
节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,
path.data: /usr/local/elasticsearch/data
设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开。
path.logs: /usr/local/elasticsearch/logs
设置日志文件的存储路径,默认是es根目录下的logs文件夹
network.host: 0.0.0.0 (访问访问需要)
设置绑定的ip地址,可以是ipv4或ipv6的
http.cors.enabled: true
如果启用了 HTTP 端口,那么此属性会指定是否允许跨域 REST 请求。
http.cors.allow-origin: "*"
如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。
discovery.zen.minimum_master_nodes=集群节点/2+1 (防止脑裂)
三、安装head插件
Elasticsearch Head Plugin:head插件是一个ES集群的web前端工具,它提供可视化的页面方便用户查看节点信息,对ES进行各种操作,如查询、删除、浏览索引等。
1、安装相关依赖包
(1)安装head
由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用node.js安装教程。
(2)安装grunt(安装完elasticsearch-head后安装)
grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.0里的head插件就是通过grunt启动的。因此需要安装一下grunt:
cd /usr/local/elasticsearch-head
npm install -g grunt-cli
//执行后会生成node_modules文件夹
npm install

在elasticsearch-head目录下面
修改_site/app.js
vi _site/app.js
修改 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://你的ES节点ip:9200";
ip:修改为其中一台ES节点的地址即可
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://你的一台ES节点ip:9200";
还要修改Head主目录下的Gruntfile.js,由于默认文件中是没有hostname属性的,添加:

在elasticsearch.yml文件的最后,添加如下内容:
http.cors.enabled: true
http.cors.allow-origin: "*"
elasticsearch启动的时候追加两个配置文件属性即可防止跨域。
进入elasticsearch目录后台启动三台elasticsearch
./bin/elasticsearch -d
4、启动elasticsearch-head
进入elasticsearch-head 目录
cd /usr/local/elasticsearch-head
启动插件grunt server
或 npm run start
启动
或者后台运行grunt server &
或npm run start &
grunt server //若想在,结尾追加“&”,也可以使用 npm run start启动
浏览器中http://你的ip:9100/

如果没有安装node.js需要自己查找资料安装,在安装node.js或许会出现一点小问题可自行解决,
到这里es集群搭建完成
当然es的比较好的插件也有kibana安装也是非常简单的下载好的话一分钟快速安装,还是推荐使用kibana这个插件进行数据的监控和开发
图片.png
网友评论