kibana是elasticsearch(如下簡稱ES)的可視化平臺,筆者平時使用kibana的dev tools
比較多,在這裏能夠更便捷的使用ES的各類命令,DSL查詢語句等。json
可是kibana的可視化功能遠不止於次。Kibana能夠用來搜索,查看ES索引中的數據,能夠輕鬆地進行高級數據分析,並可在各類圖表,表格和地圖中顯示數據。而且能夠基於瀏覽器的界面快速建立和共享動態儀表板,實時反饋ES中數據的更改。瀏覽器
因爲kibana可視化的不少組件其實都是基於ES聚合的結果,因此看本篇文章建議對ES的聚合有所瞭解。服務器
本文使用的示例所有都是基於kibana自帶的示例數據,讀者本身有興趣也能夠實際操做一下。elasticsearch
本文操做使用的ES和kibana都是基於7.1.0版本。spa
index pattern是kibana可視化的前提。它至關於告訴kibana要使用哪些索引做爲數據進行可視化展現。索引咱們第一步就來建立一個index pattern。日誌
如上圖所示,先在左側菜單找到management
,而後點擊index patterns
-- create index pattern
。新建一個index pattern,這裏拿kibana自帶的電商的索引舉例。code
在上圖中經過輸入index pattern的名稱,kibana會自動顯示匹配的索引,而後點擊next
。blog
選擇索引中的時間維度的字段,若是有多個的話根據具體的業務場景選擇。好比這裏我選擇的是訂單的建立時間字段。
須要說明的是,這個時間字段是用來方便基於時間過濾數據用的。若是你的業務上不須要基於時間範圍篩選,也能夠不選擇這一步。索引
到這裏咱們的index pattern就建好了。讀者本身能夠參考上面的流程,爲航班數據索引新建一個index pattern。字符串
discovery在日誌搜索用的比較多,如今不少公司都會把服務的日誌蒐集到ES而後經過kibana的discovery功能查找日誌。這樣比之前登錄到線上服務器一臺臺grep
方便不少。
如上圖所示,在菜單中選擇discovery
,而後就能看到咱們前面章節新建的index pattern。
在上圖的1的位置,我選擇了電商的index pattern,而後在2的位置選擇時間進行過濾,這裏我選擇是的1年前的全部數據。時間過來的維度不少,你們能夠一一嘗試下。1的旁邊有個搜索框,能夠輸入任意信息對索引進行搜索。除了通常的直接輸入字符串進行搜索以外,這裏還支持指定搜索某個字段,只須要在搜索框裏輸入相似下面:
user:"youssef"
就能夠搜索user
字段值知足youssef
的數據。
在圖中3的位置以直方圖的形式彙總了數據的分佈狀況,能夠看到咱們的數據主要都集中在2019年12月到2020年1月這段時間內。
圖中4的位置就是數據自己了,能夠支持table和json兩種方式顯示。左側的菜單裏支持過濾指定的字段顯示,這裏不展開來說了。
kibana自帶了不少可視化的組件,方便咱們對聚合後的結果進行可視化的展現。下面來看一個例子。
在左側菜單選擇visualize
,而後點擊右邊的+
號,以下圖所示:
這裏有不少可視化組件,我這裏以pie
餅圖爲例子說明。
如上圖所示,咱們在左邊選擇分桶聚合模式,而後分桶的字段是用戶性別字段,度量單位是count
,而後點擊上方的三角按鈕運行,結果就是上圖中展現的效果。在這個圖中能夠看到男女的比例。
假如咱們還想看下男女各自的城市分佈狀況,能夠添加一個子分桶,在左側下方點擊add sub buckets
。
如上圖,在子分桶裏咱們一樣選擇了terms
分桶,而後分桶的字段是用戶所在的城市。運行以後就是上圖中的效果。點擊左上角的save
按鈕,還能夠把當前的可視化結果保存。保存了以後咱們就能夠在dashboard上展現了。
dashboard能夠理解爲一個展現各類可視化組件的面板,咱們能夠把以前保存的可視化結果添加到面板中進行展現。
點擊左側菜單中的dashboard
,而後點擊create new dashboard
,而後點擊add
,選擇咱們前面保存的可視化組件。
下圖是一個基於咱們前面講的電商的index製做的面板展現示例