ElasticSearch集群搭建
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)舟山,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18980820575
先介紹ElasticSearch的幾個(gè)核心概念。
集群(cluster):
一個(gè)集群就是由一個(gè)或多個(gè)節(jié)點(diǎn)組織在一起,它們共同持有你整個(gè)的數(shù)據(jù),并一起提供索引和搜索功能。一個(gè)集群由一個(gè)唯一的名字標(biāo)識(shí),這個(gè)名字默認(rèn)就是“elasticsearch”。這個(gè)名字是重要的,因?yàn)橐粋€(gè)節(jié)點(diǎn)只能通過(guò)指定某個(gè)集群的名字,來(lái)加入這個(gè)集群。
節(jié)點(diǎn)(node):
一個(gè)節(jié)點(diǎn)是你集群中的一個(gè)服務(wù)器,作為集群的一部分,它存儲(chǔ)你的數(shù)據(jù),參與集群的索引和搜索功能。和集群類(lèi)似,一個(gè)節(jié)點(diǎn)也是由一個(gè)名字來(lái)標(biāo)識(shí)的,默認(rèn)情況下,這個(gè)名字是一個(gè)隨機(jī)的名字,這個(gè)名字會(huì)在啟動(dòng)的時(shí)候賦予節(jié)點(diǎn)。這個(gè)名字對(duì)于管理工作來(lái)說(shuō)很重要的,因?yàn)樵诠芾磉^(guò)程中,可以確定網(wǎng)絡(luò)中的哪些服務(wù)器對(duì)應(yīng)于Elasticsearch集群中的哪些節(jié)點(diǎn)。
一個(gè)節(jié)點(diǎn)可以通過(guò)配置集群名稱(chēng)的方式來(lái)加入一個(gè)指定的集群。默認(rèn)情況下,每個(gè)節(jié)點(diǎn)都會(huì)被安排加入到一個(gè)叫做“elasticsearch”的集群中,這意味著,如果你在你的網(wǎng)絡(luò)中啟動(dòng)了若干個(gè)節(jié)點(diǎn),并假定它們能夠相互發(fā)現(xiàn)彼此,它們將會(huì)自動(dòng)地形成并加入到一個(gè)叫做“elasticsearch”的集群中。
在一個(gè)集群里,只要你想,可以擁有任意多個(gè)節(jié)點(diǎn)。而且,如果當(dāng)前你的網(wǎng)絡(luò)中沒(méi)有運(yùn)行任何Elasticsearch節(jié)點(diǎn),這時(shí)啟動(dòng)一個(gè)節(jié)點(diǎn),會(huì)默認(rèn)創(chuàng)建并加入一個(gè)叫做“elasticsearch”的集群。
搭建有3個(gè)節(jié)點(diǎn)的集群,準(zhǔn)備3臺(tái)服務(wù)器。
192.168.2.86
192.168.2.87
192.168.2.88
官網(wǎng)下載安裝包
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.0.tar.gz
安裝第三方epel源
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
安裝JDK環(huán)境(所有機(jī)器)
http://120.52.72.24/download.oracle.com/c3pr90ntc0td/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
cd /usr/local tar -zxf jdk-8u131-linux-x64.tar.gz ln -sv jdk1.8.0_131/ jdk vi /etc/profile.d/jdk.sh
添加以下內(nèi)容
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:/usr/local/jdk/bin
~
chmod 755 /etc/profile.d/jdk.sh . /etc/profile.d/jdk.sh
驗(yàn)證Java環(huán)境
修改ulimit限制(所有機(jī)器)
vi /etc/security/limits.d/90-nproc.conf
* soft nproc 10240
* hard nproc 10240
* soft nofile 65536
* hard nofile 65536
vi /etc/sysctl.conf
添加下面內(nèi)容
vm.max_map_count = 262144
然后執(zhí)行以下命令
sysctl -p
創(chuàng)建一個(gè)ELK目錄,ElasticSearch安裝在這個(gè)目錄下。
[root@localhost local]#mkdir elk [root@localhost local]# cd elk/
先安裝Head插件,它是一個(gè)管理ElasticSearch集群的工具(這步只需在192.168.2.86安裝)
yum install npm git #安裝node.js git clonegit://github.com/mobz/elasticsearch-head.git cd elasticsearch-head npm install npm run start & 或者 grunt server 啟動(dòng)
通過(guò)http://192.168.2.86:9100/ 登錄查看
解壓ElasticSearch安裝包到ELK目錄下
[root@localhost local]# tar -zxfelasticsearch-5.3.0.tar.gz
下面開(kāi)始配置ElasticSearch集群,編輯配置文件
[unilife@localhost config]$ pwd /home/unilife/elk/elasticsearch-cluster2/config [unilife@localhost config]$ vi elasticsearch.yml
添加以下配置內(nèi)容
cluster.name: unilifemedia
node.name: node-1
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: 0.0.0.0
http.port: 19200
transport.tcp.port: 19300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts:["192.168.2.86", "192.168.2.87", "192.168.2.88"]
配置選項(xiàng)解析:
cluster.name: 集群名稱(chēng),一個(gè)節(jié)點(diǎn)要加入某個(gè)集群,需配成跟那個(gè)集群的名稱(chēng)一樣
node.name: 節(jié)點(diǎn)名稱(chēng)
path.data: /tmp/elasticsearch/data 數(shù)據(jù)目錄
path.logs: /tmp/elasticsearch/logs 日志目錄
network.host: 0.0.0.0 監(jiān)聽(tīng)地址
http.port: 19200 設(shè)置對(duì)外服務(wù)的http端口,默認(rèn)為9200。
transport.tcp.port: 19300 設(shè)置節(jié)點(diǎn)之間交互的tcp端口,默認(rèn)是9300。
http.cors.enabled: true 啟用跨域,不然head插件會(huì)無(wú)法連接集群
http.cors.allow-origin: "*" 跨域配置,允許所有
discovery.zen.ping.unicast.hosts:["192.168.2.86", "192.168.2.87", "192.168.2.88"] 設(shè)置集群中master節(jié)點(diǎn)的初始列表,可以通過(guò)這些節(jié)點(diǎn)來(lái)自動(dòng)發(fā)現(xiàn)新加入集群的節(jié)點(diǎn)
192.168.2.87的elasticsearch.yml配置如下:
cluster.name: unilifemedia
node.name: node-2
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: 0.0.0.0
http.port: 19200
transport.tcp.port: 19300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts:["192.168.2.86", "192.168.2.87", "192.168.2.88"]
192.168.2.88的elasticsearch.yml配置如下:
cluster.name: unilifemedia
node.name: node-3
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: 0.0.0.0
http.port: 19200
transport.tcp.port: 19300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts:["192.168.2.86", "192.168.2.87", "192.168.2.88"]
在各個(gè)節(jié)點(diǎn)分別啟動(dòng)ElasticSearch
[unilife@localhost bin]$ ./elasticsearch &
通過(guò)head插件查看集群狀態(tài)
集群搭建完成。