ElasticSearch + Kibana

介紹

ElasticSearch : Elasticsearch 是一個分佈式、RESTful 風格的搜索和數據分析引擎[官網介紹]
Kibana:能夠對 Elasticsearch 中的數據進行可視化並在 Elastic Stack 進行操作[官網介紹]

用途

現在Elastic Stack 多數用在日誌收集和分析上面[LogStash,Beats]。

安裝

1.傳送門–Elastic官方網站
2.下載kibana-7.0.0-linux-x86_64.tar.gz 和 elasticsearch-7.0.0-linux-x86_64.tar.gz
3.解壓第二步的兩個壓縮包
4.在解壓出來的文件夾裏面可以看到bin文件夾,裏面就是可執行的文件。
5.先啓動elasticsearch,如果在本機上面測試的話,直接跑可執行文件即可,如果是在內網服務器或者公網服務器上面跑的話,那麼需要改下配置文件:config/elasticsearch.yml,把裏面的NetWork相關的配置改掉:

network.host: 192.168.1.123
discovery.seed_hosts: ["192.168.1.123"] //如果修改了上面一行,那麼下面這一行必須加上,這個是爲了集羣

6.修改kibana的配置文件:

server.port: 5601   // kibana的端口
server.host: "192.168.1.123"  //kibana的ip
elasticsearch.hosts: ["http://192.168.1.123:9200"] // elasticsearch的IP和端口

7.啓動kibana。

Mock數據

爲了製造一些假的Test數據,自己寫了一個Mock數據的Go文件,有需要的朋友可以下載:
Go File
插入到ElasticSearch裏面的Json格式如下:

{
	name : "",
	age : 23,
	hobbies: [],
	university : "",
	phoneNumber : "",
	Addr : {
		city : "",
		country : ""
	}
}

在運行這個Go文件之前,需要把IP:PORT換成你自己的ElasticSearch服務的IP和端口。修改完成之後,直接運行這個文件即可:

go run mock.go

如果是前臺運行的話,可以看到插入的結果:
在這裏插入圖片描述
這裏我設置的數據條目數是一千萬,你可以修改源文件裏面的

numberOfMock 

變量來設置數據的條目

簡單的使用

我們可以使用curl來直接訪問ElasticSearch:

curl "http://192.168.26.83:9200/people/info/_search?pretty" -d '{"query" : {"bool" : {"must" : [{"match" : {"Addr.City" : "xingyi"}}, {"match" : {"Addr.Country" : "China"}}]}}}' -H "Content-Type: application/json"

curl "http://192.168.26.83:9200/people/info/_search" -d '{"query" : {"match" : {"Hobbies" : "video-game"}}}' -H "Content-Type: applicatin/json"

使用curl需要注意要加上-H參數,設置Content-Type:如果是其他的Content-Type,ElasticSearch會報錯,因爲ElasticSearch是RestFul API的。

關於Kibana和ElasticSearch的連接使用

走到這裏的話,這兩個服務應該都起了,所以我們直接訪問kibana的監聽的IP和端口,就可以直接訪問到kibana,類似於下面的圖
在這裏插入圖片描述
之後你可以直接添加index:因爲kibana跟ElasticSearch已經建立連接了,所以直接可以讀取ElasticSearch裏面的index信息:
在這裏插入圖片描述
在裏面就可以直接看到ElasticSearch上面的數據,在Filter的搜索欄裏面可以使用KQL–kibana自帶的語言來對數據進行檢索,很方便很方便,可以自己嘗試一下。

最後

1.kibana提供了數據可視化。
2.如果是寫在應用程序裏面的話,還是需要學習DSL,這個是構造Json來跟ElasticSearch打交道的方法。
3.ElasticSearch還可以對數據的一些字段進行設置,具體的都是在DSL裏面實現。
4.ElasticSearch是分佈式的,複製的模式還不太瞭解,我猜應該是主從複製,多節點來分發搜索請求。
5.還需要繼續學習下ElasticSearch。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章