ElasticSearch集群搭建
創(chuàng)新互聯(lián)長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為海城企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都做網(wǎng)站,海城網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。先介紹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)只能通過指定某個(gè)集群的名字,來加入這個(gè)集群。
節(jié)點(diǎn)(node):
一個(gè)節(jié)點(diǎn)是你集群中的一個(gè)服務(wù)器,作為集群的一部分,它存儲(chǔ)你的數(shù)據(jù),參與集群的索引和搜索功能。和集群類似,一個(gè)節(jié)點(diǎn)也是由一個(gè)名字來標(biāo)識(shí)的,默認(rèn)情況下,這個(gè)名字是一個(gè)隨機(jī)的名字,這個(gè)名字會(huì)在啟動(dòng)的時(shí)候賦予節(jié)點(diǎn)。這個(gè)名字對(duì)于管理工作來說很重要的,因?yàn)樵诠芾磉^程中,可以確定網(wǎng)絡(luò)中的哪些服務(wù)器對(duì)應(yīng)于Elasticsearch集群中的哪些節(jié)點(diǎn)。
一個(gè)節(jié)點(diǎn)可以通過配置集群名稱的方式來加入一個(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ò)中沒有運(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)通過http://192.168.2.86:9100/ 登錄查看
解壓ElasticSearch安裝包到ELK目錄下
[root@localhost local]# tar -zxfelasticsearch-5.3.0.tar.gz下面開始配置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: 集群名稱,一個(gè)節(jié)點(diǎn)要加入某個(gè)集群,需配成跟那個(gè)集群的名稱一樣
node.name: 節(jié)點(diǎn)名稱
path.data: /tmp/elasticsearch/data 數(shù)據(jù)目錄
path.logs: /tmp/elasticsearch/logs 日志目錄
network.host: 0.0.0.0 監(jiān)聽地址
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ì)無法連接集群
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)的初始列表,可以通過這些節(jié)點(diǎn)來自動(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 &通過head插件查看集群狀態(tài)
集群搭建完成。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。