1 概述
很多系統(tǒng)的日志都會放在 Kibana 供查詢冰木,就是所謂的 ELK。Kibana 除了可以使用界面供的一些 tab 或者 button 去篩選日志歇终,也可以在搜索欄中使用 Lucene
的語法簡單的交互式查詢逼龟。可以做基于字段的特定搜索肥哎,過濾數(shù)據(jù)疾渣,也可以查看索引號的文檔崖飘。
查詢的語法可以參考 官方文檔 ,非常易讀吊圾,非常容易翰蠢,包括正則語法和其他模糊匹配方法。
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
# 不能出現(xiàn)的操作符號"-"蔼啦,包含了 lucence捏肢,但不包含 apache...
+lucene-apache
2.3 范圍操作
可以指定日期、數(shù)字或者字符串字段的范圍
# [min TO max] 是閉區(qū)間
# {min TO max} 是開區(qū)間
@timestamp: [1510536210000 TO 1510550000000]
# * 表示一端不限制范圍
count:[10 TO *]
2.4 轉義
保留字符包括以下衣屏,需要使用轉義符來進行轉義:
# 例子
message: "domain\=jobmd_ent4ent"
# 轉義符
+-=&&||>