介紹
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。