Kibana(一張圖片勝過千萬行日誌)

weixin_34101784發表於2018-08-15

Kibana是一個開源的分析和視覺化平臺,設計用於和Elasticsearch一起工作。

你用Kibana來搜尋,檢視,並和儲存在Elasticsearch索引中的資料進行互動。

你可以輕鬆地執行高階資料分析,並且以各種圖示、表格和地圖的形式視覺化資料。

Kibana使得理解大量資料變得很容易。它簡單的、基於瀏覽器的介面使你能夠快速建立和共享動態儀表板,實時顯示Elasticsearch查詢的變化。

1.  安裝Kibana


 

 

2.  Kibana配置


 https://www.elastic.co/guide/en/kibana/current/settings.html

 

3.  訪問Kibana


 Kibana是一個Web應用程式,你可以通過5601來訪問它。例如:localhost:5601 或者 http://YOURDOMAIN.com:5601

當訪問Kibana時,預設情況下,Discover頁面載入時選擇了預設索引模式。時間過濾器設定為最近15分鐘,搜尋查詢設定為match-all(\*)

 

3.1.  檢查Kibana狀態

http://localhost:5601/status

或者 http://192.168.101.5:5601/api/status 返回JSON格式狀態資訊

 

4.  用Elasticsearch連線到Kibana


 在你開始用Kibana之前,你需要告訴Kibana你想探索哪個Elasticsearch索引。第一次訪問Kibana是,系統會提示你定義一個索引模式以匹配一個或多個索引的名字。

(提示:預設情況下,Kibana連線允許在localhost上的Elasticsearch例項。為了連線到一個不同的Elasticsearch例項,修改kabana.yml中Elasticsearch的URL,然後重啟Kibana。)

為了配置你想要用Kibana訪問的Elasticsearch索引:

  1、訪問Kibana UI。例如,localhost:56011 或者 http://YOURDOMAIN.com:5601

  2、指定一個索引模式來匹配一個或多個你的Elasticsearch索引。當你指定了你的索引模式以後,任何匹配到的索引都將被展示出來。

  (畫外音:*匹配0個或多個字元;  指定索引預設是為了匹配索引,確切的說是匹配索引名字)

  3、點選“Next Step”以選擇你想要用來執行基於時間比較的包含timestamp欄位的索引。如果你的索引沒有基於時間的資料,那麼選擇“I don’t want to use the Time Filter”選項。

  4、點選“Create index pattern”按鈕來新增索引模式。第一個索引模式自動配置為預設的索引預設,以後當你有多個索引模式的時候,你就可以選擇將哪一個設為預設。(提示:Management > Index Patterns)

現在,Kibana已經連線到你的Elasticsearch資料。Kibana展示了一個只讀的欄位列表,這些欄位是匹配到的這個索引配置的欄位。

 

5.  Discover


你可以從Discover頁面互動式的探索你的資料。你可以訪問與所選擇的索引預設匹配的每個索引中的每個文件。你可以提交查詢請求,過濾搜尋結構,並檢視文件資料。你也可以看到匹配查詢請求的文件數量,以及欄位值統計資訊。如果你選擇的索引模式配置了time欄位,則文件隨時間的分佈將顯示在頁面頂部的直方圖中。

 

5.1.  設定時間過濾

5.2.  搜尋資料

你可以在搜尋框中輸入查詢條件來查詢當前索引模式匹配的索引。在查詢的時候,你可以使用Kibana標準的查詢語言(基於Lucene的查詢語法)或者完全基於JSON的Elasticsearch查詢語言DSL。Kibana查詢語言可以使用自動完成和簡化的查詢語法作為實驗特性,您可以在查詢欄的“選項”選單下進行選擇。

當你提交一個查詢請求時,直方圖、文件表和欄位列表都會更新,以反映搜尋結果。命中(匹配到的文件)總數會顯示在工具欄中。文件表格中顯示了前500個命中。預設情況下,按時間倒序排列,首先顯示最新的文件。你可以通過點選“Time”列來逆轉排序順序。

 

5.2.1.  Lucene查詢語法

Kibana查詢語言基於Lucene查詢語法。下面是一些提示,可能會幫到你:

  • 為了執行一個文字搜尋,可以簡單的輸入一個文字字串。例如,如果你想搜尋web伺服器的日誌,你可以輸入關鍵字"safari",這樣你就可以搜尋到所有有關"safari"的欄位
  • 為了搜尋一個特定欄位的特定值,可以用欄位的名稱作為字首。例如,你輸入"status:200",將會找到所有status欄位的值是200的文件
  • 為了搜尋一個範圍值,你可以用括號範圍語法,[START_VALUE TO END_VALUE]。例如,為了找到狀態碼是4xx的文件,你可以輸入status:[400 TO 499]
  • 為了指定更改複雜的查詢條件,你可以用布林操作符 AND , OR , 和 NOT。例如,為了找到狀態碼是4xx並且extension欄位是php或者html的文件,你可以輸入status:[400 TO 499] AND (extension:php OR extension:html)

5.2.2.  Kibana查詢語法增強

新的更簡單的語法

如果你熟悉Kibana的舊Lucene查詢語法,那麼你應該對這種新的語法也不會陌生。基本原理保持不變,我們只是簡單地改進了一些東西,使查詢語言更易於使用。

