Elasticsearch本文統稱“ES”。很多情況下,因爲工作或者學習需要用到ES集羣,但是自身服務器資源又有限,如何解決此問題呢?這裏用1臺雲服務器,實現ES集羣的搭建並與Kibana實現正常的連接。
第一步:檢查系統環境、軟件環境
OS:CentOS 7.6
ES: ES 6.8.x
JDK: 1.8.181
第二步:安裝ES集羣
將ES軟件從官網下載並解壓到/usr/local/目錄下,配置JDK開發環境變量(過程略)
第三步:安裝細節
默認情況下,我們的ES在不用更改任何配置的情況下,是可以正常啓動的。因爲ES有兩種模式,一種是development模式,這個模式是供開發人員、運維人員去驗證其功能是否正常完整的。默認情況下就是development.模式。一旦更改配置文件,那麼它就運行在另外的模式 Production生產模式。那麼這裏我們不改配置。因爲ES6以後,我們需要進行普通用戶的創建,才能正常啓動ES服務。所以我們需要新建一個普通用戶,並將ES安裝目錄授權給剛新建的用戶。命令如下:
所以,我們su - elas 切換到用戶下,啓動ES服務
/usr/local/elasticsearch-6.8.2/bin/elasticsearch
通過JPS查看是否成功
好,接下來,重點來了,我們啓動第二個ES節點,命令如下:
bin/elasticsearch -Ehttp.port=8200 -Epath.data=node2
以上這個命令的意思是:更改端口、更改索引存儲的目錄名字,默認是安裝目錄下的data目錄。看是否啓動ok?
再啓動一個節點,同樣的命令
bin/elasticsearch -Ehttp.port=7200 -Epath.data=node3
通過JPS命令查看: 三個ES進程啓動了。
看看安裝目錄下的索引目錄的存放位置
我們知道,一個服務器上安裝三個節點沒問題了,但是三個節點是否組成一個集羣呢?三者間有沒有聯繫呢?我們確認一下:
通過隨便查看一個端口的狀態我們可以看到有3個節點,然後帶*號的是主節點,也就是Master節點。
我們再查看一下集羣節點的狀態:發現3個節點,集羣的信息都顯示出來了。說明集羣間的連接是正常的。對吧。
一般情況下,ES作爲實時的分佈式搜索引擎,我們肯定不能將其暴露在外網,我們信息人員要保證其絕對的安全。但是我們又要操作ES,怎麼辦呢?這裏推薦Kibana。它也是ELK Stack系列產品,能很好的無縫對接ES鏈接。Kibana基於Nodejs開發,解壓即可使用。下面,我們將Kibana與ES進行鏈接
將Kibana解壓到/usr/local下,解壓即可。
進入安裝目錄,看config/kibana.yml文件,作簡單的配置
只需要改下面三個地方
server.port ---->kibana對外提供服務的http端口
server.host----->默認是localhost.因爲這裏是雲主機,需要外網可以訪問,因此我們需要改成0.0.0.0.但是如果是自己的虛擬機或者物理服務器我們需要改成自己的IP。
elastisearch.hosts----->Kibana鏈接ES的地址,一般Kibana跟ES都會安裝在一起。所以這裏只要改成127.0.0.1:9200即可。也就是說鏈接ES的內網IP即可。
然後啓動Kibana即可。 nohup $kibana安裝目錄/bin/kinaba & ----->後臺啓動。
看瀏覽器能否正常打開界面呢?發現打開正常。說明Kibana鏈接ES集羣成功
經查,我們可以在Kibana查到集羣的三個節點的信息。至此,雲主機快速搭建ES集羣並連接kibana成功。
實際上,這個主機的ip爲私有地址。這就實現了Kibana的外網訪問,然後收集ES數據進行展示、存儲、分析的過程。