如何将所有请求记录到ElasticSearch?

时间:2017-12-04 14:06:17

标签: elasticsearch logging elasticsearch-5 elasticsearch-2.0

调试我的应用程序时遇到问题, 所以我想记录发送给Elasticsearch的所有请求。

我了解到我可以通过将 long 时间设置为0s来通过slowlog执行此操作。

我在ES 2.4.2ES 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文件中未创建。我做错了什么?

1 个答案:

答案 0 :(得分:1)

我无法找到解决方案,因此我使用mitmdump作为解决方法。运行代理:

 mitmdump -v -dddd -R http://localhost:9200

用代理地址替换ES地址:

curl -XGET 'localhost:8080/com.example.app.model.journal/_search?pretty' -d '
{
    ...