调试我的应用程序时遇到问题, 所以我想记录发送给Elasticsearch的所有请求。
我了解到我可以通过将 long 时间设置为0s
来通过slowlog执行此操作。
我在ES 2.4.2
和ES 5.6.4
中尝试了这一点,但没有记录任何请求。
我在ES 2.4.2
中设置logging.yml
:
index.search.slowlog: INFO, index_search_slow_log_file
index.indexing.slowlog: INFO, index_indexing_slow_log_file
在ES 5.6.4
我也将级别更改为INFO(在log4j2.properties
中):
logger.index_search_slowlog_rolling.level = info
logger.index_indexing_slowlog.level = info
然后我开始ES并发布:
curl -XPUT 'http://localhost:9200/com.example.app.model.journal/_settings' -d '
{
"index.search.slowlog.threshold.query.info" : "0s",
"index.search.slowlog.threshold.fetch.info": "0s",
"index.indexing.slowlog.threshold.index.info": "0s"
}
'
(我更愿意为配置中的所有索引设置此设置 文件,有可能吗?)
然后我搜索了一些数据(并得到了结果):
curl -XGET 'localhost:9200/com.example.app.model.journal/_search?pretty' -d '
{
"query":
{
"match" : { "rank" : "2" } }
}
}'
未记录此请求,在ES 2.4.2
中创建了slowlog文件
并且为空,在ES 5.6.4
文件中未创建。我做错了什么?
答案 0 :(得分:1)
我无法找到解决方案,因此我使用mitmdump作为解决方法。运行代理:
mitmdump -v -dddd -R http://localhost:9200
用代理地址替换ES地址:
curl -XGET 'localhost:8080/com.example.app.model.journal/_search?pretty' -d '
{
...