Elasticsearch debug

倒腾一个新东西,首先是要了解基本概念,之后就是要学习如何 debug 。要不然很容易出现抓瞎的情况。搞定这两点剩下的就是耐心和恒心的问题了。

Log level

一般 log 会根据不同的 log level 输出不同的内容。如果是开发模式,一般把 log level 设置为 debug 是和方便的。

Elasticsearch 的配置文件在 confg/ 目录下。
一共有两个文件,一个是 elasticsearch.yml ,是对 Elasticsearch 本身进行配置, 比如 cluster name 之类的。
一个是 logging.yml ,用来配置 log 。

我们只要在 logging.ymles.logger.level: INFO 改为 es.logger.level: DEBUG 即可。

Logging Requests to Elasticsearch

我遇到的问题是的第三方库,对 request 做了封装,返回缺少我需要的信息。而 clojure 又不方便去改库的源码。所以果断考虑用 Elasticsearch 的 log。

方法如下:

elasticsearch.yml file

可以通过更改 elasticsearch.yml 达到 log request 的目的。加入以下代码:


index.search.slowlog.threshold.query.debug: 0s
index.search.slowlog.threshold.fetch.debug: 0s
index.indexing.slowlog.threshold.index.debug: 0s

默认的 log 输出在 logs/elasticsearch_index_indexing_slowlog.loglogs/elasticsearch_index_search_slowlog.log 里。可以通过 tail -f 进行查看。

顺带一提,Elasticsearch 自动按时间做了分割,大赞。

配置完,我们可以通过 http://localhost:9200/_settings 查看我们的配置是否成功。

Runtime Settings

我们还可以通过 HTTP API 更改设置,这样做的好处是可以不需要重启 Elasticsearch 。

curl -XPUT "http://localhost:9200/_settings" -d'
{
    "index.search.slowlog.threshold.query.debug": "0s",
    "index.search.slowlog.threshold.fetch.debug": "0s",
    "index.indexing.slowlog.threshold.index.debug": "0s"
}'

小结

Elasticsearch 使用起来很舒服,无论是文档,还是 API,都非常好用。有很多让人眼前一亮的小细节,比如在请求里加上 `pretty' ,会有漂亮的输出。

从这些小事可以看出,Elasticsearch 是一款很用心的产品。

参考

http://blog.florian-hopf.de/2...
https://www.elastic.co/guide/...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值