第十五章·Kibana深入-Dev Tools及Lucene語法


Dev Tools介紹

Dev Tools 頁面包含開發工具,您可以使用這些Dev Tools與Kibana中的數據進行交互。

原先的交互式控制台Sense,使用戶方便的通過瀏覽器直接與Elasticsearch進行交互。從Kibana 5開始改名並直接內建在Kibana,就是Dev Tools選項。

Kibana提供了Console UI來通過REST API與Elasticsearch交互,Console位於Kibana的Dev Tools欄下。Console有兩個主要區域,左邊是編輯區用來書寫REST請求,右邊用來顯示請求返回結果。


自動提示

Console提供了自動提示功能,可以為你提供API、方法等提示。編寫完請求后點擊綠色執行按鈕,會在右側面板給出請求結果。執行按鈕旁邊的“小扳手”按鈕,可以將請求copy轉化為curl(copy),還有一個功能就是自動縮緊格式(Auto Indent)。如果對已經鎖進好的代碼進行Auto Indent,Console會將請求體(body)縮進在一行中。


多請求查詢

Console支持多請求查詢,只需要你將左側選中執行即可。Console會一次請求Elasticsearch返回結果,多個請求也允許一下復制curl,非常方便。

![-c](media/15550434441190/15550443382225.jpg)

![-c](media/15550434441190/15550444612390.jpg)

----

快捷鍵

Console提供了一些快捷鍵,來提高使用效率。

快捷鍵 說明
ctrl/cmd + enter 提交請求
ctrl/cmd + alt/option + L 疊起/打開當前代碼
ctrl/cmd + up/down 跳到上一個或下一個執行塊
ctrl/cmd + I 縮進格式
esc 關閉當前提示框

歷史

點擊Console的頂部有History,會顯示最近500條請求成功的歷史紀錄。左側顯示歷史紀錄,點擊其中一條后會在右側顯示。

點擊apply會自動copy到下面的Console編輯區,點擊Clear會清空所有歷史請求。


配置(Setting)

Console提供了一些基礎配置,比如字體大小等。


關閉Console(Setting)

如果不想使用Console可以在$KIBANA/config/kibana.yml中設置:
console.enabled: false
這樣就關閉了Console了,不過重啟Kibana過程比較慢,需要幾分鍾。

Dev Tools常用查詢命令

上傳日志

不管在學任何開發語言,我們第一個學的都是"Hello World"

儀式感

PUT hello_world 


match_all查詢所有索引包括內容
GET _search { "query": { "match_all": {} } } 


查詢所有索引名稱

也就是查看一下我們在ES中有多少個日志

GET _cat/indices 


查詢集群節點是否禁用swap
GET _nodes?filter_path=**.mlockall

#結果 { "nodes": { "by_wSvKYQ5ycGlHxW0UWoQ": { "process": { "mlockall": false } }, "iYV6jXoFQsaJJCTBXtaoWA": { "process": { "mlockall": false } } } } 


查詢集群節點最大文件描述符
GET _nodes/stats/process?filter_path=**.max_file_descriptors #結果 { "nodes": { "by_wSvKYQ5ycGlHxW0UWoQ": { "process": { "max_file_descriptors": 131072 } }, "iYV6jXoFQsaJJCTBXtaoWA": { "process": { "max_file_descriptors": 131072 } } } } 


集群分片情況查詢
GET _cat/shards 

Lucene 語法介紹


全文搜索

在搜索欄輸入404,會返回所有字段值中包含404的日志

使用雙引號包起來作為一個短語搜索
"like Gecko"


字段搜索

也可以按頁面左側顯示的字段搜索
限定字段全文搜索:field:value
精確搜索:關鍵字加上雙引號filed:"value"
status:404 搜索http狀態碼為404的日志

字段本身是否存在
_exists_:http:返回結果中需要有http字段
_missing_:http:不能含有http字段


通配符搜索

? 匹配單個字符
* 匹配0到多個字符

可以看到兩次搜索內容左上角,第一次是109 hits,第二次是182 hits

第一次匹配到的內容只有109條,第二次有182條。

? * 不能用作第一個字符,例如:?status *status


正則搜索

es支持部分正則功能,性能較差
domain:/adm?n.vantage(fx[prime]).com.cn/


模糊搜索

quikc~ brwn~ foks~
~:在一個單詞后面加上~啟用模糊搜索,可以搜到一些拼寫錯誤的單詞

first~ 這種也能匹配到 frist

還可以設置編輯距離(整數),指定需要多少相似度
cromm~1 會匹配到 from 和 chrome
默認2,越大越接近搜索的原始值,設置為1基本能搜到80%拼寫錯誤的單詞


近似搜索

在短語后面加上~,可以搜到被隔開或順序不同的單詞
"where select"~5 表示 select 和 where 中間可以隔着5個單詞,可以搜到 select password from users where id=1


范圍搜索

數值/時間/IP/字符串
類型的字段可以對某一范圍進行查詢
length:[100 TO 200]
sip:["172.24.20.110" TO "172.24.20.140"]
date:{"now-6h" TO "now"}
tag:{b TO e} 搜索b到e中間的字符
count:[10 TO *] * 表示一端不限制范圍
count:[1 TO 5} [ ] 表示端點數值包含在范圍內,{ } 表示端點數值不包含在范圍內,可以混合使用,此語句為1到5,包括1,不包括5
可以簡化成以下寫法:
age:>10
age:<=10
age:(>=10 AND <20)


優先級

quick^2 fox
使用使一個詞語比另一個搜索優先級更高,默認為1,可以為0~1之間的浮點數,來降低優先級


邏輯操作

AND
OR

+:搜索結果中必須包含此項
-:不能含有此項
+apache -jakarta test aaa bbb:結果中必須存在apache,不能有jakarta,剩余部分盡量都匹配到


分組

(elasticsearch OR logstash) AND elasticsearch


字段分組

title:(+return +"pink panther")
host:(baidu OR qq OR google) AND host:(com OR cn)


轉譯特殊字符

+ - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /

以上字符當作值搜索的時候需要用\轉義
\(1\+1\)\=2用來查詢(1+1)=2


免責聲明!

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



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