午夜福利啪爽国产片精品_国产亚洲永久域名_在线观看日本国产成人免费_免费天堂无码人妻成人AV电影_久久99热全是成人精品

Elasticsearch 日志能否把全部請求打印出來? 世界聚焦

1、實戰(zhàn)問題

請問一下球主,es怎么配置可以把請求日志都打印出來。就是不管是調(diào)用借口,還是kibana查詢數(shù)據(jù),es能打印dsl的請求日志嗎??求指導。怎么配置?


(相關(guān)資料圖)

——問題來源:https://t.zsxq.com/09vv8rqZj

2、Elasticsearch 日志必知必會2.1 Elasticsearch 日志用途集群狀態(tài)監(jiān)測和故障診斷。2.2 Elasticsearch 日志缺省路徑$ES_HOME/logs。如果命令行啟動 ES,則日志輸出信息也是命令行。2.3 Elasticsearch 日志基于組件Log4j 2https://logging.apache.org/log4j/2.x/2.4 Elasticsearch 日志配置文件log4j2.properties 。和 elasticsearch.yml 文件路徑相同。2.5 Elasticsearch 日志配置內(nèi)容命名規(guī)范日志隨日期滾動策略(日志大小等條件設(shè)置)等。2.6 Elasticsearch 日志級別

由低到高分別為:TRACE -> DEBUG -> INFO -> WARN -> ERROR -> FATAL,如下圖所示。

圖片來自:spring 官網(wǎng)

這些大家并不陌生,日志級別越低(前提系統(tǒng)設(shè)置的話),打印輸出的越多;日志級別越高,比如:FATAL,只是特定致命場景才會打印輸出,一般遇不到。

2.7 Elasticsearch 默認日志類型調(diào)整方式

前提:支持動態(tài)更新。

方式一:支持動態(tài)更新,無需重啟。

PUT/_cluster/settings{"persistent":{"logger.org.elasticsearch.discovery":"DEBUG"}}

方式二:elasticsearch.yml 配置(靜態(tài)配置方式,重啟后生效)。

logger.org.elasticsearch.discovery:DEBUG

方式三:log4j2.properties 配置(靜態(tài)配置方式,重啟后生效)

logger.discovery.name=org.elasticsearch.discoverylogger.discovery.level=debug

3、日志調(diào)到最低級別,看能否輸出檢索DSL?

問題來了?改成最低TRACE級別,日志能輸出咱們的日期請求嗎?試試看。

那怎么辦?如何輸出請求日志?此路已然不同,我們只能另尋他路。除了基礎(chǔ)日志,我們還有slowlog日志。

4、Elasticsearch slowlog日志必知必會4.1 Elasticsearc slowlog 用途

見名釋義,本質(zhì)是:慢日志,又可以分為:慢檢索日志和慢寫入日志。

slowlog 用于顯示:query 階段 和 fetch 階段的日志。

Elasticsearch 查詢請求如下圖所示。

圖片來自 Elastic 官方博客

query階段的核心步驟:

客戶端發(fā)送請求到協(xié)調(diào)節(jié)點;協(xié)調(diào)階段轉(zhuǎn)發(fā)請求到索引的每個主或副本分片;分片本地查詢完成后,將結(jié)果添加到本地的優(yōu)先隊列;每個分片將本地結(jié)果返回給協(xié)調(diào)節(jié)點,協(xié)調(diào)節(jié)點合并完成后,形成全局排序列表。

fetch階段的核心步驟:

協(xié)調(diào)節(jié)點接收到客戶端請求后,將 GET 請求(來自query 階段形成的全局排序列表結(jié)果數(shù)據(jù))-轉(zhuǎn)發(fā)給相關(guān)節(jié)點。接收到請求后的節(jié)點向協(xié)調(diào)節(jié)點返回結(jié)果數(shù)據(jù)。待全部結(jié)果數(shù)據(jù)都返回后,協(xié)調(diào)節(jié)點將結(jié)果返回給客戶端。4.2 Elasticsearc slowlog 設(shè)置內(nèi)容含義

如下所示,拿 query 階段舉例(以實測為準):

query 請求耗時超過 500ms,打印 trace 日志。query 請求耗時超過 2s,打印 debug 日志。query 請求耗時超過 5s,打印 info 日志。query 請求耗時超過 10s,打印 warn 日志。

