環(huán)境準備
采用三臺CentOS7.3部署Elasticsearch集群督弓,以下是索引分片的簡單介紹奕枝。
系統(tǒng) | 節(jié)點名 | IP |
---|---|---|
CentOS7.3 | Node-1 | 192.168.20.230 |
CentOS7.3 | Node-2 | 192.168.20.231 |
CentOS7.3 | Node-3 | 192.168.20.232 |
集群搭建
由于es集群需要java環(huán)境作支持,因此在一開始就需要部署java環(huán)境
- 安裝jdk
- 首先到jdk官網(wǎng)上根據(jù)linux的版本下載你對應的的jdk版本,查看linux版本命令
cat /proc/version
[esUser@ceiec-1 kibana-5.5.3-linux-x86_64]$ cat /proc/version
Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
選擇64位的jdk-8u161-linux-x64.tar.gz版本下載泣棋,下載完成后使用ftp工具將該壓縮包上傳至java安裝目錄 /usr/java
使用命令 tar -zxvf jdk-8u161-linux-x64.tar.gz
解壓縮即可
- 配置環(huán)境變量:
[root@ceiec-1 java]# vi /etc/profile
在文件最后面添加:
export JAVA_HOME=/usr/java/jdk1.8.0_131 #jdk安裝路徑
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
- 執(zhí)行profile文件
[root@ceiec-1 java]# source /etc/profile
這樣可以使配置不用重啟即可立即生效。
- 檢查jdk版本:
[root@ceiec-1 java]# java -version
顯示
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
即表示jdk環(huán)境安裝成功畔塔!
- 安裝ElasticSearch
- 下載
去官網(wǎng)下載es安裝文件elasticsearch-5.5.3.tar.gz
同樣上傳到第一臺linux下es的安裝目錄/data/bigdata
使用命令tar -zxvf
解壓縮該文件 得到elasticsearch-5.5.3
文件潭辈。 - 編輯
elasticsearch.yml
配置文件
使用cd
命令進入es安裝目錄
[root@ceiec-1 ~]# cd /data/bigdata/elasticsearch-5.5.3
使用vi
命令編輯配置文件,該配置文件位于config目錄下
[root@ceiec-1 elasticsearch-5.5.3]# vi config/elasticsearch.yml
主要修改以下幾個地方:
cluster.name: ceiec-test //集群名稱,同一個集群澈吨,名稱唯一
node.name: node-1 //節(jié)點名稱
node.master: true //該節(jié)點是否可被選為master
node.data: true //該節(jié)點是否存儲數(shù)據(jù)
path.data: /data/bigdata/es_data/data //數(shù)據(jù)存放路徑把敢,該目錄需要事先建好
path.logs: /data/bigdata/es_data/logs //log存放路徑,該目錄需要事先建好
network.host: 192.168.20.230 //節(jié)點綁定Ip,如果為0.0.0.0表示所有外部機器均可連接該集群
discovery.zen.ping.unicast.hosts: ["192.168.20.230,192.168.20.231,192.168.20.232"] //配置該參數(shù)谅辣,用來自動發(fā)現(xiàn)節(jié)點修赞,組成集群
discovery.zen.ping.multicast.enabled: true
http.port: 9200 //rest 端口,默認為9200
transport.tcp.port: 9300 //transport 端口桑阶,默認為9300
action.auto_create_index: true //自動創(chuàng)建索引柏副,用于kibana
http.cors.enabled: true //用于es head插件訪問
http.cors.allow-origin: "*"
詳細的參數(shù)信息可參考.
對于另外兩臺機器192.168.20.231,192.168.20.232
作同樣的修改,使用命令!x
保存修改并退出vi編輯器勾邦。
- 創(chuàng)建es用戶
esUser
為了安全起見,es不允許使用root用戶來啟動集群割择,會報錯如下:
Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:94)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:160)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
Refer to the log for complete error details.
因此需要為es單獨添加一個用戶esUser
用來管理es集群眷篇,過程如下:
groupadd esUser //添加用戶esUser
useradd esUser -g esUser -p elasticsearch-5.5.3 //添加esUser的權限
chown -R esUser elasticsearch-5.5.3 //改變elasticsearch-5.5.3的權限
elasticsearch-5.5.3為你elasticsearch的目錄名稱
使用su
命令切換用戶:
[root@ceiec-1 elasticsearch-5.5.3]# su esUser
[esUser@ceiec-1 elasticsearch-5.5.3]$
- 啟動集群
切換到esUser用戶下,就可以安全的啟動es集群了荔泳,如下:
[esUser@ceiec-1 elasticsearch-5.5.3]$ bin/elasticsearch -d
[esUser@ceiec-1 elasticsearch-5.5.3]$ jps
1219 Jps
1215 Elasticsearch
[esUser@ceiec-1 elasticsearch-5.5.3]$
使用-d
參數(shù)可以使es集群后臺啟動蕉饼,其他兩臺機器使用同樣的過程啟動es node節(jié)點。這樣一個可用的es集群即搭建完成玛歌,訪問http://192.168.20.230:9200
即可查看該節(jié)點的信息椎椰,如下:
{
"name": "ceiec-1",
"cluster_name": "ceiec-test",
"cluster_uuid": "_na_",
"version": {
"number": "5.5.3",
"build_hash": "9305a5e",
"build_date": "2017-09-07T15:56:59.599Z",
"build_snapshot": false,
"lucene_version": "6.6.0"
},
"tagline": "You Know, for Search"
}
elasticSearch-head安裝
head插件的安裝依賴node環(huán)境,因此需提前部署node.js環(huán)境沾鳄,過程如下:
- 安裝node環(huán)境
類似于java環(huán)境的安裝 - 安裝grant
grunt是基于Node.js的項目構建工具慨飘,可以進行打包壓縮、測試译荞、執(zhí)行等等的工作瓤的,head插件就是通過grunt啟動,如下:
> cd /data/bigdata/elasticsearch-head-master
> npm install -g grunt-cli #安裝grunt-cli
> npm install grunt --save #安裝grunt
> npm install grunt-contrib-jasmine #安裝jasmine
3.下載head
地址:https://github.com/mobz/elasticsearch-head.git
下載完成后解壓到linux相關目錄,比如/data/bigdata/elasticsearch-head-master
- 修改head插件Gruntfile.js源碼:
connect: {
server: {
options: {
hostname: "192.168.20.230", //自己的ip
port: 9100, //port
base: '.',
keepalive: true
}
}
}
- 啟動head
在elasticsearch-head-master目錄下
npm install
grunt server
即可成功啟動head
- 訪問http://192.168.20.230:9100查看集群的相關信息
Ik分詞器安裝
去GitHub上下載對應版本的IK分析器zip
包吞歼,下載之后直接解壓縮到es安裝目錄下的plugs/ik
目錄下(假如沒有此目錄,新建),重啟集群(各個node節(jié)點重復這個操作)即可圈膏。
安裝kibana
- 下載
地址:https://www.elastic.co/downloads/past-releases
根據(jù)es版本下載對應的安裝包 - 上傳至linux相關目錄并解壓,比如
/data/bigdata/kibana-5.5.3-linux-x86_64
- 修改配置文件
[esUser@ceiec-1 kibana-5.5.3-linux-x86_64]$ vi config/kibana.yml
主要有以下幾處需要修改
server.port: "5601" //端口號篙骡。默認5601
server.host: "192.168.20.230" //kibana Ip稽坤,默認為localhost
elasticsearch.url: "http://192.168.20.230:9200" //es鏈接地址
其他參數(shù)按需修改即可,修改完畢糯俗,使用命令!x
保存并退出編輯尿褪。
- 啟動kibana
使用命令nohup bin/kibana &
啟動kibana
[esUser@ceiec-1 kibana-5.5.3-linux-x86_64]$ nohup bin/kibana &
[1] 1312
[esUser@ceiec-1 kibana-5.5.3-linux-x86_64]$ nohup: 忽略輸入并把輸出追加到"/home/esUser/nohup.out"
訪問http://192.168.20.230:5601
進入kibana!