Elasticsearch 日志能否把全部请求打印出来?|报道
1、实战问题请问一下球主,es怎么配置可以把请求日志都打印出来。就是不管是调用借口,还是kibana查询数据,es能打印dsl的请求日志吗??求指
请问一下球主,es怎么配置可以把请求日志都打印出来。就是不管是调用借口,还是kibana查询数据,es能打印dsl的请求日志吗??求指导。怎么配置?
——问题来源:https://t.zsxq.com/09vv8rqZj
【资料图】
2、Elasticsearch 日志必知必会2.1 Elasticsearch 日志用途集群状态监测和故障诊断。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 日志配置内容命名规范日志随日期滚动策略(日志大小等条件设置)等。2.6 Elasticsearch 日志级别由低到高分别为:TRACE -> DEBUG -> INFO -> WARN -> ERROR -> FATAL,如下图所示。
这些大家并不陌生,日志级别越低(前提系统设置的话),打印输出的越多;日志级别越高,比如:FATAL,只是特定致命场景才会打印输出,一般遇不到。
2.7 Elasticsearch 默认日志类型调整方式前提:支持动态更新。
方式一:支持动态更新,无需重启。PUT/_cluster/settings{"persistent":{"logger.org.elasticsearch.discovery":"DEBUG"}}方式二:elasticsearch.yml 配置(静态配置方式,重启后生效)。
logger.org.elasticsearch.discovery:DEBUG方式三:log4j2.properties 配置(静态配置方式,重启后生效)
logger.discovery.name=org.elasticsearch.discoverylogger.discovery.level=debug3、日志调到最低级别,看能否输出检索DSL?
问题来了?改成最低TRACE级别,日志能输出咱们的日期请求吗?试试看。
那怎么办?如何输出请求日志?此路已然不同,我们只能另寻他路。除了基础日志,我们还有slowlog日志。
4、Elasticsearch slowlog日志必知必会4.1 Elasticsearc slowlog 用途见名释义,本质是:慢日志,又可以分为:慢检索日志和慢写入日志。
slowlog 用于显示:query 阶段 和 fetch 阶段的日志。
Elasticsearch 查询请求如下图所示。
图片来自 Elastic 官方博客
query阶段的核心步骤:
客户端发送请求到协调节点;协调阶段转发请求到索引的每个主或副本分片;分片本地查询完成后,将结果添加到本地的优先队列;每个分片将本地结果返回给协调节点,协调节点合并完成后,形成全局排序列表。fetch阶段的核心步骤:
协调节点接收到客户端请求后,将 GET 请求(来自query 阶段形成的全局排序列表结果数据)-转发给相关节点。接收到请求后的节点向协调节点返回结果数据。待全部结果数据都返回后,协调节点将结果返回给客户端。4.2 Elasticsearc slowlog 设置内容含义如下所示,拿 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 阶段设置如下,原理同上。
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 写入日志设置如下,原理同上。
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:10004.3 slowlog 中 source:1000 含义是?
"index.indexing.slowlog.source":"1000"
如下这个问题至少被问到三次,问题大致如下:
默认:记录slowlog中_source的前1000个字符。设置为 true 含义:记录整个源请求。设置为 false 或 0 含义:不记录源请求。特别说明:原始_source被重新格式化,以确保它适合于单个日志行。4.3 Elasticsearch slowlog 如何设置?slowlog 日志显示不全、被截取了怎么办?
直接更新 setting 就可以,动态参数,支持动态更新。
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 既然可以基于阈值打印输出请求日志,阈值势必可以设置很低,最低设置为0,必然能打印出全部日志了。
试试看?
如下是基于 packets-2022-12-14 进行的 index、fetch、query 的 debug 设置。
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"}
设置完成后,在 kibana 控制台随意加个 query 请求。
日志存储在:elasticsearch_index_search_slowlog.json 文件下,如下图所示。
如下图标红所示,任意的请求 DSL 被打印出来。
开篇问题得以求解完成!
5、小结Elasticearch 日志协助排查集群故障,慢日志协助排查写入、查询层面的慢写入、慢查询问题。集群规模大,可以独立采集到 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
推荐阅读全网首发!从 0 到 1 Elasticsearch 8.X 通关视频
重磅 | 死磕 Elasticsearch 8.X 方法论认知清单(2022年国庆更新版)
如何系统的学习 Elasticsearch ?
更短时间更快习得更多干货!
和全球1800+Elastic 爱好者一起精进!
比同事抢先一步学习进阶干货!1、实战问题请问一下球主,es怎么配置可以把请求日志都打印出来。就是不管是调用借口,还是kibana查询数据,es能打印dsl的请求日志吗??求指
为缓解广西新冠感染者用药需求,支持全区居民抗击疫情,自治区工业和信息化厅会同自治区商务厅,联合京东健康于12月31日上线“广西防疫药品精
最美红叶季到!南粤红叶景观受市民追捧
智通财经APP讯,红星美凯龙(601828)(01528)公布,于2022年12月30日,董事会同意公司向上海星之域商业经营管理有限公司(以下简称“
【红山社区卫生服务中心新冠疫苗接种点】接种时间:接种对象:1、完成全程新冠灭活疫苗两针并与第二针间隔满6个月的18周岁以上居民,可接种加强
武汉跨年元旦|➤江岸区倒计时➤放飞气球倒计时还记得每年的跨年我们都会在江汉路放气球,每个气球,都是一个心愿;每次放飞,都是一次和理想的
本报讯(记者 潘福达)中国人民银行近日公布的《2022年第四季度城镇
中新网12月29日电据路透社报道,法国健康风险委员会负责人29日表示,目前在中国流传的是奥密克戎变异毒株,法国没有必要针
入馆要求1 到馆读者可提前通过市南区图书馆微信公众号“服务”菜单中“到馆预约”进行实名预约,预约过程中如有问题可拨打服务电话咨询:0532-
参考消息网12月29日报道据俄罗斯卫星社29日报道,印度新德里电视台援引消息人士的话说,在乌兹别克斯坦18名儿童疑似因服用(@参考消息)
2023年桂林银行元旦营业时间桂林地区元旦假期期间,网点营业时间有所调整,请查看以下信息表,方便您合理安排出行时间。各支行(营业部)日期星
Baird分析师BenKallo将特斯拉(TSLA US)目标价从316美元下调至252美元,并保持“跑赢大盘”的评级。鉴于特斯拉首席执行官埃隆·马斯克最近对
格隆汇12月28日丨拓尔思公布,自2022年11月17日至2022年12月28日,公司股票已有10个交易日的收盘价不低于“拓尔转债”当期转股价格(9 91元 股)
描写五角枫的唯美句子精选75句1 秋风中,一簇又一簇的枫叶轻轻摇动着,好似一团团燃烧的火焰,让人感到温馨。2 秋风凉,枝叶黄,红了枫叶相思
CFi CN讯:根据中国证券监督管理委员会证监许可[2021]201号《关于核准宁波德业科技股份有限公司首次公开发行股票的批复》核准,公司向社会公开
中国工程院院士邬贺铨:工业互联网需要边缘计算,C114讯12月28日消息(九九)在今天举行的2022边缘计算产业峰会上,中国工程院院士邬贺铨发表
三川智慧(300066)12月28日在投资者关系平台上答复了投资者关心的问题。投资者:公司有无并购重组打算,以后的主要盈利模式是什么?三川智慧董
金山铁路介绍,为进一步优化运能安排,结合当前实际客流,12月29日-1月5日运行计划有临时调整。同时公布“元旦”期间开行方案,12月31日、1月1
格隆汇12月27日丨中炬高新(600872)(600872 SH)公布,此次拍卖的股份为公司控股股东中山润田投资有限公司(以下简称:中山润田)所持有的公司非限售
兄弟们,这几天一直没有更新内容,主要是因为汤主也了。以前刷抖音都是看别人分享阳了之后的症状。现在终于轮到自己了,不过我的症状比较简单