認識Kibana
Kibana 是一個為 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它對日志進行高效的搜索、可視化、分析等各種操作。Kibana的使用場景主要集中在兩方面:
- 實時監控。通過histogram面板,配合不同條件的多個queries可以對一個事件走很多個維度組合出不同的時間序列走勢。時間序列數據是最常見的監控報警了。
- 問題分析。通過Kibana的交互式界面可以很快地將異常時間或者事件范圍縮小到秒級或者個位數。期望一個完美的系統可以給你自動找到問題並且解決是不現實的,能夠讓你兩三下就從TB級的數據里看到關鍵數據以便做出判斷就很棒了。這時候,一些非histogram的其他面板還可能會體現出你意想不到的價值。全局狀態下看似很普通的結果,可能在你鎖定某個范圍的時候發生劇烈的反方向的變化,這時候你就能從這個維度去重點排查。而表格面板則直觀的顯示出你最關心的字段,加上排序等功能。入庫前字段切分好,對於排錯分析真的至關重要。
使用Kibana
這里默認Kibana5已經安裝部署完畢。預覽圖如下:
Kibana連接Elasticsearch
在開始使用Kibana之前,你需要告訴它打算探索哪個ElasticSearch索引。第一次訪問的時候,你會被要求定義一個index pattern用來匹配一個或多個索引。
1、點擊工具欄中的Management --> 選擇index patterns --> 點擊add new 按鈕。默認情況下,Kibana認為你要訪問的是通過Logstash導入ElasticSearch的數據。這時候你可以用默認的logstash-*作為你的index pattern。通配符(*)匹配索引名中零到多個字符。這里我寫的index pattern為logs-bd-keyword*。
2、然后選擇一個包含了時間戳的索引字段,可以用來做基於時間的處理。Kibana會讀取索引的映射,然后列出所有包含了時間戳的字段(實際是字段類型為date的字段,而不是"看起來像時間戳的字段")。如果你的索引沒有基於時間的數據,關閉Index contains time-based envents參數。
3、點擊create之后,第一個被添加的pattern會自動被設置成默認值。如果有多個index pattern的時候,可以在Discover索引模式里選擇一個進行探索數據。
探索數據(Discover功能)
- 設置時間過濾器
時間過濾器的作用是把搜索結果限制在一個特定的周期內。可以選擇quick時間、relative相對時間、absolute絕對時間來進行過濾。也可以在直方圖上設置時間過濾器:想要放大那個時間間隔,點擊相應的柱體;單機並拖曳一個時間區域。注意需要等到光標變成加號,才意味着這是一個有效的起始點。可以用瀏覽器的后退鍵來回退你的操作。
- 搜索數據
在Discover頁提交一個搜索,你就可以搜索匹配當前索引模式的索引數據了。支持Lucene query syntax,也可以用完整的基於JSON的Query DSL。顯示結果的文檔表格顯示前500個匹配文檔。最新的文檔最先顯示。你也可以保存(save)常用的搜索條件或使用(open)之前保存的搜索條件。new則是新建一個查詢。下面是幾個示例:
a) 簡單的文本搜索,直接輸入文本字符串。比如,如果你在搜索網站服務器日志,可以輸入Safari來搜索各字段中的Safari單詞。
b) 要搜索特定字段中的值,則在值前加上字段名。比如,你可以輸入status:200來限制搜索結果都是在status字段里有200的內容。
c) 要搜索一個值的范圍,你可以用范圍查詢語法。比如,要查找4xx的狀態碼,你可以輸入status:[400 TO 499]。
d) 要指定更負責的搜索標准,可以用布爾操作符AND,OR,和NOT。比如要查找4xx的狀態碼,還是php和html結尾的數據,你可以輸入status:[400 TO 499] AND (extension:php OR extension:html)。
- 按字段過濾
你可以過濾搜索結果,只顯示在某字段中包含了特定值的文檔。也可以創建反向過濾器,排除包含特定字段值的文檔。比如存在字段字段為responsetime,現在對該字段進行過濾,可以選擇字段並點擊add:
如果想要移除,remove該字段即可:
下面再舉一個添加過濾器的例子,每個字段下面默認會顯示次數前5的值,比如添加字段localip的值為10.205.51.20的過濾器,只要點擊+號的按鈕即可,結果只顯示包含該localip為10.205.51.20的文檔;同樣地反向過濾可以點擊-號:
如果想要移除,點擊刪除符號即可
參考資料
《ELK stack權威指南》
https://www.elastic.co/guide/en/kibana/5.1/index.html