response:200 將匹配response欄位的值是200的文件

用引號引起來的一段字串叫短語搜尋。例如,message:"Quick brown fox"  將在message欄位中搜尋"quick brown fox"這個短語。如果沒有引號,將會匹配到包含這些詞的所有文件,而不管它們的順序如何。這就意味著,會匹配到"Quick brown fox",而不會匹配"quick fox brown"。(畫外音:引號引起來作為一個整體)

查詢解析器將不再基於空格進行分割。多個搜尋項必須由明確的布林運算子分隔。注意,布林運算子不區分大小寫。

在Lucene中,response:200 extension:php 等價於 response:200 and extension:php。這將匹配response欄位值匹配200並且extenion欄位值匹配php的文件。

如果我們把中間換成or,那麼response:200 or extension:php將匹配response欄位匹配200 或者 extension欄位匹配php的文件。

預設情況下,and 比 or 具有更高優先順序。

response:200 and extension:php or extension:css 將匹配response是200並且extension是php,或者匹配extension是css而response任意

括號可以改變這種優先順序

response:200 and (extension:php or extension:css) 將匹配response是200並且extension是php或者css的文件

還有一種簡寫的方式:

response:(200 or 404) 將匹配response欄位是200或404的文件。字元值也可以是多個,比如:tags:(success and info and security)

還可以用not

not response:200 將匹配response不是200的文件

response:200 and not (extension:php or extension:css) 將匹配response是200並且extension不是php也不是css的文件

範圍檢索和Lucene有一點點不同

代替 byte:>1000,我們用byte > 1000

>, >=, <, <= 都是有效的操作符

response:*  將匹配所有存在response欄位的文件

萬用字元查詢也是可以的。machine.os:win* 將匹配machine.os欄位以win開頭的文件,像"windows 7"和"windows 10"這樣的值都會被匹配到。

萬用字元也允許我們一次搜尋多個欄位,例如,假設我們有machine.os和machine.os.keyword兩個欄位,我們想要搜尋這兩個欄位都有"windows 10",那麼我們可以這樣寫"machine.os*:windows 10"

5.2.3.  重新整理搜尋結果

 5.3.  按欄位過濾

以上是控制列表顯示哪些欄位,還有一種方式是在檢視文件資料的時候點那個像書一樣的小圖示

 

刪除也是可以的

我們還可以編輯一個DSL查詢語句,用於過濾篩選,例如

 

5.4.  檢視文件資料

 

5.5.  檢視文件上下文

 

5.6.  檢視欄位資料統計

 

6.  Visualize


 Visualize使得你可以建立在你的Elasticsearch索引中的資料的視覺化效果。然後,你可以構建dashboard來展示相關視覺化。

Kibana視覺化是基於Elasticsearch查詢的。通過用一系列的Elasticsearch聚集來提取並處理你的資料,你可以建立圖片來線上你需要了解的趨勢、峰值和低點。

6.1.  建立一個視覺化

為了建立一個視覺化的檢視:

第1步:點選左側導航條中的“Visualize”按鈕

第2步:點選“Create new visualization”按鈕或者加號(+)按鈕

第3步:選擇一個視覺化型別

第4步:指定一個搜尋查詢來檢索視覺化資料

第5步:在視覺化的構建器中選擇Y軸的聚合操作。例如,sum,average,count等等

第6步:設定X軸

例如:

 

更多請看這裡

https://www.elastic.co/guide/en/kibana/current/createvis.html

https://www.elastic.co/guide/en/kibana/current/xy-chart.html

https://www.elastic.co/guide/en/kibana/current/visualize.html

 

7.  Dashboard


 Kibana儀表板顯示視覺化和搜尋的集合。你可以安排、調整和編輯儀表板內容,然後儲存儀表板以便共享它。

7.1.  構建一個Dashboard

第1步:在導航條上點選“Dashboard

第2步:點選“Create new dashboard”或者“加號(+)”按鈕

第3步:點選“Add”按鈕

第4步:為了新增一個視覺化,從視覺化列表中選擇一個,或者點選“Add new visualization”按鈕新建立一個

第5步:為了新增一個已儲存的查詢,點選“Saved Search”選項卡,然後從列表中選擇一個

第6步:當你完成新增並且調整了dashboard的內容後,去頂部選單欄,點選“Save”,然後輸入一個名字。

預設情況下,Kibana儀表板使用淺色主題。要使用深色主題,單擊“選項”並選擇“使用深色主題”。要將dark主題設定為預設,請轉到管理>Management > Advanced ,並將dashboard:defaultDarkTheme設定為On。

 

8.  Monitoring


 

Elasticsearch控制檯列印日誌
[2018-08-15T14:48:26,874][INFO ][o.e.c.m.MetaDataCreateIndexService] [Px524Ts] [.monitoring-kibana-6-2018.08.15] creating index, cause [auto(bulk api)], templates [.monitoring-kibana], shards [1]/[0], mappings [doc]

Kibana控制檯列印日誌
log   [03:26:53.605] [info][license][xpack] Imported license information from Elasticsearch for the [monitoring] cluster: mode: basic | status: active

https://www.elastic.co/guide/en/kibana/current/elasticsearch-metrics.html

 

9.  其它相關


 Logstash

Elasticsearch

 

相關文章