您好,登錄后才能下訂單哦!
ElasticSearch集群搭建
先介紹ElasticSearch的幾個核心概念。
集群(cluster):
一個集群就是由一個或多個節點組織在一起,它們共同持有你整個的數據,并一起提供索引和搜索功能。一個集群由一個唯一的名字標識,這個名字默認就是“elasticsearch”。這個名字是重要的,因為一個節點只能通過指定某個集群的名字,來加入這個集群。
節點(node):
一個節點是你集群中的一個服務器,作為集群的一部分,它存儲你的數據,參與集群的索引和搜索功能。和集群類似,一個節點也是由一個名字來標識的,默認情況下,這個名字是一個隨機的名字,這個名字會在啟動的時候賦予節點。這個名字對于管理工作來說很重要的,因為在管理過程中,可以確定網絡中的哪些服務器對應于Elasticsearch集群中的哪些節點。
一個節點可以通過配置集群名稱的方式來加入一個指定的集群。默認情況下,每個節點都會被安排加入到一個叫做“elasticsearch”的集群中,這意味著,如果你在你的網絡中啟動了若干個節點,并假定它們能夠相互發現彼此,它們將會自動地形成并加入到一個叫做“elasticsearch”的集群中。
在一個集群里,只要你想,可以擁有任意多個節點。而且,如果當前你的網絡中沒有運行任何Elasticsearch節點,這時啟動一個節點,會默認創建并加入一個叫做“elasticsearch”的集群。
搭建有3個節點的集群,準備3臺服務器。
192.168.2.86
192.168.2.87
192.168.2.88
官網下載安裝包
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環境(所有機器)
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
添加以下內容
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
驗證Java環境
修改ulimit限制(所有機器)
vi /etc/security/limits.d/90-nproc.conf
* soft nproc 10240
* hard nproc 10240
* soft nofile 65536
* hard nofile 65536
vi /etc/sysctl.conf
添加下面內容
vm.max_map_count = 262144
然后執行以下命令
sysctl -p
創建一個ELK目錄,ElasticSearch安裝在這個目錄下。
[root@localhost local]#mkdir elk [root@localhost local]# cd elk/
先安裝Head插件,它是一個管理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 啟動
通過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
添加以下配置內容
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"]
配置選項解析:
cluster.name: 集群名稱,一個節點要加入某個集群,需配成跟那個集群的名稱一樣
node.name: 節點名稱
path.data: /tmp/elasticsearch/data 數據目錄
path.logs: /tmp/elasticsearch/logs 日志目錄
network.host: 0.0.0.0 監聽地址
http.port: 19200 設置對外服務的http端口,默認為9200。
transport.tcp.port: 19300 設置節點之間交互的tcp端口,默認是9300。
http.cors.enabled: true 啟用跨域,不然head插件會無法連接集群
http.cors.allow-origin: "*" 跨域配置,允許所有
discovery.zen.ping.unicast.hosts:["192.168.2.86", "192.168.2.87", "192.168.2.88"] 設置集群中master節點的初始列表,可以通過這些節點來自動發現新加入集群的節點
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"]
在各個節點分別啟動ElasticSearch
[unilife@localhost bin]$ ./elasticsearch &
通過head插件查看集群狀態
集群搭建完成。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。