安装准备
1: jdk环境1.8(ElasticSearch是java编写所需语言环境)
2:ES :
3: IK分词器
4:kibana
5:head插件(head插件是node.js编写所需环境)
开始搭建
一 :安装ElasticSearch单机版
新建文件目录上传es安装包
# cd /usr/local
# mkdir es
# cd es
# mkdir es1
# pwd
# /usr/local/es/es1
2. 解压文件
# tar -zxvf elasticsearch-6.6.0.tar.gz
3:ES不能用root账户启动,所以需要新建子账户启动
1): 添加用户组
# groupadd elasticsearch
2): 添加用户设置密码
3):用户es 添加到 elasticsearch 用户组给目录赋值权限
[root@localhost ~]# usermod -G elasticsearch es
[root@localhost ~]# chown -R es /usr/local/es/es1/elasticsearch-6.6.0
4):设置sudo权限
[root@localhost ~]# visudo
在root ALL=(ALL) ALL 一行下面 添加es用户 如下:es ALL=(ALL) ALL
添加成功保存后切换到es用户操作
[root@localhost ~]# su es
[es@localhost root]$
4: 根据自己linux机身内存大小修改ES配置
# cd /usr/local/es/es1/elasticsearch-6.6.0/config
# vim jvm.options
将默认需要1g内存修改具体内存,因为我虚拟机内存设置的小,可以不修改
修改es单机配置vi ./conf/elasticsearch.yml
cluster.name: my-application
node.name: node-1
bootstrap.memory_lock: false
network.host: 192.198.126.130 #改成你电脑实际IP地址
http.port: 9200 #9200是Web管理端口号; 另个9300是ES的TCP内部通信端口号
path.data: /opt/elasticsearch/data
path.logs: /opt/elasticsearch/logs
discovery.zen.ping.unicast.hosts: ["192.198.126.130"]
discovery.zen.minimum_master_nodes: 1 #注意,因为本人目前是单节点,这里必须为1
#新增如下配置:
transport.tcp.port: 9300
transport.tcp.compress: true
bootstrap.system_call_filter: false #因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测
修改/etc/sysctl.conf文件,添加如下代码
vm.max_map_count=655360
修改/etc/security/limits.conf文件,在文件末尾添加如下代码
#es为登录服务器的用户名
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
或
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
1) 重启Linux
# reboot
2)切换用户
# cd /usr/local/es/es1/elasticsearch-6.6.0
# su es
3)启动服务
# elasticsearch-6.5.0/bin/elasticsearch
4)后台启动
# elasticsearch-6.5.0/bin/elasticsearch -d
5)测试是否启动成功
# curl -XGET 'http://192.168.126.130:9200/'
测试 :访问默认http端口9200返回elasticsearch信息
二:安装可视化控制插件Kibana
注: Linux的内核版本需要在2.6以上(如采用CentOS7, Linux内核为3.10+)
切回root用户 :su root 输入密码
1:创建目录 /usr/local/es/kibana ,解压文件
[es@caizhanpeng1 kibana]$ ll
总用量 176472
-rw-r--r--. 1 root root 180704352 10月 15 15:39 kibana-6.6.0-linux-x86_64.tar.gz
[es@caizhanpeng1 kibana]$ tar -zxvf kibana-6.6.0-linux-x86_64.tar.gz
2:进入kibana安装目录修改kibana配置文件 vi ./config/kibana.yml
#端口号
server.port: 5601
#绑定地址
server.host: "192.168.9.128"
#ES的访问地址
elasticsearch.hosts: ["http://192.168.9.128:9200"]
3 进入bin目录下启动
#前台启动
./kibana
#后台启动
./kibana &
4:访问端口号成功进入UI界面表示连接ES成功
三 ,集成IK分词插件
IK分词插件必须与ES版本一一对应
1:解压分词插件安装包,在ES的plugins下创建ik目录,将安装文件全部复制到ES新建目录下
2: 添加自定义词典
在/ik/config目录下创建自己的词典目录custom
修改config下IKAnalyzer.cfg.xml
自定义词典配置案例:
# cat customer/my_word.dic
长安汽车
领益智造
青松建华
牛股
3:重启ES测试使用kibana测试IK分词
( 使用自带的标准分词效果:全部拆分)
(使用IK分词器效果如下)
四:搭建ES集群(在一台服务器三个节点)
1:将已经做好配置的es1安装目录copy到es2和es3中
[root@caizhanpeng1 es]# cp -R es1/* es2/
[root@caizhanpeng1 es]# cp -R es1/* es3/
2:进入es安装的conf目录下修改elasticesearch.yml集群版配置
es1配置
cluster.name: es-application
node.name: node-1
path.data: /usr/local/es/es1/elasticsearch-6.6.0/data
path.logs: /usr/local/es/es1/elasticsearch-6.6.0/logs
bootstrap.memory_lock: false
network.host: 192.168.9.128
http.port: 9200
transport.tcp.port: 9300
transport.tcp.compress: true
bootstrap.system_call_filter: false
discovery.zen.ping.unicast.hosts: ["192.168.9.128:9300","192.168.9.128:9301","192.168.9.128:9302"]
discovery.zen.minimum_master_nodes: 1
es2配置
======================== Elasticsearch Configuration =========================
#集群名称一致
cluster.name: es-application
#节点名称
node.name: node-2
#数据和日志路径
path.data: /usr/local/es/es2/elasticsearch-6.6.0/data
path.logs: /usr/local/es/es2/elasticsearch-6.6.0/logs
bootstrap.memory_lock: false
#http端口和tcp通讯端口需要修改
network.host: 192.168.9.128
http.port: 9201
transport.tcp.port: 9301
transport.tcp.compress: true
bootstrap.system_call_filter: false
#指定其他节点位置
discovery.zen.ping.unicast.hosts: ["192.168.9.128:9300","192.168.9.128:9301","192.168.9.128:9302"]
discovery.zen.minimum_master_nodes: 1
es3配置
cluster.name: es-application
node.name: node-3
path.data: /usr/local/es/es3/elasticsearch-6.6.0/data
path.logs: /usr/local/es/es3/elasticsearch-6.6.0/logs
bootstrap.memory_lock: false
network.host: 192.168.9.128
http.port: 9202
transport.tcp.port: 9302
transport.tcp.compress: true
bootstrap.system_call_filter: false
discovery.zen.ping.unicast.hosts: ["192.168.9.128:9300","192.168.9.128:9301","192.168.9.128:9302"]
discovery.zen.minimum_master_nodes: 1
#gateway.recover_after_nodes: 3
3 :给es账号为es2 和es3目录赋予操作权限
[root@caizhanpeng1 config]# chown -R es /usr/local/es/es2/elasticsearch-6.6.0
[root@caizhanpeng1 config]# chown -R es /usr/local/es/es3/elasticsearch-6.6.0
4:分别后台启动三台es进行测试(./elasticsearch -d)
(注意启动之前把之前启动保留的data/nodes目录下数据清空否则会影响集群的加入)
启动后测试效果
五:安装head插件
1:上传head安装包并解压
2:上传node.JS解压配置环境变量
#tar -Jvxf node-v10.15.2-linux-x64.tar.xz
#配置环境变量
# vi /etc/profile
#新增 node.js配置
export NODE_HOME=/usr/local/es/node/node-v10.15.2-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_HOME=$NODE_HOME/lib/node_modules
#让配置生效
#source /etc/profile
4:配置head
1:进入head目录,配置head
npm install -g grunt-cli
2: 执行 npm install ,此过程会下载phantomjs (运行npm install时,可能PhantomJS not found on PATH ...可执行 npm install latest)
3: 这一点是因为我的elasticsearch是es用户,而elasticsearch-head-master文件是root用户所以要使用es的用户来执行
chown -R es:es /usr/local/es/head/elasticsearch-head-master/
4 :npm install latest
5:在elasticsearch.ymal文件中添加:
http.cors.enabled: true
http.cors.allow-origin: "*"
6:运行
grunt server & 后台启动head插件 (加&设置为后台启动,不加ctrl+c退出时则关闭)
7:打开浏览器查看
http://192.168.9.128:9100/
效果