天天看點

你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!

Kibana是一個開源的分析和可視化平台,設計用于和Elasticsearch一起工作。

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

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

Kibana使得了解大量資料變得很容易。它簡單的、基于浏覽器的界面使你能夠快速建立和共享動态儀表闆,實時顯示Elasticsearch查詢的變化。

1. 安裝Kibana

你還在用指令看日志?快用 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

你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
或者 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 或者

2、指定一個索引模式來比對一個或多個你的Elasticsearch索引。當你指定了你的索引模式以後,任何比對到的索引都将被展示出來。畫外音:*比對0個或多個字元; 指定索引預設是為了比對索引,确切的說是比對索引名字)

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

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

你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!

現在,Kibana已經連接配接到你的Elasticsearch資料。Kibana展示了一個隻讀的字段清單,這些字段是比對到的這個索引配置的字段。

5. Discover

你可以從Discover頁面互動式的探索你的資料。你可以通路與所選擇的索引預設比對的每個索引中的每個文檔。你可以送出查詢請求,過濾搜尋結構,并檢視文檔資料。

你也可以看到比對查詢請求的文檔數量,以及字段值統計資訊。如果你選擇的索引模式配置了time字段,則文檔随時間的分布将顯示在頁面頂部的直方圖中。

你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
5.1. 設定時間過濾
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!

5.2. 搜尋資料

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

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

你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!

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)

你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!

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. 重新整理搜尋結果

你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
5.3. 按字段過濾
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
以上是控制清單顯示哪些字段,還有一種方式是在檢視文檔資料的時候點那個像書一樣的小圖示
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
删除也是可以的
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
我們還可以編輯一個DSL查詢語句,用于過濾篩選,例如:
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
5.4. 檢視文檔資料
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
5.5. 檢視文檔上下文
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
5.6. 檢視字段資料統計
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!

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軸

例如:

你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
更多請看這裡: 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。

你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!

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      
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!
你還在用指令看日志?快用 Kibana 吧,一張圖檔勝過千萬行日志!