不少系統的日誌都會放在 Kibana 供查詢,就是所謂的 ELK。Kibana 除了可使用界面供的一些 tab 或者 button 去篩選日誌,也能夠在搜索欄中使用 Lucene
的語法簡單的交互式查詢。能夠作基於字段的特定搜索,過濾數據,也能夠查看索引號的文檔。
查詢的語法能夠參考 官方文檔 ,很是易讀,很是容易,包括正則語法和其餘模糊匹配方法。html
若是查詢的時候沒有明確查詢的字段,會默認爲 _all
字段,也就是全文查詢。也能夠指定一個字段,又稱爲 field
來查詢。java
# 全文查詢 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}/
能夠經過一些布爾操做符來使用,若是查詢中沒有任意的操做符號,那麼默認使用 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
能夠指定日期、數字或者字符串字段的範圍apache
# [min TO max] 是閉區間 # {min TO max} 是開區間 @timestamp: [1510536210000 TO 1510550000000] # * 表示一端不限制範圍 count:[10 TO *]
保留字符包括如下,須要使用轉義符來進行轉義:bash
# 例子 message: "domain\=jobmd_ent4ent" # 轉義符 +-=&&||><!(){}[]^"~*?:\/
使用"~」字符以及一個緊隨其後的整數值,當使用該修飾符修飾一個詞項的時候,意味着咱們想搜索那些包含該此項近詞項的文檔。"~"字符後的整數值肯定了近似詞項與原始詞項的最大編輯距離。app
# mastering book Elasticsearch 也會被認爲匹配 title: "mastering Elasticsearch"~2
能夠保存以前的 query
,經過歷史記錄能夠查找最近的使用。dom
能夠設置相對 relative
或者絕對 absolute
時間過濾器,前者是相對於當前時間的時間,後者是絕對時間。elasticsearch
固定的查詢條件的狀況下,能夠設置自動刷新的時間來刷新可視區域。ide
選擇區域能夠出發時間過濾器。ui
能夠經過 add
添加不一樣組合。
導航欄處有一個 share 按鈕,將查詢的語句經過連接的方式進行分享,分別團隊成員一塊兒查詢。
id
和 domain
# 已知 domain 爲 bbs_app_recomm,而且用戶名爲「oscar」的請求,在2017年11月7日 下午4點先後,有一次推薦的 bad case,須要此次推薦的過程,瞭解爲什麼會產生此次推薦的結果。 # 經過查詢到的結果上下瀏覽,獲得該用戶的 recall 和 rerank 結果,大體能夠找到 bad case 的緣由。 message: "oscar" AND @timestamp: 1510042056000