安裝ES集群
1错维,拷貝出一份解壓出來的文件
cp -r elasticsearch-5.6.4 elasticsearch-n1
2奖地,修改配置文件
vi elasticsearch.yml
配置文件內(nèi)容如下:
node.name: node-01
node.master: true
node.data: true
network.host: 192.168.112.141
http.port: 9201
transport.tcp.port: 9301
discovery.zen.ping.unicast.hosts: ["192.168.112.141:9301","192.168.112.141:9302","192.168.112.141:9300"]
#官方的推薦值是(N/2)+1,如果只有2個節(jié)點(diǎn)設(shè)為1
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.system_call_filter: false
各個字段解釋一下:cluster.name集群的名字赋焕,node.name當(dāng)前節(jié)點(diǎn)的名字参歹,node.master這個節(jié)點(diǎn)可以做mater嗎?node.data這個節(jié)點(diǎn)可以做數(shù)據(jù)節(jié)點(diǎn)嗎隆判?http.port http端口犬庇,transport.tcp.port內(nèi)部通信用的tcp端口,discovery.zen.ping.unicast.hosts集群中所有節(jié)點(diǎn)的ip+端口侨嘀,discovery.zen.minimum_master_nodes集群中master節(jié)點(diǎn)的最小數(shù)量臭挽,http.cors.enabled: true
http.cors.allow-origin: "*"防止跨域
3,修改jvm內(nèi)存,線上可對該項(xiàng)進(jìn)行相應(yīng)的擴(kuò)大咬腕,這里減小欢峰,因?yàn)樘摂M機(jī)內(nèi)存吃緊后,會無情把jvm殺掉
vi jvm.options
將
-Xms2g
-Xmx2g
修改為
-Xms1g
-Xmx1g
4涨共,將n1拷貝一份
cp -r elasticsearch-n1 elasticsearch-n2
5纽帖,修改n2的配置文件
vi elasticsearch.yml
配置文件內(nèi)容如下:
cluster.name: my-es
node.name: node-02
node.master: true
node.data: true
network.host: 192.168.112.141
http.port: 9202
transport.tcp.port: 9302
discovery.zen.ping.unicast.hosts: ["192.168.112.141:9301","192.168.112.141:9302","192.168.112.141:9300"]
#官方的推薦值是(N/2)+1,如果只有2個節(jié)點(diǎn)設(shè)為1
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.system_call_filter: false
6,再將n1拷貝一份
cp -r elasticsearch-n1 elasticsearch-n3
配置文件內(nèi)容如下:
cluster.name: my-es
node.name: node-03
node.master: false
node.data: true
network.host: 192.168.112.141
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["192.168.112.141:9301","192.168.112.141:9302"举反,"192.168.112.141:9300"]
#官方的推薦值是(N/2)+1懊直,如果只有2個節(jié)點(diǎn)設(shè)為1
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.system_call_filter: false
7,刪掉n1,n2,n3的data數(shù)據(jù),因?yàn)槭莄opy過來的火鼻,數(shù)據(jù)中記錄了之前的集群室囊,節(jié)點(diǎn)信息
cd data
rm -rf *
8,啟動n1,n2,n3
表示已經(jīng)啟動成功
9雕崩,用head看一下
可見集群很健康,之前單節(jié)點(diǎn)的時候是yellow波俄,集群是green
10,因?yàn)闆]有數(shù)據(jù)晨逝,插入幾條數(shù)據(jù)看看集群的分片,以及分片的header懦铺。在插入數(shù)據(jù)之前捉貌,觀察一下
五角星的是master,怎么選舉出來的之后會和大家分享冬念,是想zk的投票呢趁窃?還是利用了分布式鎖,之后見分曉〖鼻埃現(xiàn)在插入數(shù)據(jù)
echo "這里是集群的測試111" >> log4.log
這里logstash會遇到一個問題醒陆,就是連接不上9200因?yàn)槲覀兗河玫膇p是192.168.112.141,logstash是通過127.0.0.1連接的,所以需要將logstash.conf文件的hosts修改一下,這里就配置一個裆针,正式上線的時候是要配置多個的刨摩,防止master宕機(jī)之后,logstash將收集到的日志存不到ES
hosts => "192.168.112.141"
重啟logstash,之后世吨,刷新head,發(fā)現(xiàn)之前的那個log沒有進(jìn)去澡刹,再次
echo "這里是集群的測試111" >> log4.log
刷新head,效果來了
針對上圖解釋一下:
安裝多個logstash
模擬線上多個服務(wù)器,日志在各個服務(wù)器上耘婚,統(tǒng)一收集到ES中罢浇,重新開啟一個虛擬機(jī),安裝logstash
http://www.reibang.com/p/efd1997a40d6
1沐祷,已經(jīng)安裝好了
2嚷闭,測試一下:
[root@kafka logskafka]# echo "這是kafka這臺服務(wù)器的日志" >> log1.log
結(jié)果收集到了嗎?
插入到ES里面了嗎赖临?
到這里ELK的集群就已經(jīng)搭建完畢
望指正胞锰,不吝賜教