Kibana 日志查詢


1 概述

很多系統的日志都會放在 Kibana 供查詢,就是所謂的 ELK。Kibana 除了可以使用界面供的一些 tab 或者 button 去篩選日志,也可以在搜索欄中使用 Lucene 的語法簡單的交互式查詢。可以做基於字段的特定搜索,過濾數據,也可以查看索引號的文檔。
查詢的語法可以參考 官方文檔 ,非常易讀,非常容易,包括正則語法和其他模糊匹配方法。

2 Lucene 語法查詢

2.1 簡易查詢

如果查詢的時候沒有明確查詢的字段,會默認為 _all 字段,也就是全文查詢。也可以指定一個字段,又稱為 field 來查詢。

# 全文查詢 Exception Exception # 指定查詢字段 message 里的 Exception message: Exception # 查詢短語 message: "java.lang.NullPointerException" # 任何 message 字段都包含 Exception message\*: 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 但不包含 elasticsearch lucene 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM