1 環境準備html
1 準備三臺cenots7環境,設置好ip hostname。java
192.168.1.94 es1node
192.168.1.92 es2linux
192.168.1.93 es3api
並將這些信息添加到/etc/hosts,確保可以經過hostname訪問服務器
2 下載elasticsearch以及jdkoracle
https://www.elastic.co/downloads/elasticsearchelasticsearch
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlspa
請都選擇rpm版本下載,複製到三太服務器上。rest
3 安裝jdk以及elasticsearch
在三臺服務都要執行
rpm -i jdk-8u181-linux-x64.rpm
rpm -i elasticsearch-6.3.2.rpm
systemctl enable elasticsearch.service
systemctl start elasticsearch.service
systemctl disable firewalld
systemctl stop firewalld
添加elasticsearch服務自動啓動,以及關閉防火牆,這爲了方便起見直接關閉防火牆。
2配置
1 es1配置
vi /etc/elasticsearch/elasticsearch.yml
cluster.name: es-cluster-dev
node.name: es1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["es1", "es2"]
編輯後保存
cluster.name爲集羣名稱,注意別和其餘集羣同名,不然可能會加錯集羣。
node.name當前節點的hostname
path.data 爲數據的目錄
path.logs爲es自己的log目錄
network.host 爲綁定的ip,0.0.0.0就是對全部的ip開放
http.port 9200爲es restapi的端口號。9300 爲集羣間通訊端口。
discovery.zen.ping.unicast.hosts: ["es3", "es2"] 爲 #添加集羣中的主機地址,會自動發現並自動選擇master主節點 ,注意因爲集羣是可能動態擴展的,在使用中會動態加節點,可是這裏只要寫當前的集羣節點就能夠了。後面會作演示
systemctl restart elasticsearch.service
重啓服務後打開http://192.168.1.94:9200/_cluster/state?pretty
能夠看到當前集羣只有一個節點es1,而且爲主節點。
2 es2配置
vi /etc/elasticsearch/elasticsearch.yml
cluster.name: es-cluster-dev
node.name: es2
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["es1", "es2"]
systemctl restart elasticsearch.service
重啓服務後打開http://192.168.1.94:9200/_cluster/state?pretty
es2已經加入集羣
3 es3配置
vi /etc/elasticsearch/elasticsearch.yml
cluster.name: es-cluster-dev
node.name: es3
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["es3", "es2"]
注意es3的配置集羣主機地址並無es1的信息,並且這個時候es1,es2也沒有es3新加入節點的配置信息,可是這並不妨礙集羣的建立。
systemctl restart elasticsearch.service
重啓服務後打開http://192.168.1.94:9200/_cluster/state?pretty
es3已經加入集羣
3 kibana安裝
https://www.elastic.co/downloads/kibana
下載rpm版本直接rpm -i kibana.rpm
修改/etc/kibana/kibana.yml中的
server.host: 0.0.0.0
kibana直接經過localhost:9200來鏈接elasticsearch因此此操做只要在三個節點任一一個節點操做就能夠了。
index的集羣副本配置
index.number_of_replicas
最大值爲節點總數-1,不然改索引的就會變成yello狀態。改值的表示須要額外保存的副本數量,以防止數據數據的丟失,能夠動態調整。
4 關閉服務
將es1關閉
能夠看到es1已經從集羣中退出
此時從另外節點上查詢數據任然能夠
繼續關閉服務器,在設置了合理的number_of_replicas數量下,數據查詢依然是完整的。