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,非常方便。


----
快捷鍵 |
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