Kibana 日誌查詢
1 概述
很多系統的日誌都會放在 Kibana 供查詢,就是所謂的 ELK。Kibana 除了可以使用界面供的一些 tab 或者 button 去篩選日誌,也可以在搜索欄中使用 Lucene
的語法簡單的互動式查詢。可以做基於欄位的特定搜索,過濾數據,也可以查看索引號的文檔。
2 Lucene 語法查詢
2.1 簡易查詢
如果查詢的時候沒有明確查詢的欄位,會默認為 _all
欄位,也就是全文查詢。也可以指定一個欄位,又稱為 field
來查詢。
# 全文查詢 ExceptionException# 指定查詢欄位 message 里的 Exceptionmessage: Exception# 查詢短語message: "java.lang.NullPointerException"# 任何 message 欄位都包含 Exceptionmessage*: Exception# 通配符的使用,? 代替單個字元,* 代替零個或者多個字元message: Exceptio*# 正則表達式通過使用 / 包圍,可以植入到查詢的字元串中message: /Ex?(cep[tion])/# 另一個正則的使用,匹配的含義是「兩位非abc的任意字元」info.recallId: /[^abc]{2}/
2.2 多欄位查詢
可以通過一些布爾操作符來使用,如果查詢中沒有任意的操作符號,那麼默認使用 OR 操作符。
# 支持 AND, OR, NOT,也可以寫成&&, ||, !操作符message: ((Exception AND Error) OR (Error AND Exception) OR Error) AND NOT Exception# 包含 lucene 但不包含 elasticsearchlucene NOT elasticsearch# + 必須包含,其他可有可無,lucene 必須包含,apache 可有可無...+lucene apache# 不能出現的操作符號"-",包含了 lucence,但不包含 apache...+lucene-apache
2.3 範圍操作
可以指定日期、數字或者字元串欄位的範圍
# [min TO max] 是閉區間# {min TO max} 是開區間@timestamp: [1510536210000 TO 1510550000000]# * 表示一端不限制範圍count:[10 TO *]
2.4 轉義
保留字元包括以下,需要使用轉義符來進行轉義:
# 例子message: "domain=jobmd_ent4ent" # 轉義符+-=&&||><!(){}[]^"~*?:/
2.5 模糊查詢
使用"~」字元以及一個緊隨其後的整數值,當使用該修飾符修飾一個詞項的時候,意味著我們想搜索那些包含該此項近詞項的文檔。"~"字元後的整數值確定了近似詞項與原始詞項的最大編輯距離。
# mastering book Elasticsearch 也會被認為匹配title: "mastering Elasticsearch"~2
3 Kibana 中一些好用的功能
3.1 Save Search
可以保存之前的 query
,通過歷史記錄可以查找最近的使用。
3.2 時間過濾器
可以設置相對 relative
或者絕對 absolute
時間過濾器,前者是相對於當前時間的時間,後者是絕對時間。
3.3 自動刷新
固定的查詢條件的情況下,可以設置自動刷新的時間來刷新可視區域。
3.4 直方圖選擇區域
選擇區域可以出發時間過濾器。
3.5 欄位列表搜索欄位
可以通過 add
添加不同組合。
3.6 share 功能
導航欄處有一個 share 按鈕,將查詢的語句通過鏈接的方式進行分享,分別團隊成員一起查詢。
4 應用例子-某用戶的推薦 bad case
- 確定這個 bad case 的請求參數,拿到
id
和domain
- 確定請求發生的時間或者時間段
# 已知 domain 為 bbs_app_recomm,並且用戶名為「oscar」的請求,在2017年11月7日 下午4點前後,有一次推薦的 bad case,需要這次推薦的過程,了解為何會產生這次推薦的結果。# 通過查詢到的結果上下瀏覽,得到該用戶的 recall 和 rerank 結果,大致可以找到 bad case 的原因。message: "oscar" AND @timestamp: 1510042056000
推薦閱讀:
※大數據Hadoop常見異常處理,初學的你要看看
※大數據計數原理1+0=1這你都不會算(四)No.52
※大數據時代來了,你準備好了嗎?
※中華財寶:珠寶行業在大數據時代該如何前行?
※大數據交易的「上海模式」,底氣在哪裡? | 數據科學50人·湯奇峰
TAG:大數據 |