index.search.slowlog.threshold.query.warn:10sindex.search.slowlog.threshold.query.info:5sindex.search.slowlog.threshold.query.debug:2sindex.search.slowlog.threshold.query.trace:500ms

fetch 階段設(shè)置如下,原理同上。

index.search.slowlog.threshold.fetch.warn:1sindex.search.slowlog.threshold.fetch.info:800msindex.search.slowlog.threshold.fetch.debug:500msindex.search.slowlog.threshold.fetch.trace:200ms

index 寫入日志設(shè)置如下,原理同上。

index.indexing.slowlog.threshold.index.warn:10sindex.indexing.slowlog.threshold.index.info:5sindex.indexing.slowlog.threshold.index.debug:2sindex.indexing.slowlog.threshold.index.trace:500msindex.indexing.slowlog.source:1000

4.3 slowlog 中 source:1000 含義是?

"index.indexing.slowlog.source":"1000"

如下這個問題至少被問到三次,問題大致如下:

slowlog 日志顯示不全、被截取了怎么辦?

默認:記錄slowlog中_source的前1000個字符。設(shè)置為 true 含義:記錄整個源請求。設(shè)置為 false 或 0 含義:不記錄源請求。特別說明:原始_source被重新格式化,以確保它適合于單個日志行。4.3 Elasticsearch slowlog 如何設(shè)置?

直接更新 setting 就可以,動態(tài)參數(shù),支持動態(tài)更新。

PUT/my-index-000001/_settings{"index.search.slowlog.threshold.query.warn":"10s","index.search.slowlog.threshold.query.info":"5s","index.search.slowlog.threshold.query.debug":"2s","index.search.slowlog.threshold.query.trace":"500ms","index.search.slowlog.threshold.fetch.warn":"1s","index.search.slowlog.threshold.fetch.info":"800ms","index.search.slowlog.threshold.fetch.debug":"500ms","index.search.slowlog.threshold.fetch.trace":"200ms"}

4.3 基于slowlog 打印請求日志

slowlog 既然可以基于閾值打印輸出請求日志,閾值勢必可以設(shè)置很低,最低設(shè)置為0,必然能打印出全部日志了。

試試看?

如下是基于 packets-2022-12-14 進行的 index、fetch、query 的 debug 設(shè)置。

PUTpackets-2022-12-14/_settings{"index.indexing.slowlog.threshold.index.debug":"0s","index.search.slowlog.threshold.fetch.debug":"0s","index.search.slowlog.threshold.query.debug":"0s"}

設(shè)置完成后,在 kibana 控制臺隨意加個 query 請求。

日志存儲在:elasticsearch_index_search_slowlog.json 文件下,如下圖所示。

如下圖標紅所示,任意的請求 DSL 被打印出來。

開篇問題得以求解完成!

5、小結(jié)

Elasticearch 日志協(xié)助排查集群故障,慢日志協(xié)助排查寫入、查詢層面的慢寫入、慢查詢問題。集群規(guī)模大,可以獨立采集到 Kibana 可視化展示,更為方便和快捷!

你有沒有使用 Elasticsearch 日志?歡迎留言討論。如何使用的?

參考

[1]https://www.elastic.co/guide/en/elasticsearch/reference/current/logging.html

[2]https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-slowlog.html

推薦閱讀

全網(wǎng)首發(fā)!從 0 到 1 Elasticsearch 8.X 通關(guān)視頻

重磅 | 死磕 Elasticsearch 8.X 方法論認知清單(2022年國慶更新版)

如何系統(tǒng)的學習 Elasticsearch ?

更短時間更快習得更多干貨!

和全球1800+Elastic 愛好者一起精進!

比同事?lián)屜纫徊綄W習進階干貨!

關(guān)鍵詞: 如下圖所示 打印輸出

推薦閱讀

滬ICP備2022005074號-40

聯(lián)系我們:5 85 59 73 @qq.com

版權(quán)所有 ? 2020 今日印刷網(wǎng)

關(guān)于我們| 聯(lián)系我們| 投稿合作| 法律聲明| 廣告投放

所載文章、數(shù)據(jù)僅供參考,使用前務(wù)請仔細閱讀網(wǎng)站聲明。本站不作任何非法律允許范圍內(nèi)服務(wù)!